File tree 2 files changed +40
-15
lines changed
compiler/src/dotty/tools/dotc/core
tests/neg-custom-args/isInstanceOf
2 files changed +40
-15
lines changed Original file line number Diff line number Diff line change @@ -86,7 +86,7 @@ object Annotations {
86
86
myTree.asInstanceOf [Tree ]
87
87
88
88
override def isEvaluating : Boolean = myTree == null
89
- override def isEvaluated : Boolean = myTree.isInstanceOf [Tree ]
89
+ override def isEvaluated : Boolean = myTree.isInstanceOf [Tree @ unchecked ]
90
90
}
91
91
92
92
/** An annotation indicating the body of a right-hand side,
@@ -119,7 +119,7 @@ object Annotations {
119
119
myTree.asInstanceOf [Tree ]
120
120
121
121
override def isEvaluating : Boolean = myTree == null
122
- override def isEvaluated : Boolean = myTree.isInstanceOf [Tree ]
122
+ override def isEvaluated : Boolean = myTree.isInstanceOf [Tree @ unchecked ]
123
123
}
124
124
125
125
object LazyBodyAnnotation {
Original file line number Diff line number Diff line change 1
- trait Tree
2
- trait Context
3
-
4
- def foo (myTree : Tree | (Context => Tree )) =
5
- println(myTree.isInstanceOf [Tree ])
6
- myTree match
7
- case treeFn : (Context => Tree ) => // error
8
- case _ =>
9
-
10
- def bar (myTree : Tree | (Context => Tree )) =
11
- myTree match
12
- case treeFn : (_ => _) => // ok
13
- case _ =>
1
+ object Test1 {
2
+ trait Tree
3
+ trait Context
4
+
5
+ def foo1 (myTree : Tree | (Context => Tree )) =
6
+ println(myTree.isInstanceOf [Tree ])
7
+
8
+ def foo2 (myTree : Tree | (Context => Tree )) =
9
+ myTree match
10
+ case treeFn : (Context => Tree ) => // error
11
+ case _ =>
12
+
13
+ def foo3 (myTree : Tree | (Context => Tree )) =
14
+ myTree match
15
+ case treeFn : (_ => _) => // ok
16
+ case _ =>
17
+ }
18
+
19
+ object Test2 {
20
+ trait Tree [- T ]
21
+ trait Context
22
+
23
+ trait Type
24
+
25
+ def foo1 (myTree : Tree [Type ] | (Context => Tree [Type ])) =
26
+ println(myTree.isInstanceOf [Tree [Type ]]) // error
27
+ /* class DummyTree extends Tree[Nothing] with (Context => Tree[Type]) */
28
+
29
+ def foo2 (myTree : Tree [Type ] | (Context => Tree [Type ])) =
30
+ myTree match
31
+ case treeFn : (Context => Tree [Type ]) => // error
32
+ case _ =>
33
+
34
+ def foo3 (myTree : Tree [Type ] | (Context => Tree [Type ])) =
35
+ myTree match
36
+ case treeFn : (_ => _) => // ok
37
+ case _ =>
38
+ }
You can’t perform that action at this time.
0 commit comments