diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2017-05-16 17:32:18 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-05-16 17:32:18 +0200 |
commit | 503f7806765f0cc6f072f578e272d12d3f9cce56 (patch) | |
tree | f6ad4a0cdf637ae9335f73cae482b3deb36fb353 /compiler/semfields.nim | |
parent | 224eec595a6112c7aa3a4c06afacc99167580464 (diff) | |
parent | 3e52bb6535a70339cf4a15123be09916ef0c31f6 (diff) | |
download | Nim-503f7806765f0cc6f072f578e272d12d3f9cce56.tar.gz |
Merge branch 'zahary' into araq2
Diffstat (limited to 'compiler/semfields.nim')
-rw-r--r-- | compiler/semfields.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/semfields.nim b/compiler/semfields.nim index 06826ef75..6002705b3 100644 --- a/compiler/semfields.nim +++ b/compiler/semfields.nim @@ -121,12 +121,13 @@ proc semForFields(c: PContext, n: PNode, m: TMagic): PNode = localError(n.info, errWrongNumberOfVariables) return result - var tupleTypeA = skipTypes(call.sons[1].typ, abstractVar-{tyTypeDesc}) + const skippedTypesForFields = abstractVar - {tyTypeDesc} + tyUserTypeClasses + var tupleTypeA = skipTypes(call.sons[1].typ, skippedTypesForFields) if tupleTypeA.kind notin {tyTuple, tyObject}: localError(n.info, errGenerated, "no object or tuple type") return result for i in 1..call.len-1: - var tupleTypeB = skipTypes(call.sons[i].typ, abstractVar-{tyTypeDesc}) + var tupleTypeB = skipTypes(call.sons[i].typ, skippedTypesForFields) if not sameType(tupleTypeA, tupleTypeB): typeMismatch(call.sons[i].info, tupleTypeA, tupleTypeB) |