fixes #6526
This commit is contained in:
parent
8c94a00e02
commit
9c00f6decd
3 changed files with 36 additions and 15 deletions
|
|
@ -2,7 +2,9 @@ discard """
|
|||
output: '''Version 2 was called.
|
||||
This has the highest precedence.
|
||||
This has the second-highest precedence.
|
||||
This has the lowest precedence.'''
|
||||
This has the lowest precedence.
|
||||
baseobj ==
|
||||
true'''
|
||||
"""
|
||||
|
||||
# bug #2220
|
||||
|
|
@ -26,13 +28,13 @@ template testPred(a: untyped) =
|
|||
type SomeA = A|A # A hack to make "A" a typeclass.
|
||||
|
||||
when a >= 3:
|
||||
proc p[X](x: X) =
|
||||
echo "This has the highest precedence."
|
||||
when a >= 2:
|
||||
proc p[X: A](x: X) =
|
||||
echo "This has the highest precedence."
|
||||
when a == 2:
|
||||
proc p[X: SomeA](x: X) =
|
||||
echo "This has the second-highest precedence."
|
||||
when a >= 1:
|
||||
proc p[X: SomeA](x: X) =
|
||||
proc p[X](x: X) =
|
||||
echo "This has the lowest precedence."
|
||||
|
||||
p(B())
|
||||
|
|
@ -40,3 +42,16 @@ template testPred(a: untyped) =
|
|||
testPred(3)
|
||||
testPred(2)
|
||||
testPred(1)
|
||||
|
||||
# bug #6526
|
||||
type
|
||||
BaseObj = ref object of RootObj
|
||||
DerivedObj = ref object of BaseObj
|
||||
|
||||
proc `==`*[T1, T2: BaseObj](a: T1, b: T2): bool =
|
||||
echo "baseobj =="
|
||||
return true
|
||||
|
||||
let a = DerivedObj()
|
||||
let b = DerivedObj()
|
||||
echo a == b
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue