1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
discard """
output: '''true
false
true
false
true
false
true
false
true
false'''
joinable: false
"""
import macros
macro same(a: typedesc, b: typedesc): untyped =
newLit(a.getType[1].sameType b.getType[1])
echo same(int, int)
echo same(int, float)
type
SomeInt = int
DistinctInt = distinct int
SomeFloat = float
DistinctFloat = distinct float
echo same(int, SomeInt)
echo same(int, DistinctInt)
echo same(float, SomeFloat)
echo same(float, DistinctFloat)
type
Obj = object of RootObj
SubObj = object of Obj
Other = object of RootObj
echo same(Obj, Obj)
echo same(int, Obj)
echo same(SubObj, SubObj)
echo same(Other, Obj)
|