summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorRyan McConnell <rammcconnell@gmail.com>2024-07-11 16:57:17 -0400
committerGitHub <noreply@github.com>2024-07-11 22:57:17 +0200
commit22ba5abd635a1b50c76acb0b80097a663cdf97c9 (patch)
treecdc8cd037be96653a5d6d70d46a368857c32e2f8
parent173b8a8c58cf649ccc1d2d048d8e2b1407f20d78 (diff)
downloadNim-22ba5abd635a1b50c76acb0b80097a663cdf97c9.tar.gz
fixes 23823; array static overload - again (#23824)
#23823
-rw-r--r--compiler/sigmatch.nim2
-rw-r--r--tests/overload/t23755.nim10
2 files changed, 12 insertions, 0 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim
index 9595ac62b..18170ecfc 100644
--- a/compiler/sigmatch.nim
+++ b/compiler/sigmatch.nim
@@ -1290,6 +1290,8 @@ proc typeRel(c: var TCandidate, f, aOrig: PType,
           return isNone
 
       if fRange.rangeHasUnresolvedStatic:
+        if aRange.kind in {tyGenericParam} and aRange.reduceToBase() == aRange:
+          return
         return inferStaticsInRange(c, fRange, a)
       elif c.c.matchedConcept != nil and aRange.rangeHasUnresolvedStatic:
         return inferStaticsInRange(c, aRange, f)
diff --git a/tests/overload/t23755.nim b/tests/overload/t23755.nim
index 3d06cee65..de338a2ce 100644
--- a/tests/overload/t23755.nim
+++ b/tests/overload/t23755.nim
@@ -50,3 +50,13 @@ block:
 
   var g: array[32, char]
   doAssert p(g)
+
+block:  # issue #23823
+  func p[N,T](a, b: array[N,T]) =
+    discard
+
+  func p[N: static int; T](x, y: array[N, T]) =
+    discard
+
+  var a: array[5, int]
+  p(a,a)