diff options
-rw-r--r-- | compiler/sigmatch.nim | 2 | ||||
-rw-r--r-- | tests/ccgbugs/tnil_type.nim | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index 154d76209..07ed5c3bc 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -340,8 +340,6 @@ proc typeRel*(c: var TCandidate, f, aOrig: PType, proc concreteType(c: TCandidate, t: PType; f: PType = nil): PType = case t.kind - of tyNil: - result = nil # what should it be? of tyTypeDesc: if c.isNoCall: result = t else: result = nil diff --git a/tests/ccgbugs/tnil_type.nim b/tests/ccgbugs/tnil_type.nim index 44ecf1cc9..b57e64513 100644 --- a/tests/ccgbugs/tnil_type.nim +++ b/tests/ccgbugs/tnil_type.nim @@ -2,5 +2,14 @@ discard """ targets: "c cpp" """ -proc foo(v: type(nil)) = discard -foo nil +proc f1(v: typeof(nil)) = discard +f1(nil) + +proc f2[T]() = discard +f2[typeof(nil)]() + +proc f3(_: typedesc) = discard +f3(typeof(nil)) + +proc f4[T](_: T) = discard +f4(nil) \ No newline at end of file |