intersection in cast type: repeat interface, different parameterization checks

This commit is contained in:
Anna Kozlova
2015-04-20 10:19:22 +02:00
parent 2318a3a58c
commit f5cec5e24a
9 changed files with 79 additions and 32 deletions
@@ -1,4 +1,5 @@
import java.io.Serializable;
import java.util.*;
class FooBar1 {
{
@@ -7,5 +8,8 @@ class FooBar1 {
Object y2 = (CharSequence & <error descr="Interface expected here">Integer</error>) x;
Object y3 = (Integer & CharSequence) x;
<error descr="Incompatible types. Found: 'java.lang.CharSequence & java.io.Serializable', required: 'int'">int y1 = (CharSequence & Serializable) x;</error>
Object z0 = (Cloneable & <error descr="Unexpected type: class is expected">Runnable[]</error>) x;
Object z1 = (Cloneable & <error descr="Repeated interface">Cloneable</error>) x;
Object z2 = <error descr="java.util.Collection cannot be inherited with different arguments: String and Integer">(List<String> & Set<Integer>) x</error>;
}
}
@@ -9,6 +9,6 @@ class Test {
{
Predicate<String> mh1 = (Predicate<String> & Serializable)Test::test;
Predicate<String> mh0 = (<warning descr="Casting 'Test::test' to 'Predicate<String> & Predicate<String>' is redundant">Predicate<String> & Predicate<String></warning>)Test::test;
Predicate<String> mh0 = (Predicate<String> & <error descr="Repeated interface">Predicate<String></error>)Test::test;
}
}