mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
@@ -390,7 +390,8 @@ proc semConv(c: PContext, n: PNode; flags: TExprFlags = {}, expectedType: PType
|
||||
elif op.kind in {nkPar, nkTupleConstr} and targetType.kind == tyTuple:
|
||||
op = fitNode(c, targetType, op, result.info)
|
||||
of convNotNeedeed:
|
||||
message(c.config, n.info, hintConvFromXtoItselfNotNeeded, result.typ.typeToString)
|
||||
if efNoSem2Check notin flags:
|
||||
message(c.config, n.info, hintConvFromXtoItselfNotNeeded, result.typ.typeToString)
|
||||
of convNotLegal:
|
||||
result = fitNode(c, result.typ, result[1], result.info)
|
||||
if result == nil:
|
||||
|
||||
@@ -2060,7 +2060,7 @@ proc localConvMatch(c: PContext, m: var TCandidate, f, a: PType,
|
||||
if result != nil:
|
||||
if result.typ == nil: return nil
|
||||
# bug #13378, ensure we produce a real generic instantiation:
|
||||
result = c.semExpr(c, call)
|
||||
result = c.semExpr(c, call, {efNoSem2Check})
|
||||
# resulting type must be consistent with the other arguments:
|
||||
var r = typeRel(m, f[0], result.typ)
|
||||
if r < isGeneric: return nil
|
||||
|
||||
24
tests/errmsgs/t10542.nim
Normal file
24
tests/errmsgs/t10542.nim
Normal file
@@ -0,0 +1,24 @@
|
||||
discard """
|
||||
matrix: "--hintaserror:ConvFromXtoItselfNotNeeded"
|
||||
"""
|
||||
|
||||
# bug #10542
|
||||
|
||||
proc f(args: varargs[string, string], length: int) =
|
||||
doAssert args.len == length
|
||||
|
||||
# main use case that requires type conversion (no warning here)
|
||||
f("a", "b", 2)
|
||||
f("a", 1)
|
||||
|
||||
|
||||
proc m(args: varargs[cstring, cstring]) =
|
||||
doAssert args.len == 2
|
||||
|
||||
# main use case that requires type conversion (no warning here)
|
||||
m("a", "b")
|
||||
|
||||
# if an argument already is cstring there's a warning
|
||||
let x: cstring = "x"
|
||||
m("a", x)
|
||||
m(x, "a")
|
||||
Reference in New Issue
Block a user