mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 11:42:33 +00:00
fixes #23295
This commit is contained in:
@@ -226,8 +226,7 @@ proc stupidStmtListExpr*(n: PNode): bool =
|
||||
proc dontInlineConstant*(orig, cnst: PNode): bool {.inline.} =
|
||||
# symbols that expand to a complex constant (array, etc.) should not be
|
||||
# inlined, unless it's the empty array:
|
||||
result = orig.kind != cnst.kind and
|
||||
cnst.kind in {nkCurly, nkPar, nkTupleConstr, nkBracket, nkObjConstr} and
|
||||
result = cnst.kind in {nkCurly, nkPar, nkTupleConstr, nkBracket, nkObjConstr} and
|
||||
cnst.len > ord(cnst.kind == nkObjConstr)
|
||||
|
||||
proc isRunnableExamples*(n: PNode): bool =
|
||||
|
||||
18
tests/objvariant/tconstobjvariant.nim
Normal file
18
tests/objvariant/tconstobjvariant.nim
Normal file
@@ -0,0 +1,18 @@
|
||||
# This is a sample code, the first echo statement prints out the error
|
||||
type
|
||||
A = object
|
||||
case w: uint8
|
||||
of 1:
|
||||
n: int
|
||||
else:
|
||||
other: string
|
||||
|
||||
const
|
||||
a = A(w: 1, n: 5)
|
||||
|
||||
proc foo =
|
||||
|
||||
let c = [a]
|
||||
doAssert c[0].n == 5
|
||||
|
||||
foo()
|
||||
Reference in New Issue
Block a user