diff options
author | Araq <rumpf_a@web.de> | 2015-04-24 12:34:58 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-04-24 12:35:13 +0200 |
commit | c01d9d081bdb834de2063f7120c24aecfc19ce9d (patch) | |
tree | 17e716e32e7078fe2afae4946b3259796c102d0a /tests | |
parent | c1730e1eadb4ad0090a901d578840db281cb4715 (diff) | |
download | Nim-c01d9d081bdb834de2063f7120c24aecfc19ce9d.tar.gz |
added test for #2536
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cpp/tvectorseq.nim | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/cpp/tvectorseq.nim b/tests/cpp/tvectorseq.nim new file mode 100644 index 000000000..6eb5dc9e4 --- /dev/null +++ b/tests/cpp/tvectorseq.nim @@ -0,0 +1,38 @@ +discard """ + output: '''(x: 1.0) +(x: 0.0)''' + cmd: "nim cpp $file" + disabled: "true" +""" + +# This cannot work yet because we omit type information for importcpp'ed types. +# Fixing this is not hard, but also requires fixing Urhonimo. + +# bug #2536 + +{.emit: """/*TYPESECTION*/ +struct Vector3 { +public: + Vector3(): x(5) {} + Vector3(float x_): x(x_) {} + float x; +}; +""".} + +type Vector3 {.importcpp: "Vector3", nodecl} = object + x: cfloat + +proc constructVector3(a: cfloat): Vector3 {.importcpp: "Vector3(@)", nodecl} + +# hack around another codegen issue: Generics are attached to where they came +# from: +proc `$!`(v: seq[Vector3]): string = "(x: " & $v[0].x & ")" + +proc vec3List*(): seq[Vector3] = + let s = @[constructVector3(cfloat(1))] + echo($!s) + result = s + echo($!result) + +let f = vec3List() +#echo($!f) |