summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-11-17 11:40:46 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-11-17 11:40:46 +0100
commit2d726711fac6e594b728e5b6252823ffc70ba2eb (patch)
treea1271e6d435eea8ccc1127c73da784e95b9d73bc
parent338570ecd03c3f76186ee346800a9f7085255119 (diff)
downloadNim-2d726711fac6e594b728e5b6252823ffc70ba2eb.tar.gz
fixes #6765
-rw-r--r--compiler/semtypes.nim10
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim
index 92a36857a..b032557b7 100644
--- a/compiler/semtypes.nim
+++ b/compiler/semtypes.nim
@@ -1420,9 +1420,13 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType =
     else: result = semGeneric(c, n, s, prev)
   of nkDotExpr:
     let typeExpr = semExpr(c, n)
-    if typeExpr.typ.kind == tyFromExpr:
-      return typeExpr.typ
-    if typeExpr.typ.kind != tyTypeDesc:
+    if typeExpr.typ.isNil:
+      localError(n.info, "object constructor needs an object type;" &
+          " for named arguments use '=' instead of ':'")
+      result = errorType(c)
+    elif typeExpr.typ.kind == tyFromExpr:
+      result = typeExpr.typ
+    elif typeExpr.typ.kind != tyTypeDesc:
       localError(n.info, errTypeExpected)
       result = errorType(c)
     else: