File tree Expand file tree Collapse file tree 4 files changed +41
-2
lines changed Expand file tree Collapse file tree 4 files changed +41
-2
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ package jvm
55import scala .tools .asm
66import scala .annotation .threadUnsafe
77import scala .collection .mutable
8- import scala .collection .generic .Clearable
8+ import scala .collection .mutable .Clearable
99
1010import dotty .tools .dotc .core .Flags ._
1111import dotty .tools .dotc .core .Contexts ._
Original file line number Diff line number Diff line change @@ -1339,7 +1339,20 @@ class RefChecks extends MiniPhase { thisPhase =>
13391339 }
13401340
13411341 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)
13431356 tree
13441357 }
13451358
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