fixes #19201; fixes sink causes crash in VM (#20658)

(cherry picked from commit 4b377b07fc)
This commit is contained in:
ringabout
2022-10-26 02:08:36 +08:00
committed by narimiran
parent 628c9c3c7f
commit 26e52d7c5d
2 changed files with 8 additions and 2 deletions

View File

@@ -1063,7 +1063,7 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest; m: TMagic) =
of mLengthOpenArray, mLengthArray, mLengthSeq:
genUnaryABI(c, n, dest, opcLenSeq)
of mLengthStr:
case n[1].typ.kind
case n[1].typ.skipTypes(abstractVarRange).kind
of tyString: genUnaryABI(c, n, dest, opcLenStr)
of tyCstring: genUnaryABI(c, n, dest, opcLenCstring)
else: doAssert false, $n[1].typ.kind

View File

@@ -9,7 +9,7 @@ block:
static:
foo(int)
# #4412
# bug #4412
block:
proc default[T](t: typedesc[T]): T {.inline.} = discard
@@ -595,3 +595,9 @@ proc main() = # bug #12994
static: main()
main()
# bug #19201
proc foo(s: sink string) = doAssert s.len == 3
static:
foo("abc")