discard """ output: "came here" """ #BUG type TAnyKind = enum nkInt, nkFloat, nkString PAny = ref TAny TAny = object case kind: TAnyKind of nkInt: intVal: int of nkFloat: floatVal: float of nkString: strVal: string TStack* = object list*: seq[TAny] proc newStack(): TStack = result.list = @[] proc push(Stack: var TStack, item: TAny) = var nSeq: seq[TAny] = @[item] for i in items(Stack.list): nSeq.add(i) Stack.list = nSeq proc pop(Stack: var TStack): TAny = result = Stack.list[0] Stack.list.delete(0) var stack = newStack() var s = TAny(kind: nkString, strVal: "test") stack.push(s) var nr = TAny(kind: nkInt, intVal: 78) stack.push(nr) var t = stack.pop() echo "came here" # another regression: type LexerToken* = enum ltYamlDirective, ltYamlVersion, ltTagDirective, ltTagShorthand, ltTagUri, ltUnknownDirective, ltUnknownDirectiveParams, ltEmptyLine, ltDirectivesEnd, ltDocumentEnd, ltStreamEnd, ltIndentation, ltQuotedScalar, ltScalarPart, ltBlockScalarHeader, ltBlockScalar, ltSeqItemInd, ltMapKeyInd, ltMapValInd, ltBraceOpen, ltBraceClose, ltBracketOpen, ltBracketClose, ltComma, ltLiteralTag, ltTagHandle, ltAnchor, ltAlias const tokensWithValue = {ltScalarPart, ltQuotedScalar, ltYamlVersion, ltTagShorthand, ltTagUri, ltUnknownDirective, ltUnknownDirectiveParams, ltLiteralTag, ltAnchor, ltAlias, ltBlockScalar} type TokenWithValue = object case kind: LexerToken of tokensWithValue: value: string of ltIndentation: indentation: int of ltTagHandle: handle, suffix: string else: discard proc sp(v: string): TokenWithValue = # test.nim(27, 17) Error: a case selecting discriminator 'kind' with value 'ltScalarPart' appears in the object construction, but the field(s) 'value' are in conflict with this value. TokenWithValue(kind: ltScalarPart, value: v) let a = sp("test")