summary refs log tree commit diff stats
path: root/compiler/sigmatch.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/sigmatch.nim')
-rw-r--r--compiler/sigmatch.nim8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim
index a8551fa19..d6a0c6382 100644
--- a/compiler/sigmatch.nim
+++ b/compiler/sigmatch.nim
@@ -1240,13 +1240,15 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation =
         if prev == nil: put(c, f, a)
         result = isGeneric
       else:
-        var aAsObject = roota.lastSon
-        if rootf.lastSon.kind in {tyAnd, tyOr}:
+        let fKind = rootf.lastSon.kind
+        if fKind in {tyAnd, tyOr}:
           result = typeRel(c, lastSon(f), a)
           if result != isNone: put(c, f, a)
           return
 
-        if rootf.lastSon.kind == tyRef and aAsObject.kind == tyRef:
+        var aAsObject = roota.lastSon
+
+        if fKind in {tyRef, tyPtr} and aAsObject.kind == fKind:
           aAsObject = aAsObject.base
 
         if aAsObject.kind == tyObject: