summary refs log tree commit diff stats
path: root/compiler/semfields.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-05-16 17:29:44 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-05-16 17:29:44 +0200
commita5695c13afabac6e67ff677d564b6d1a6aeb1af4 (patch)
tree6a5f1f1b4e808003dfd9851113e789ff2fe051d2 /compiler/semfields.nim
parentc3c37dbb1574db5078b86be29804990d153ec1c1 (diff)
parent3e52bb6535a70339cf4a15123be09916ef0c31f6 (diff)
downloadNim-a5695c13afabac6e67ff677d564b6d1a6aeb1af4.tar.gz
Merge branch 'zahary' into araq
Diffstat (limited to 'compiler/semfields.nim')
-rw-r--r--compiler/semfields.nim5
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)