fixes #9550; Concept related crash only when compiling to JS (#23470)

fixes #9550
This commit is contained in:
ringabout
2024-04-03 00:09:10 +08:00
committed by GitHub
parent cf00b2fd9e
commit 32fa7e2871
2 changed files with 12 additions and 1 deletions

View File

@@ -1552,7 +1552,7 @@ proc genAddr(p: PProc, n: PNode, r: var TCompRes) =
if ty.kind in MappedToObject:
gen(p, n[0], r)
else:
let kindOfIndexedExpr = skipTypes(n[0][0].typ, abstractVarRange).kind
let kindOfIndexedExpr = skipTypes(n[0][0].typ, abstractVarRange+tyUserTypeClasses).kind
case kindOfIndexedExpr
of tyArray, tyOpenArray, tySequence, tyString, tyCstring, tyVarargs:
genArrayAddr(p, n[0], r)

View File

@@ -1,3 +1,7 @@
discard """
target: "c js"
"""
block:
type
hasFieldX = concept z
@@ -42,3 +46,10 @@ block:
foo2(x)
foo3(x)
foo4(x)
block: # bug #9550
type Foo = concept c
for v in c: (v is char)
func foo(c: Foo) = (for v in c: discard)
foo @['a', 'b' ,'c']