fixes #4625
This commit is contained in:
parent
3a5edd2c6c
commit
3710e62241
2 changed files with 23 additions and 1 deletions
|
|
@ -546,7 +546,7 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var IntSet): Rope =
|
|||
of tyRef, tyPtr, tyVar:
|
||||
var star = if t.kind == tyVar and tfVarIsPtr notin typ.flags and
|
||||
compileToCpp(m): "&" else: "*"
|
||||
var et = t.lastSon
|
||||
var et = typ.skipTypes(abstractInst).lastSon
|
||||
var etB = et.skipTypes(abstractInst)
|
||||
if etB.kind in {tyArrayConstr, tyArray, tyOpenArray, tyVarargs}:
|
||||
# this is correct! sets have no proper base type, so we treat
|
||||
|
|
|
|||
22
tests/cpp/tempty_generic_obj.nim
Normal file
22
tests/cpp/tempty_generic_obj.nim
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
discard """
|
||||
cmd: "nim cpp $file"
|
||||
output: '''int
|
||||
float'''
|
||||
"""
|
||||
|
||||
import typetraits
|
||||
|
||||
# bug #4625
|
||||
type
|
||||
Vector {.importcpp: "std::vector<'0 >", header: "vector".} [T] = object
|
||||
|
||||
proc initVector[T](): Vector[T] {.importcpp: "'0(@)", header: "vector", constructor.}
|
||||
|
||||
proc doSomething[T](v: var Vector[T]) =
|
||||
echo T.name
|
||||
|
||||
var v = initVector[int]()
|
||||
v.doSomething()
|
||||
|
||||
var vf = initVector[float]()
|
||||
vf.doSomething() # Nim uses doSomething[int] here in C++
|
||||
Loading…
Add table
Add a link
Reference in a new issue