From 0c4ef0a8e0ba0a9c55a114ea9dfb578da0bded75 Mon Sep 17 00:00:00 2001 From: Kevin Jones Date: Sun, 17 Aug 2025 16:16:30 +0100 Subject: [PATCH] fix: change getSObjects() return type from List to RecordSet$ for for-loop compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change getSObjects() methods to return RecordSet$ instead of List to support recordset iteration in for-loops like SOQL queries and Database.query(). This enables the syntax: for(List cursorBlock : parent.getSObjects('relationshipName')) {} Without this fix, the above produces the error: "Incompatible types in assignment, from 'System.SObject' to 'System.List'" Changes: - Add import for com.nawforce.runforce.Internal.RecordSet$ - Change getSObjects(SObjectField) return type: List → RecordSet$ - Change getSObjects(String) return type: List → RecordSet$ Fixes #38 Related: apex-dev-tools/apex-ls#328 --- src/main/java/com/nawforce/runforce/System/SObject.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nawforce/runforce/System/SObject.java b/src/main/java/com/nawforce/runforce/System/SObject.java index 574099f9..c6b9fefc 100644 --- a/src/main/java/com/nawforce/runforce/System/SObject.java +++ b/src/main/java/com/nawforce/runforce/System/SObject.java @@ -16,6 +16,7 @@ import com.nawforce.runforce.Database.DMLOptions; import com.nawforce.runforce.Database.Error; +import com.nawforce.runforce.Internal.RecordSet$; import com.nawforce.runforce.SObjectStubs.UserRecordAccess; import com.nawforce.runforce.Schema.SObjectField; import com.nawforce.runforce.Schema.SObjectType; @@ -50,8 +51,8 @@ public class SObject { public SObject getSObject(SObjectField field) {throw new java.lang.UnsupportedOperationException();} public SObject getSObject(String field) {throw new java.lang.UnsupportedOperationException();} public SObjectType getSObjectType() {throw new java.lang.UnsupportedOperationException();} - public List getSObjects(SObjectField field) {throw new java.lang.UnsupportedOperationException();} - public List getSObjects(String field) {throw new java.lang.UnsupportedOperationException();} + public RecordSet$ getSObjects(SObjectField field) {throw new java.lang.UnsupportedOperationException();} + public RecordSet$ getSObjects(String field) {throw new java.lang.UnsupportedOperationException();} public SObject getValues(String id) {throw new java.lang.UnsupportedOperationException();} public Boolean hasErrors() {throw new java.lang.UnsupportedOperationException();} public Boolean isClone() {throw new java.lang.UnsupportedOperationException();}