fixes #287; bugfix: subrange checking is performed again

This commit is contained in:
Araq 2013-04-12 16:24:58 +02:00
commit 3cb3813eed
14 changed files with 147 additions and 32 deletions

View file

@ -0,0 +1,19 @@
discard """
output: "right proc called"
"""
type
TMatrixNM*[M, N, T] = object
aij*: array[M, array[N, T]]
TMatrix2x2*[T] = TMatrixNM[range[0..1], range[0..1], T]
TMatrix3x3*[T] = TMatrixNM[range[0..2], range[0..2], T]
proc test*[T] (matrix: TMatrix2x2[T]) =
echo "wrong proc called"
proc test*[T] (matrix: TMatrix3x3[T]) =
echo "right proc called"
var matrix: TMatrix3x3[float]
matrix.test

View file

@ -0,0 +1,21 @@
discard """
line: 20
errormsg: "cannot convert 60 to TRange"
"""
type
TRange = range[0..40]
proc p(r: TRange) =
nil
var
r: TRange
y = 50
r = y
p y
const
myConst: TRange = 60

19
tests/run/tsubrange.nim Normal file
View file

@ -0,0 +1,19 @@
discard """
file: "tsubrange.nim"
outputsub: "value 50 out of range [EOutOfRange]"
exitcode: "1"
"""
type
TRange = range[0..40]
proc p(r: TRange) =
nil
var
r: TRange
y = 50
r = y
#p y

17
tests/run/tsubrange2.nim Normal file
View file

@ -0,0 +1,17 @@
discard """
file: "tsubrange2.nim"
outputsub: "value 50 out of range [EOutOfRange]"
exitcode: "1"
"""
type
TRange = range[0..40]
proc p(r: TRange) =
nil
var
r: TRange
y = 50
p y