diff options
Diffstat (limited to 'tests/objvariant/tvariantstack.nim')
-rw-r--r-- | tests/objvariant/tvariantstack.nim | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/tests/objvariant/tvariantstack.nim b/tests/objvariant/tvariantstack.nim index d81f6e001..7fd41b476 100644 --- a/tests/objvariant/tvariantstack.nim +++ b/tests/objvariant/tvariantstack.nim @@ -1,6 +1,5 @@ discard """ - file: "tvariantstack.nim" - output: "came here" +output: "came here" """ #BUG type @@ -33,15 +32,11 @@ proc pop(Stack: var TStack): TAny = var stack = newStack() -var s: TAny -s.kind = nkString -s.strVal = "test" +var s = TAny(kind: nkString, strVal: "test") stack.push(s) -var nr: TAny -nr.kind = nkint -nr.intVal = 78 +var nr = TAny(kind: nkInt, intVal: 78) stack.push(nr) @@ -49,4 +44,34 @@ 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") |