Add tests for nimvm scope handling and undeclared identifiers

This commit is contained in:
ringabout
2026-08-14 22:45:17 +08:00
parent b6d94353c0
commit 1124bb88f8
5 changed files with 60 additions and 0 deletions

9
tests/vm/t26048.nim Normal file
View File

@@ -0,0 +1,9 @@
# issue #26048, `$` declarations must not leak from `when nimvm`
type U = object
when nimvm:
proc `$`(_: U): string = "s"
var n: U
doAssert $n != "s"

View File

@@ -0,0 +1,12 @@
# issue #23687
when nimvm:
proc mytest(a: int) =
echo a
else:
template mytest(a: int) =
echo a + 42
proc xxx() =
mytest(100) #[tt.Error
^ undeclared identifier: 'mytest']#

View File

@@ -0,0 +1,13 @@
# issue #23688
when nimvm:
proc mytest(a: int) =
echo a
else:
template mytest(a: untyped) =
echo a + 42
proc xxx() =
mytest(100) #[tt.Error
^ undeclared identifier: 'mytest']#
xxx()

View File

@@ -0,0 +1,10 @@
# issue #13450, example 3
proc bar() =
when nimvm:
let y = 1
else:
let y = 2
discard y #[tt.Error
^ undeclared identifier: 'y']#
bar()

16
tests/whenstmt/t26044.nim Normal file
View File

@@ -0,0 +1,16 @@
# issue #26044
discard """
cmd: "nim check --hints:off --warnings:off $file"
action: reject
nimout: '''
t26044.nim(15, 11) Error: undeclared identifier: 'g'
t26044.nim(15, 11) Error: expression 'g' has no type (or is ambiguous)
'''
"""
proc p =
when nimvm:
var g: int
discard g
p()