Strict is described in the BlitzMax documentation only to make errors out of auto declared varibales, forcing us to declare variables properly before using them. But "Strict also has unexpected influence on the range of "Local"-declared variables:
Strict
For Local z:Int =1 To 5
DebugLog "1"
Next
For Local z:Int=1 To 5
DebugLog "2"
Next
No problems so far. Now remove Strict:
For Local z:Int =1 To 5
DebugLog "1"
Next
For Local z:Int=1 To 5
DebugLog "2"
Next
Run this, and you get the Compile Error Message: "Duplicate Identifier "z". Seems, as if "z" isn't Local anymore if you remove "Strict" ! But this is not described such in the documentation neither under "Strict" nor under "Local". And why should "Local" be disabled if you do not use "Strict" ? Is it a bug, or is it a concept, I haven't understood yet ?
Strict
For Local z:Int =1 To 5
DebugLog "1"
Next
For Local z:Int=1 To 5
DebugLog "2"
Next
No problems so far. Now remove Strict:
For Local z:Int =1 To 5
DebugLog "1"
Next
For Local z:Int=1 To 5
DebugLog "2"
Next
Run this, and you get the Compile Error Message: "Duplicate Identifier "z". Seems, as if "z" isn't Local anymore if you remove "Strict" ! But this is not described such in the documentation neither under "Strict" nor under "Local". And why should "Local" be disabled if you do not use "Strict" ? Is it a bug, or is it a concept, I haven't understood yet ?