Fixed type inference for 'set` and 'tuple' (#18827)
* improved built in typeclass inference * Smarter logic to fit node * Forgot the untyped check
This commit is contained in:
parent
1f68f71ec2
commit
66e53bdd7b
2 changed files with 24 additions and 1 deletions
|
|
@ -77,7 +77,8 @@ template semIdeForTemplateOrGeneric(c: PContext; n: PNode;
|
|||
|
||||
proc fitNodePostMatch(c: PContext, formal: PType, arg: PNode): PNode =
|
||||
let x = arg.skipConv
|
||||
if x.kind in {nkPar, nkTupleConstr, nkCurly} and formal.kind != tyUntyped:
|
||||
if (x.kind == nkCurly and formal.kind == tySet and formal.base.kind != tyGenericParam) or
|
||||
(x.kind in {nkPar, nkTupleConstr}) and formal.kind notin {tyUntyped, tyBuiltInTypeClass}:
|
||||
changeType(c, x, formal, check=true)
|
||||
result = arg
|
||||
result = skipHiddenSubConv(result, c.graph, c.idgen)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue