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

This commit is contained in:
ringabout 2022-10-26 02:08:36 +08:00 • committed by GitHub
commit 4b377b07fc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View file

@ -1060,7 +1060,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")