File tree Expand file tree Collapse file tree 6 files changed +128
-0
lines changed
tests/neg-custom-args/no-experimental Expand file tree Collapse file tree 6 files changed +128
-0
lines changed Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ enum E : // error
5
+ case A
6
+ case B // error
7
+
8
+ def test : Unit =
9
+ E .A // error
10
+ E .B // error
11
+ val e : E = ??? // error
12
+ ()
Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ class A :
5
+ def f () = 1
6
+
7
+ @ experimental // error
8
+ class B extends A :
9
+ override def f () = 2
10
+
11
+ class C :
12
+ @ experimental // error
13
+ def f () = 1
14
+
15
+ class D extends C :
16
+ override def f () = 2
17
+
18
+ trait A2 :
19
+ @ experimental // error
20
+ def f (): Int
21
+
22
+ trait B2 :
23
+ def f (): Int
24
+
25
+ class C2 extends A2 , B2 :
26
+ def f (): Int = 1
27
+
28
+ def test : Unit =
29
+ val a : A = ??? // error
30
+ val b : B = ??? // error
31
+ val c : C = ???
32
+ val d : D = ???
33
+ val c2 : C2 = ???
34
+ a.f() // error
35
+ b.f() // error
36
+ c.f() // error
37
+ d.f() // ok because D.f is a stable API
38
+ c2.f() // ok because B2.f is a stable API
39
+ ()
Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ trait ExpSAM {
5
+ def foo (x : Int ): Int
6
+ }
7
+ def bar (f : ExpSAM ): Unit = {} // error
8
+
9
+ def test : Unit =
10
+ bar(x => x) // error
11
+ ()
Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ val x = ()
5
+
6
+ @ experimental // error
7
+ def f () = ()
8
+
9
+ @ experimental // error
10
+ object X :
11
+ def fx () = 1
12
+
13
+ def test : Unit =
14
+ f() // error
15
+ x // error
16
+ X .fx() // error
17
+ import X .fx // error
18
+ fx() // error
19
+ ()
Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ class A
5
+
6
+ @ experimental // error
7
+ class B extends A
8
+
9
+ @ experimental // error
10
+ type X
11
+
12
+ @ experimental // error
13
+ type Y = Int
14
+
15
+ @ experimental // error
16
+ opaque type Z = Int
17
+
18
+ def test (
19
+ p1 : A , // error
20
+ p2 : List [A ], // error
21
+ p3 : X , // error
22
+ p4 : Y , // error
23
+ p5 : Z , // error
24
+ ): Unit =
25
+ new A // error
26
+ new B // error
27
+ val i1 = identity[X ] // error // error
28
+ val i2 = identity[A ] // error // error
29
+ ()
Original file line number Diff line number Diff line change
1
+ import scala .annotation .experimental
2
+
3
+ @ experimental // error
4
+ class A
5
+
6
+ object Extractor1 :
7
+ def unapply (s : Any ): Option [A ] = ??? // error
8
+
9
+ object Extractor2 :
10
+ @ experimental // error
11
+ def unapply (s : Any ): Option [Int ] = ???
12
+
13
+ def test : Unit =
14
+ (??? : Any ) match
15
+ case _ : A => // error // error
16
+ case Extractor1 (_) => // error
17
+ case Extractor2 (_) => // error
18
+ ()
You can’t perform that action at this time.
0 commit comments