mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-09 22:43:34 +00:00
fixes #22971
This commit is contained in:
@@ -1052,7 +1052,7 @@ proc semIndirectOp(c: PContext, n: PNode, flags: TExprFlags; expectedType: PType
|
||||
result.transitionSonsKind(nkCall)
|
||||
result.flags.incl nfExplicitCall
|
||||
for i in 1..<n.len: result.add n[i]
|
||||
return semExpr(c, result, flags)
|
||||
return semExpr(c, result, flags, expectedType)
|
||||
else:
|
||||
n[0] = n0
|
||||
else:
|
||||
@@ -3124,7 +3124,7 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}, expectedType: PType
|
||||
result = semFieldAccess(c, n, flags)
|
||||
if result.kind == nkDotCall:
|
||||
result.transitionSonsKind(nkCall)
|
||||
result = semExpr(c, result, flags)
|
||||
result = semExpr(c, result, flags, expectedType)
|
||||
of nkBind:
|
||||
message(c.config, n.info, warnDeprecated, "bind is deprecated")
|
||||
result = semExpr(c, n[0], flags, expectedType)
|
||||
|
||||
@@ -159,4 +159,26 @@ block:
|
||||
|
||||
let res = doStuff()
|
||||
doAssert res.kind == Error
|
||||
doAssert res.errVal == "Error"
|
||||
doAssert res.errVal == "Error"
|
||||
|
||||
# ufcs
|
||||
block:
|
||||
proc getValue[T](_: string): T =
|
||||
doAssert T is int
|
||||
44
|
||||
|
||||
proc `'test`[T](_: string): T =
|
||||
55
|
||||
|
||||
let a: int = getValue("")
|
||||
let b: int = "".getValue()
|
||||
let c: int = "".getValue
|
||||
let d: int = getValue ""
|
||||
let e: int = getValue""
|
||||
let f: int = 12345'test
|
||||
doAssert a == 44
|
||||
doAssert b == 44
|
||||
doAssert c == 44
|
||||
doAssert d == 44
|
||||
doAssert e == 44
|
||||
doAssert f == 55
|
||||
|
||||
Reference in New Issue
Block a user