[patterns] Unchecked cast warning is absent?
Tagir Valeev
amaembo at gmail.com
Mon Oct 2 09:45:43 UTC 2017
Hello!
Just tried to play with pattern matching implementation. Seems that
the matching against a non-reifiable type is unsafe, which is
expected. Should the warning be displayed in this case?
E.g.:
import java.util.*;
public class ListTest {
static void matches(Object obj) {
if(obj __matches List<String> list) {
System.out.println(list.get(0));
}
}
public static void main(String[] args) {
matches(Collections.singletonList(1));
}
}
$ ~/j/bin/javac -Xlint:all ListTest.java
(compilation successful, no warning)
$ ~/j/bin/java ListTest
Exception in thread "main" java.lang.ClassCastException:
java.base/java.lang.Integer cannot be cast to
java.base/java.lang.String
at ListTest.matches(ListTest.java:7)
at ListTest.main(ListTest.java:12)
With best regards,
Tagir Valeev.
More information about the amber-dev
mailing list