diff options
-rw-r--r-- | compiler/sigmatch.nim | 8 | ||||
-rw-r--r-- | tests/typerel/tint.nim | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index 75e3e5428..0dbd5e5f1 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -1840,7 +1840,9 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, elif f.base.kind == tyNone: result = isGeneric else: - result = typeRel(c, f.base, a.base, flags) + let r = typeRel(c, f.base, a.base, flags) + if r >= isIntConv: + result = r if result != isNone: put(c, f, a) @@ -1848,7 +1850,9 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, if tfUnresolved in f.flags: result = typeRel(c, prev.base, a, flags) elif a.kind == tyTypeDesc: - result = typeRel(c, prev.base, a.base, flags) + let r = typeRel(c, prev.base, a.base, flags) + if r >= isIntConv: + result = r else: result = isNone diff --git a/tests/typerel/tint.nim b/tests/typerel/tint.nim new file mode 100644 index 000000000..de0e78a81 --- /dev/null +++ b/tests/typerel/tint.nim @@ -0,0 +1,4 @@ + +template a(T: type int32) = discard +template a(T: type int64) = discard +a(int) |