1234567891011121314151617181920212223 |
- block: # issue #13799
- type
- X[A, B] = object
- a: A
- b: B
- Y[A] = X[A, int]
- template s(T: type X): X = T()
- template t[A, B](T: type X[A, B]): X[A, B] = T()
- proc works1(): Y[int] = s(X[int, int])
- proc works2(): Y[int] = t(X[int, int])
- proc works3(): Y[int] = t(Y[int])
- proc broken(): Y[int] = s(Y[int])
- block: # issue #24415
- type GVec2[T] = object
- x, y: T
- type Uniform[T] = T
- proc foo(v: Uniform[GVec2[float32]]): float32 =
- result = v.x
- let f = GVec2[float32](x: 1.0f, y: 2.0f)
- doAssert foo(f) == 1.0f
|