remove old implementation of the roof operator; make tests green again; close #6292

This commit is contained in:
Andreas Rumpf
2017-10-29 20:36:07 +01:00
parent d52a1061b3
commit f1dab39086
13 changed files with 28 additions and 161 deletions

View File

@@ -1,7 +1,6 @@
discard """
output: '''@[2, 3, 4]321
9.0 4.0
(a: 1.0, b: 2.0, c: 8.0)2.0'''
9.0 4.0'''
"""
proc foo[T](x, y: T): T = x
@@ -10,27 +9,3 @@ var a = @[1, 2, 3, 4]
var b: array[3, array[2, float]] = [[1.0,2], [3.0,4], [8.0,9]]
echo a[1.. ^1], a[^2], a[^3], a[^4]
echo b[^1][^1], " ", (b[^2]).foo(b[^1])[^1]
type
MyArray = object
a, b, c: float
var
ma = MyArray(a: 1.0, b: 2.0, c: 3.0)
proc len(x: MyArray): int = 3
proc `[]=`(x: var MyArray; idx: range[0..2]; val: float) =
case idx
of 0: x.a = val
of 1: x.b = val
of 2: x.c = val
proc `[]`(x: var MyArray; idx: range[0..2]): float =
case idx
of 0: result = x.a
of 1: result = x.b
of 2: result = x.c
ma[^1] = 8.0
echo ma, ma[^2]

View File

@@ -1,10 +0,0 @@
discard """
errormsg: "invalid context for '^' as 'foo()' has side effects"
line: "9"
"""
# XXX This needs to be fixed properly!
proc foo(): seq[int] {.sideEffect.} =
echo "ha"
let f = foo()[^1]

View File

@@ -1,8 +1,7 @@
discard """
errormsg: "invalid context for '^' as len!=high+1 for 'a'"
line: "8"
output: '''c'''
"""
var a: array[1..3, string]
var a: array['a'..'c', string] = ["a", "b", "c"]
echo a[^1]

View File

@@ -1,37 +0,0 @@
discard """
errormsg: "no surrounding array access context for '^'"
line: "37"
"""
proc foo[T](x, y: T): T = x
var a = @[1, 2, 3, 4]
var b: array[3, array[2, float]] = [[1.0,2], [3.0,4], [8.0,9]]
echo a[1.. ^1], a[^2], a[^3], a[^4]
echo b[^1][^1], " ", (b[^2]).foo(b[^1])[^1]
type
MyArray = object
a, b, c: float
var
ma = MyArray(a: 1.0, b: 2.0, c: 3.0)
proc len(x: MyArray): int = 3
proc `[]=`(x: var MyArray; idx: range[0..2]; val: float) =
case idx
of 0: x.a = val
of 1: x.b = val
of 2: x.c = val
proc `[]`(x: var MyArray; idx: range[0..2]): float =
case idx
of 0: result = x.a
of 1: result = x.b
of 2: result = x.c
ma[^1] = 8.0
echo ma, ma[^2]
echo(^1)