@@ -3,31 +3,36 @@ import elidable._
3
3
4
4
// runs -Xelide-below WARNING or 900
5
5
6
+ object Fail {
7
+ def fail (msg : String ): Unit = throw new IllegalStateException (s " Expected failure: $msg" )
8
+ }
9
+ import Fail .fail
10
+
6
11
trait T {
7
12
@ elidable(FINEST ) def f1 ()
8
13
@ elidable(SEVERE ) def f2 ()
9
- @ elidable(FINEST ) def f3 () = assert( false , " Should have been elided." )
14
+ @ elidable(FINEST ) def f3 () = fail( " Should have been elided." )
10
15
def f4 ()
11
16
}
12
17
13
18
class C extends T {
14
19
def f1 () = println(" Good for me, I was not elided. C.f1" )
15
20
def f2 () = println(" Good for me, I was not elided. C.f2" )
16
- @ elidable(FINEST ) def f4 () = assert( false , " Should have been elided." )
21
+ @ elidable(FINEST ) def f4 () = fail( " Should have been elided." )
17
22
}
18
23
19
24
object O {
20
- @ elidable(FINEST ) def f1 () = assert( false , " Should have been elided." )
21
- @ elidable(INFO ) def f2 () = assert( false , " Should have been elided." )
25
+ @ elidable(FINEST ) def f1 () = fail( " Should have been elided." )
26
+ @ elidable(INFO ) def f2 () = fail( " Should have been elided." )
22
27
@ elidable(SEVERE ) def f3 () = println(" Good for me, I was not elided. O.f3" )
23
- @ elidable(INFO ) def f4 = assert( false , " Should have been elided (no parens)." )
28
+ @ elidable(INFO ) def f4 = fail( " Should have been elided (no parens)." )
24
29
}
25
30
26
31
object Test {
27
- @ elidable(FINEST ) def f1 () = assert( false , " Should have been elided." )
28
- @ elidable(INFO ) def f2 () = assert( false , " Should have been elided." )
32
+ @ elidable(FINEST ) def f1 () = fail( " Should have been elided." )
33
+ @ elidable(INFO ) def f2 () = fail( " Should have been elided." )
29
34
@ elidable(SEVERE ) def f3 () = println(" Good for me, I was not elided. Test.f3" )
30
- @ elidable(INFO ) def f4 = assert( false , " Should have been elided (no parens)." )
35
+ @ elidable(INFO ) def f4 = fail( " Should have been elided (no parens)." )
31
36
32
37
@ elidable(FINEST ) def f5 () = {}
33
38
@ elidable(FINEST ) def f6 () = true
@@ -38,12 +43,12 @@ object Test {
38
43
@ elidable(FINEST ) def fb () = 1l
39
44
@ elidable(FINEST ) def fc () = 1.0f
40
45
@ elidable(FINEST ) def fd () = 1.0
41
- @ elidable(FINEST ) def fe () = " s "
46
+ @ elidable(FINEST ) def fe () = { fail( " Should have been elided to empty string. " ) ; " hello, world " }
42
47
43
48
/* variable elisions? see test/files/neg/t10068.scala
44
- @elidable(INFO) val goner1: Int = { assert(false, "Should have been elided.") ; 42 }
45
- @elidable(INFO) lazy val goner2: Int = { assert(false, "Should have been elided.") ; 42 }
46
- @elidable(INFO) var goner3: Int = { assert(false, "Should have been elided.") ; 42 }
49
+ @elidable(INFO) val goner1: Int = { fail( "Should have been elided.") ; 42 }
50
+ @elidable(INFO) lazy val goner2: Int = { fail( "Should have been elided.") ; 42 }
51
+ @elidable(INFO) var goner3: Int = { fail( "Should have been elided.") ; 42 }
47
52
@elidable(INFO) var goner4: Nothing = _
48
53
*/
49
54
@@ -74,6 +79,19 @@ object Test {
74
79
println(fc())
75
80
println(fd())
76
81
println(fe())
82
+ if (! fe().isEmpty) fail(s " Not empty: [ ${fe()}] " )
83
+ /*
84
+ ()
85
+ false
86
+ 0
87
+ 0
88
+ 0
89
+ 0
90
+ 0
91
+ 0.0
92
+ 0.0
93
+ // was: null
94
+ */
77
95
78
96
// this one won't show up in the output because a call to f1 is elidable when accessed through T
79
97
(c: T ).f1()
0 commit comments