From d118bb0baa6e812ccd4b8807902be74f3922364e Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 11:40:22 +0200 Subject: [PATCH 1/9] Added 2 workflows to be able to run the tests independent of the compiler build --- .github/workflows/BuildCompiler.yml | 63 +++++++++++++++++++++++++++++ .github/workflows/RunTests.yml | 47 +++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 .github/workflows/BuildCompiler.yml create mode 100644 .github/workflows/RunTests.yml diff --git a/.github/workflows/BuildCompiler.yml b/.github/workflows/BuildCompiler.yml new file mode 100644 index 0000000000..bc36a2e959 --- /dev/null +++ b/.github/workflows/BuildCompiler.yml @@ -0,0 +1,63 @@ +#See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help +name: ContinuousBuild + +on: + schedule: + - cron: '0 2 * * *' # every night at 2 am UTC + pull_request: + types: [opened, assigned, synchronize, edited] + workflow_dispatch: + +env: + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + # Optional canary for upcoming runner runtime changes; enable when you want to test early. + # FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + +jobs: + job1: + name: BuildXSharpCompiler + runs-on: windows-2022 # Specify the OS to execute on + + steps: + - uses: actions/checkout@v5 + with: + ref: ${{ github.ref }} + + - uses: actions/setup-dotnet@v5 + with: + dotnet-version: '9.0.x' + + - name: BuildCompiler + shell: cmd + run: | + echo "RoslynDir=./src/Roslyn" >> $GITHUB_ENV + echo "XSharpDir=./src/Compiler" >> $GITHUB_ENV + echo "VsVersion=2022" >> $GITHUB_ENV + echo "VSEDITION=Enterprise" >> $GITHUB_ENV + call ContinuousIntegrationBuild.cmd + + - name: Upload BuildLogs + uses: actions/upload-artifact@v6 + with: + name: BuildLogs + path: ./src/build*.Log + + - name: Upload Zips + uses: actions/upload-artifact@v6 + with: + name: BuildResultsZip + path: ./Artifacts/Zips/*.zip + + - name: Upload Bin + uses: actions/upload-artifact@v6 + with: + name: BuildResultsBin + path: ./Artifacts/Bin/xsc/Release/net472/*.* + + - name: Upload Shared Files + uses: actions/upload-artifact@v6 + with: + name: Shared + path: | + ./Artifacts/Shared/Release/*.dll diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml new file mode 100644 index 0000000000..617030f7d9 --- /dev/null +++ b/.github/workflows/RunTests.yml @@ -0,0 +1,47 @@ +#See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help +name: ContinuousBuild + +on: + schedule: + - cron: '0 3 * * *' # every night at 3 am UTC + pull_request: + types: [opened, assigned, synchronize, edited] + workflow_dispatch: + +env: + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + # Optional canary for upcoming runner runtime changes; enable when you want to test early. + # FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + +jobs: + job1: + name: BuildXSharpCompiler + runs-on: windows-2022 # Specify the OS to execute on + + steps: + - uses: actions/checkout@v5 + with: + ref: ${{ github.ref }} + + - uses: actions/setup-dotnet@v5 + with: + dotnet-version: '9.0.x' + + - name: Download Bin + uses: actions/download-artifact@v6 + with: + name: BuildResultsBin + + - name: RunTests + shell: cmd + run: | + call RunCompilertests.cmd + + - name: Upload TestLogs + uses: actions/upload-artifact@v6 + with: + name: TestLogs + path: ./Artifacts/Tests/*.Log + + \ No newline at end of file From 1f7bab95db1fe549ed9a5f82c4ab3349253fdf89 Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 11:41:38 +0200 Subject: [PATCH 2/9] Updated names --- .github/workflows/BuildCompiler.yml | 2 +- .github/workflows/RunTests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/BuildCompiler.yml b/.github/workflows/BuildCompiler.yml index bc36a2e959..6e9474631c 100644 --- a/.github/workflows/BuildCompiler.yml +++ b/.github/workflows/BuildCompiler.yml @@ -16,7 +16,7 @@ env: jobs: job1: - name: BuildXSharpCompiler + name: BuildCompiler runs-on: windows-2022 # Specify the OS to execute on steps: diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml index 617030f7d9..81b4dbcea9 100644 --- a/.github/workflows/RunTests.yml +++ b/.github/workflows/RunTests.yml @@ -16,7 +16,7 @@ env: jobs: job1: - name: BuildXSharpCompiler + name: RunTests runs-on: windows-2022 # Specify the OS to execute on steps: From 9f2153e99bb476ca253aecd416a491ab1e4c800b Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 11:42:35 +0200 Subject: [PATCH 3/9] Renamed --- .github/workflows/BuildCompiler.yml | 2 +- .github/workflows/RunTests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/BuildCompiler.yml b/.github/workflows/BuildCompiler.yml index 6e9474631c..d72918c4d7 100644 --- a/.github/workflows/BuildCompiler.yml +++ b/.github/workflows/BuildCompiler.yml @@ -1,5 +1,5 @@ #See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help -name: ContinuousBuild +name: BuildCompiler on: schedule: diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml index 81b4dbcea9..16b3e55ea1 100644 --- a/.github/workflows/RunTests.yml +++ b/.github/workflows/RunTests.yml @@ -1,5 +1,5 @@ #See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help -name: ContinuousBuild +name: RunTests on: schedule: From 2a97f68d8aa580b9eeb2fe8a45782b9aa6a9f5e2 Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 11:52:46 +0200 Subject: [PATCH 4/9] Update download-artifact action to version 8 --- .github/workflows/RunTests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml index 16b3e55ea1..968f7e060e 100644 --- a/.github/workflows/RunTests.yml +++ b/.github/workflows/RunTests.yml @@ -29,7 +29,7 @@ jobs: dotnet-version: '9.0.x' - name: Download Bin - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: name: BuildResultsBin @@ -44,4 +44,4 @@ jobs: name: TestLogs path: ./Artifacts/Tests/*.Log - \ No newline at end of file + From ccc4158aa35817d8ffca258996676a128b26134b Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 11:55:05 +0200 Subject: [PATCH 5/9] Upgrade upload-artifact action to v7 Updated artifact upload actions to version 7. --- .github/workflows/BuildCompiler.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/BuildCompiler.yml b/.github/workflows/BuildCompiler.yml index d72918c4d7..03ce7ab7c6 100644 --- a/.github/workflows/BuildCompiler.yml +++ b/.github/workflows/BuildCompiler.yml @@ -38,25 +38,25 @@ jobs: call ContinuousIntegrationBuild.cmd - name: Upload BuildLogs - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: BuildLogs path: ./src/build*.Log - name: Upload Zips - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: BuildResultsZip path: ./Artifacts/Zips/*.zip - name: Upload Bin - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: BuildResultsBin path: ./Artifacts/Bin/xsc/Release/net472/*.* - name: Upload Shared Files - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: Shared path: | From a62ec3eb804a0dd3febb6e1aee92da0b5d16a08d Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 12:03:42 +0200 Subject: [PATCH 6/9] Update download-artifact action version to v7 --- .github/workflows/RunTests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml index 968f7e060e..10a1bea0fd 100644 --- a/.github/workflows/RunTests.yml +++ b/.github/workflows/RunTests.yml @@ -29,7 +29,7 @@ jobs: dotnet-version: '9.0.x' - name: Download Bin - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v7 with: name: BuildResultsBin From 9dff020e21004685e3004f8432bdc39258584e1a Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Tue, 8 Sep 2026 12:07:37 +0200 Subject: [PATCH 7/9] Deleted yml --- .github/workflows/BuildCompiler.yml | 63 ----------------------------- .github/workflows/RunTests.yml | 47 --------------------- 2 files changed, 110 deletions(-) delete mode 100644 .github/workflows/BuildCompiler.yml delete mode 100644 .github/workflows/RunTests.yml diff --git a/.github/workflows/BuildCompiler.yml b/.github/workflows/BuildCompiler.yml deleted file mode 100644 index 03ce7ab7c6..0000000000 --- a/.github/workflows/BuildCompiler.yml +++ /dev/null @@ -1,63 +0,0 @@ -#See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help -name: BuildCompiler - -on: - schedule: - - cron: '0 2 * * *' # every night at 2 am UTC - pull_request: - types: [opened, assigned, synchronize, edited] - workflow_dispatch: - -env: - DOTNET_NOLOGO: true - DOTNET_CLI_TELEMETRY_OPTOUT: true - # Optional canary for upcoming runner runtime changes; enable when you want to test early. - # FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - -jobs: - job1: - name: BuildCompiler - runs-on: windows-2022 # Specify the OS to execute on - - steps: - - uses: actions/checkout@v5 - with: - ref: ${{ github.ref }} - - - uses: actions/setup-dotnet@v5 - with: - dotnet-version: '9.0.x' - - - name: BuildCompiler - shell: cmd - run: | - echo "RoslynDir=./src/Roslyn" >> $GITHUB_ENV - echo "XSharpDir=./src/Compiler" >> $GITHUB_ENV - echo "VsVersion=2022" >> $GITHUB_ENV - echo "VSEDITION=Enterprise" >> $GITHUB_ENV - call ContinuousIntegrationBuild.cmd - - - name: Upload BuildLogs - uses: actions/upload-artifact@v7 - with: - name: BuildLogs - path: ./src/build*.Log - - - name: Upload Zips - uses: actions/upload-artifact@v7 - with: - name: BuildResultsZip - path: ./Artifacts/Zips/*.zip - - - name: Upload Bin - uses: actions/upload-artifact@v7 - with: - name: BuildResultsBin - path: ./Artifacts/Bin/xsc/Release/net472/*.* - - - name: Upload Shared Files - uses: actions/upload-artifact@v7 - with: - name: Shared - path: | - ./Artifacts/Shared/Release/*.dll diff --git a/.github/workflows/RunTests.yml b/.github/workflows/RunTests.yml deleted file mode 100644 index 10a1bea0fd..0000000000 --- a/.github/workflows/RunTests.yml +++ /dev/null @@ -1,47 +0,0 @@ -#See https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow for help -name: RunTests - -on: - schedule: - - cron: '0 3 * * *' # every night at 3 am UTC - pull_request: - types: [opened, assigned, synchronize, edited] - workflow_dispatch: - -env: - DOTNET_NOLOGO: true - DOTNET_CLI_TELEMETRY_OPTOUT: true - # Optional canary for upcoming runner runtime changes; enable when you want to test early. - # FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - -jobs: - job1: - name: RunTests - runs-on: windows-2022 # Specify the OS to execute on - - steps: - - uses: actions/checkout@v5 - with: - ref: ${{ github.ref }} - - - uses: actions/setup-dotnet@v5 - with: - dotnet-version: '9.0.x' - - - name: Download Bin - uses: actions/download-artifact@v7 - with: - name: BuildResultsBin - - - name: RunTests - shell: cmd - run: | - call RunCompilertests.cmd - - - name: Upload TestLogs - uses: actions/upload-artifact@v6 - with: - name: TestLogs - path: ./Artifacts/Tests/*.Log - - From d0dd868d19f35e75a75505f040015d1fe94a4c37 Mon Sep 17 00:00:00 2001 From: Robert van der Hulst Date: Mon, 28 Sep 2026 21:08:55 +0200 Subject: [PATCH 8/9] [Runtime] Fix for #2092 --- .../XSharp.RT/Functions/CompilerSupport.prg | 53 +++++++++++++++---- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/src/Runtime/XSharp.RT/Functions/CompilerSupport.prg b/src/Runtime/XSharp.RT/Functions/CompilerSupport.prg index e21f7e1d17..06a0062f20 100644 --- a/src/Runtime/XSharp.RT/Functions/CompilerSupport.prg +++ b/src/Runtime/XSharp.RT/Functions/CompilerSupport.prg @@ -115,7 +115,8 @@ FUNCTION __FieldGetWa( area AS USUAL, fieldName AS STRING ) AS USUAL /// [NeedsAccessToLocals(FALSE)]; FUNCTION __FieldGetWa2(wa AS STRING, fldName AS STRING, lAllowUndeclared AS LOGIC) AS USUAL -LOCAL nArea := VoDbGetSelect(wa) AS DWORD + LOCAL nArea := VoDbGetSelect(wa) AS DWORD + LOCAL err := NULL as Error IF nArea != 0 RETURN __FieldGetWa(wa, fldName) ENDIF @@ -123,17 +124,24 @@ LOCAL nArea := VoDbGetSelect(wa) AS DWORD return IVarGet(uLocal, fldName) ENDIF local ok as LOGIC + local ex := NULL as Exception IF XSharp.MemVar.LocalFind("SELF", out uLocal, out var _) local oLocal := uLocal as object try var ivar := (OBJECT) IVarGet(oLocal, wa) // we do not use IVarGet because we also want to support static fields and properties var res := _GetValue(ivar:GetType(), ivar) - if ok - return res - endif - catch as Exception - nop + if ok + return res + endif + err := Error{EG_NOVAR, nameof(fldName), ErrString(EG_NOVAR) + ": " + fldName} + err:FuncSym := __function__ + err:ArgNum := 2 + err:Args := {wa, fldName} + THROW err + + catch e as Exception + ex := e end try ENDIF if (lAllowUndeclared) @@ -154,14 +162,26 @@ LOCAL nArea := VoDbGetSelect(wa) AS DWORD IF Globals.Get(wa, OUT var uGlobal) return IVarGet(uGlobal, fldName) ENDIF + if ex != null + throw ex + endif - VAR err := Error{EG_NOVAR, nameof(wa), ErrString(EG_NOVAR) + ": " + wa} + err := Error{EG_NOVAR, nameof(wa), ErrString(EG_NOVAR) + ": " + wa} err:FuncSym := __function__ err:ArgNum := 2 err:Args := {wa, fldName} THROW err LOCAL FUNCTION _GetValue(oType as System.Type, oObject as object) as USUAL ok := TRUE + if oObject is IDynamicProperties var oDynamic + try + return oDynamic:NoIvarGet(fldName) + CATCH as Exception + ok := FALSE + RETURN NIL + end try + endif + var mem := OOPHelpers.GetFieldOrProperty(oType, fldName) if mem is FieldInfo var fld if ! fld:IsPublic @@ -215,6 +235,7 @@ FUNCTION __FieldSetWa( area AS USUAL, fieldName AS STRING, uValue AS USUAL ) AS [NeedsAccessToLocals(FALSE)]; FUNCTION __FieldSetWa2(wa AS STRING, fldName AS STRING, uValue AS USUAL,lAllowUndeclared AS LOGIC) AS USUAL LOCAL nArea := VoDbGetSelect(wa) AS DWORD + LOCAL err := NULL as Error IF nArea != 0 LOCAL nOldArea := RuntimeState.CurrentWorkarea AS DWORD TRY @@ -252,6 +273,13 @@ FUNCTION __FieldSetWa2(wa AS STRING, fldName AS STRING, uValue AS USUAL,lAllowUn catch as Exception nop end try + err := Error{EG_NOVAR, nameof(fldName), ErrString(EG_NOVAR) + ": " + fldName} + err:FuncSym := __function__ + err:ArgNum := 2 + err:Args := {wa, fldName} + THROW err + + ENDIF if (lAllowUndeclared) @@ -271,13 +299,20 @@ FUNCTION __FieldSetWa2(wa AS STRING, fldName AS STRING, uValue AS USUAL,lAllowUn IF Globals.Get(wa, OUT var uGlobal) return IVarPut(uGlobal, fldName, uValue) ENDIF - - VAR err := Error{EG_NOVAR, nameof(wa), ErrString(EG_NOVAR) + ": " + wa} + err := Error{EG_NOVAR, nameof(wa), ErrString(EG_NOVAR) + ": " + wa} err:FuncSym := __function__ err:ArgNum := 2 err:Args := {wa, fldName} THROW err LOCAL FUNCTION _SetValue(oType as System.Type, oObject as object, uValue as USUAL) as LOGIC + if oObject is IDynamicProperties var oDynamic + TRY + oDynamic:NoIvarPut(fldName, uValue) + return true + CATCH as Exception + return false + END TRY + endif var mem := OOPHelpers.GetFieldOrProperty(oType, fldName) if mem is FieldInfo var fld var oValue := OOPHelpers.ValueConvert(uValue, fld:FieldType) From 15358c7bdc0fe7e7dacc2bd66d08bbf8f6d7866c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Oct 2026 08:55:15 +0000 Subject: [PATCH 9/9] Apply remaining changes Co-authored-by: RobertvanderHulst <14240939+RobertvanderHulst@users.noreply.github.com> --- docs/Help/Topics/command_BEGIN-CHECKED.xml | 2 +- docs/Help/Topics/command_BEGIN-USING.xml | 2 +- docs/Help/Topics/command_DELEGATE.xml | 1 + docs/Help/Topics/command_DO_WHILE.xml | 2 +- docs/Help/Topics/command_ENUM.xml | 4 ++-- docs/Help/Topics/command_FOR.xml | 2 +- docs/Help/Topics/command_FOREACH.xml | 2 +- docs/Help/Topics/command_IF.xml | 2 +- docs/Help/Topics/command_NOP.xml | 2 +- docs/Help/Topics/command_RETURN.xml | 2 +- docs/Help/Topics/command_WITH.xml | 2 +- 11 files changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/Help/Topics/command_BEGIN-CHECKED.xml b/docs/Help/Topics/command_BEGIN-CHECKED.xml index 5f61924490..a567ce7fdd 100644 --- a/docs/Help/Topics/command_BEGIN-CHECKED.xml +++ b/docs/Help/Topics/command_BEGIN-CHECKED.xml @@ -19,7 +19,7 @@ Purpose The BEGIN (UN)CHECKED and END (UN)CHECKED keywords mark a block of statements that are compiled with overflow checking enabled or disabled. Syntax - BEGIN CHECKED
  statements
END CHECKED

BEGIN UNCHECKED
  statements
END CHECKED
+ BEGIN CHECKED
  statements
END CHECKED

BEGIN UNCHECKED
  statements
END UNCHECKED
Arguments statements One or more statements or expressions that are compiled with the specified overflow checking diff --git a/docs/Help/Topics/command_BEGIN-USING.xml b/docs/Help/Topics/command_BEGIN-USING.xml index fc9b3a2751..0135a44419 100644 --- a/docs/Help/Topics/command_BEGIN-USING.xml +++ b/docs/Help/Topics/command_BEGIN-USING.xml @@ -17,7 +17,7 @@ The BEGIN USING and END USING keyword declare a block of code that ensures the correct use of disposable objects. Syntax - BEGIN USING declaration
  statements
END USING
+ BEGIN USING [AWAIT] declaration
  statements
END [USING]
Arguments declarationDeclaration of a variable and assignment that is visible only inside the statement block between BEGIN and END statements Code including one or more statements that may contain unsafe code. diff --git a/docs/Help/Topics/command_DELEGATE.xml b/docs/Help/Topics/command_DELEGATE.xml index be35d6d6e5..b5615d684c 100644 --- a/docs/Help/Topics/command_DELEGATE.xml +++ b/docs/Help/Topics/command_DELEGATE.xml @@ -18,6 +18,7 @@ [([<idParam> [AS | REF|OUT|IN <idType>] [, ...])] [AS <idType>] [TypeparameterConstraints] + [<idConvention>] Arguments <idDelegate>A valid identifier name for the delegate. Delegate names must be unique within a namespace. diff --git a/docs/Help/Topics/command_DO_WHILE.xml b/docs/Help/Topics/command_DO_WHILE.xml index d2917020a7..3eae663b77 100644 --- a/docs/Help/Topics/command_DO_WHILE.xml +++ b/docs/Help/Topics/command_DO_WHILE.xml @@ -26,7 +26,7 @@ <Statements>... [LOOP] <Statements>... - END[DO] + END [DO | WHILE] | ENDDO Arguments <lCondition>The logical control expression for the DO WHILE loop. diff --git a/docs/Help/Topics/command_ENUM.xml b/docs/Help/Topics/command_ENUM.xml index 63ce64501d..933efdac7d 100644 --- a/docs/Help/Topics/command_ENUM.xml +++ b/docs/Help/Topics/command_ENUM.xml @@ -15,8 +15,8 @@ Declare an enumeration to the compiler. Syntax [attributes] [Modifiers] - ENUM <idEnumName> [AS type]   - memberName [:= value] + ENUM <idEnumName> [AS | INHERIT type]   + [Attributes] [MEMBER] memberName [:= value]  [...] END [ENUM] diff --git a/docs/Help/Topics/command_FOR.xml b/docs/Help/Topics/command_FOR.xml index a48ad54b7f..b031005a35 100644 --- a/docs/Help/Topics/command_FOR.xml +++ b/docs/Help/Topics/command_FOR.xml @@ -19,7 +19,7 @@ Purpose Executes a block of statements a specified number of times. Syntax - FOR [<idCounter> := <nStart> | VAR <idCounter> := <nStart> | LOCAL <idCounter> := <nStart> AS <idType> ] [TO | UPTO | DOWNTO] <nEnd> [STEP <nDelta>]
  <Statements>...
  [EXIT]
  <Statements>...
  [LOOP]
NEXT
+ FOR <idCounter> := <nStart> | [LOCAL] IMPLIED <idCounter> := <nStart> | VAR <idCounter> := <nStart> | LOCAL <idCounter> := <nStart> [AS <idType>] TO | UPTO | DOWNTO <nEnd> [STEP <nDelta>]
  <Statements>...
  [EXIT]
  <Statements>...
  [LOOP]
NEXT | ENDFOR
Note In the FoxPro and Xbase++ dialect, ENDFOR is allowed as alternative for NEXT Arguments diff --git a/docs/Help/Topics/command_FOREACH.xml b/docs/Help/Topics/command_FOREACH.xml index 2d3e96902b..34e70173b4 100644 --- a/docs/Help/Topics/command_FOREACH.xml +++ b/docs/Help/Topics/command_FOREACH.xml @@ -19,7 +19,7 @@ Purpose Executes a block of statements for all elements in a collection. Syntax - FOREACH  [IMPLIED <idElement> | VAR <idElement> | <idElement> AS <idType>] IN <container>
  <Statements>...
  [EXIT]
  <Statements>...
  [LOOP]
NEXT
+ FOREACH [AWAIT] IMPLIED <idElement> | VAR <idElement> | <idElement> [AS <idType>] IN <container>
  <Statements>...
  [EXIT]
  <Statements>...
  [LOOP]
NEXT | ENDFOR
Note In the FoxPro dialect, FOR EACH is also allowed as two separate words. In the FoxPro and Xbase++ dialect, ENDFOR is allowed as an alternative for NEXT. diff --git a/docs/Help/Topics/command_IF.xml b/docs/Help/Topics/command_IF.xml index f70fb8f412..c00c574622 100644 --- a/docs/Help/Topics/command_IF.xml +++ b/docs/Help/Topics/command_IF.xml @@ -20,7 +20,7 @@ Purpose Conditionally executes a block of statements. Syntax - IF <lCondition> [THEN]
<Statements>...
[ELSEIF <lCondition>]
<Statements>...
[ELSE]
<Statements>...
END[IF]
+ IF <lCondition> [THEN]
<Statements>...
[ELSEIF <lCondition>]
<Statements>...
[ELSE]
<Statements>...
END [IF] | ENDIF
Arguments [THEN]The THEN keyword is optional and has been added because Visual FoxPro allows this keyword. diff --git a/docs/Help/Topics/command_NOP.xml b/docs/Help/Topics/command_NOP.xml index 638c3947e5..d05930deea 100644 --- a/docs/Help/Topics/command_NOP.xml +++ b/docs/Help/Topics/command_NOP.xml @@ -16,7 +16,7 @@ Purpose The NOP statement inserts an empty statement in the code Syntax - NOP + NOP [()] Remarks The NOP statement is an empty statement. It can be used to indicate that a certain code section is left intentionally empty Examples diff --git a/docs/Help/Topics/command_RETURN.xml b/docs/Help/Topics/command_RETURN.xml index aad7f5ba24..3c69fcb3a5 100644 --- a/docs/Help/Topics/command_RETURN.xml +++ b/docs/Help/Topics/command_RETURN.xml @@ -15,7 +15,7 @@ Purpose Terminates a routine by returning control to the calling routine or operating system if executed from the Start() routine. Syntax - RETURN [<uValue>] + RETURN [VOID | <uValue>] Arguments <uValue>May be specified in a function or method definition to designate its return value. Procedure definitions do not allow <uValue> as part of the RETURN statement. See the FUNCTION and METHOD entries in this guide for information about default return values if <uValue> is not specified. Description diff --git a/docs/Help/Topics/command_WITH.xml b/docs/Help/Topics/command_WITH.xml index 241272edd8..461e226c4e 100644 --- a/docs/Help/Topics/command_WITH.xml +++ b/docs/Help/Topics/command_WITH.xml @@ -9,7 +9,7 @@ Purpose Specifies multiple properties for an object. Syntax - WITH ObjectName
  [cStatements] or
[:Statements]
END WITH
+ WITH ObjectName [AS <idType>]
  [cStatements] or
[:Statements]
END [WITH] | ENDWITH
Arguments ObjectName Specifies the name of the object. ObjectName can be the name of the object or a reference to the object.