File tree 4 files changed +41
-2
lines changed
4 files changed +41
-2
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ package jvm
5
5
import scala .tools .asm
6
6
import scala .annotation .threadUnsafe
7
7
import scala .collection .mutable
8
- import scala .collection .generic .Clearable
8
+ import scala .collection .mutable .Clearable
9
9
10
10
import dotty .tools .dotc .core .Flags ._
11
11
import dotty .tools .dotc .core .Contexts ._
Original file line number Diff line number Diff line change @@ -1339,7 +1339,20 @@ class RefChecks extends MiniPhase { thisPhase =>
1339
1339
}
1340
1340
1341
1341
override def transformTypeTree (tree : TypeTree )(using Context ): TypeTree = {
1342
- checkExperimental(tree.symbol, tree.srcPos)
1342
+ object CheckExperimental extends TypeTraverser {
1343
+ def traverse (tp : Type ): Unit =
1344
+ tp match {
1345
+ case tp : TypeRef =>
1346
+ checkDeprecated(tp.symbol, tree.srcPos)
1347
+ checkExperimental(tp.symbol, tree.srcPos)
1348
+ case tp : TermRef =>
1349
+ checkDeprecated(tp.symbol, tree.srcPos)
1350
+ checkExperimental(tp.symbol, tree.srcPos)
1351
+ case _ =>
1352
+ traverseChildren(tp)
1353
+ }
1354
+ }
1355
+ CheckExperimental .traverse(tree.tpe)
1343
1356
tree
1344
1357
}
1345
1358
Original file line number Diff line number Diff line change
1
+
2
+ @ deprecated trait Exp
3
+ @ deprecated val exp = 1
4
+
5
+ def test1 = exp // error
6
+ def test2 (a : Exp ) = () // error
7
+
8
+ type Foo0 = Exp // error
9
+ type Foo = Option [Exp ] // error
10
+ type Bar = Option [exp.type ] // error
11
+ type Baz = Exp | Int // error
12
+ type Quux = [X ] =>> X match // error
13
+ case Exp => Int
14
+ type Quuz [A <: Exp ] = Int // error
Original file line number Diff line number Diff line change
1
+ import annotation .experimental
2
+
3
+ @ experimental trait Exp
4
+ @ experimental val exp = 1
5
+
6
+ type Foo0 = Exp // error
7
+ type Foo = Option [Exp ] // error
8
+ type Bar = Option [exp.type ] // error
9
+ type Baz = Exp | Int // error
10
+ type Quux = [X ] =>> X match // error
11
+ case Exp => Int
12
+ type Quuz [A <: Exp ] = Int // error
You can’t perform that action at this time.
0 commit comments