Take care of some corner-cases of non-const tracking.

This commit is contained in:
Dianne Skoll
2025-05-22 09:35:18 -04:00
parent 633812d961
commit 1d3c1f006f
8 changed files with 74 additions and 0 deletions

View File

@@ -24813,6 +24813,7 @@ TRANSLATE "Executing `%s' for INCLUDECMD and caching as `%s'" ""
TRANSLATE "Found cached directory listing for `%s'" ""
TRANSLATE "Function `%s' defined at %s(%s) should take %d argument%s, but actually takes %d" ""
TRANSLATE "Function `%s' redefined: previously defined at %s(%s)" ""
TRANSLATE "Function definition considered non-constant because of context" ""
TRANSLATE "GetValidHebDate: Bad adarbehave value %d" ""
TRANSLATE "Global variable `%s' makes expression non-constant" ""
TRANSLATE "In" ""
@@ -24841,6 +24842,7 @@ TRANSLATE "System variable `$%s' makes expression non-constant" ""
TRANSLATE "Undefined %s function: `%s'" ""
TRANSLATE "Unmatched PUSH-OMIT-CONTEXT at %s(%d)" ""
TRANSLATE "Unrecognized command; interpreting as REM" ""
TRANSLATE "User function `%s' defined in non-constant context makes expression non-constant" ""
TRANSLATE "Variable assignment considered non-constant because of context" ""
TRANSLATE "Warning: Function name `%s...' truncated to `%s'" ""
TRANSLATE "Warning: OMIT is ignored if you use OMITFUNC" ""

View File

@@ -1532,6 +1532,32 @@ REM SCANFROM -7 MSG foo
REM MSG [g(3)]
# Check user-functions for constant-ness
FUNSET f
IF today() > '1990-01-01'
FSET f(x) 2
ELSE
FSET f(x) 3
ENDIF
SET a f(1)
FUNSET f
FSET f(x) '1990-01-01'
IF today() < '1990-01-01'
FSET f(x) '2025-12-31'
ENDIF
set a f(1)
FUNSET F
SET a 1
IF today() < '1990-01-01'
SET a 2
ENDIF
dump -c a
DEBUG -n
DEBUG -e