mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
@@ -1577,8 +1577,14 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType =
|
||||
result = prev
|
||||
of nkSym:
|
||||
let s = getGenSym(c, n.sym)
|
||||
if s.kind == skType and s.typ != nil:
|
||||
var t = s.typ
|
||||
if s.kind == skType and s.typ != nil or
|
||||
s.kind == skParam and s.typ.kind == tyTypeDesc:
|
||||
var t =
|
||||
if s.kind == skType:
|
||||
s.typ
|
||||
else:
|
||||
internalAssert c.config, s.typ.base.kind != tyNone and prev == nil
|
||||
s.typ.base
|
||||
let alias = maybeAliasType(c, t, prev)
|
||||
if alias != nil:
|
||||
result = alias
|
||||
|
||||
11
tests/generics/t8403.nim
Normal file
11
tests/generics/t8403.nim
Normal file
@@ -0,0 +1,11 @@
|
||||
discard """
|
||||
output: "6.0"
|
||||
"""
|
||||
|
||||
proc sum*[T](s: seq[T], R: typedesc): R =
|
||||
var sum: R = 0
|
||||
for x in s:
|
||||
sum += R(x)
|
||||
return sum
|
||||
|
||||
echo @[1, 2, 3].sum(float)
|
||||
Reference in New Issue
Block a user