mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-05 20:47:53 +00:00
Handle tuples with unnamed fields, symbols, and more. Less duplication.
This commit is contained in:
@@ -198,11 +198,8 @@ proc semConv(c: PContext, n: PNode): PNode =
|
||||
# separate proc from fitNode?
|
||||
if op.kind == nkSym and op.sym.isGenericRoutine:
|
||||
result.sons[1] = fitNode(c, result.typ, result.sons[1])
|
||||
elif op.kind == nkPar and targetType.kind == tyTuple and
|
||||
op.sons.len > 0 and op.sons[0].kind == nkExprColonExpr:
|
||||
# Tuple conversion: set field types in case any are tyEmpty (eg. `@[]`)
|
||||
for i in 0..<op.sons.len:
|
||||
op.sons[i][1].typ = targetType.sons[i]
|
||||
elif op.kind == nkPar and targetType.kind == tyTuple:
|
||||
op = fitNode(c, targetType, op)
|
||||
of convNotNeedeed:
|
||||
message(n.info, hintConvFromXtoItselfNotNeeded, result.typ.typeToString)
|
||||
of convNotLegal:
|
||||
|
||||
@@ -17,3 +17,7 @@ var bar = (
|
||||
strings: @[],
|
||||
ints: @[],
|
||||
).MyTuple
|
||||
|
||||
var fooUnnamed = MyTuple((7, @[], @[]))
|
||||
var n = 7
|
||||
var fooSym = MyTuple((num: n, strings: @[], ints: @[]))
|
||||
|
||||
Reference in New Issue
Block a user