From 7a5b614edc148a2b8fafecacecd6949a0744e8b3 Mon Sep 17 00:00:00 2001 From: cooldome Date: Thu, 11 Oct 2018 08:54:50 +0100 Subject: fixes #9297 (#9298) * fixes #9297 * improve spacing --- tests/ccgbugs/tcgbug.nim | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/ccgbugs/tcgbug.nim b/tests/ccgbugs/tcgbug.nim index 1c6466c87..ffaa91ff3 100644 --- a/tests/ccgbugs/tcgbug.nim +++ b/tests/ccgbugs/tcgbug.nim @@ -1,6 +1,8 @@ discard """ file: "tcgbug.nim" - output: "success" + output: '''success +M1 M2 +''' """ type @@ -36,3 +38,41 @@ type var k = PFuture[void]() + +##bug #9297 +import strutils + +type + MyKind = enum + M1, M2, M3 + + MyObject {.exportc: "ExtObject"} = object + case kind: MyKind + of M1: a:int + of M2: b:float + of M3: c:cstring + + MyObjectRef {.exportc: "ExtObject2"} = ref object + case kind: MyKind + of M1: a:int + of M2: b:float + of M3: c:cstring + +proc newMyObject(kind: MyKind, val: string): MyObject = + result.kind = kind + + case kind + of M1: result.a = parseInt(val) + of M2: result.b = parseFloat(val) + of M3: result.c = val + +proc newMyObjectRef(kind: MyKind, val: string): MyObjectRef = + new(result) + result.kind = kind + case kind + of M1: result.a = parseInt(val) + of M2: result.b = parseFloat(val) + of M3: result.c = val + + +echo newMyObject(M1, "2").kind, " ", newMyObjectRef(M2, "3").kind \ No newline at end of file -- cgit 1.4.1-2-gfad0