[tests] prepares Java tests for the language level raise

This commit is contained in:
Roman Shevchenko
2017-03-24 13:19:01 +01:00
parent 05b15f593e
commit 6bd1b92c6e
38 changed files with 129 additions and 166 deletions
@@ -1,6 +1,6 @@
class Test {
interface I {
int _();
int m();
}
static abstract class Parent {
@@ -1,27 +1,25 @@
class MyTest {
private static class Foo {
static int foo(int i) { return i; }
}
static Foo foo = new Foo();
static void foo(String s) {}
static void bar(Integer i, Number n) {}
static void bar(Number n, Integer i) {}
void baz(int i) {}
}
class AlienTest {
interface IInt {
int _(int i);
int m(int i);
}
interface IIntInt {
int _(Integer i1, Integer i2);
int m(Integer i1, Integer i2);
}
static {
@@ -35,34 +33,31 @@ class AlienTest {
}
}
class MyTest1 {
interface I1 {
int[] _();
int[] m();
}
interface I2 {
Object _();
}
interface I3 {
char[] _();
}
interface I4 {
boolean _();
interface I2 {
Object m();
}
interface I3 {
char[] m();
}
interface I4 {
boolean m();
}
interface I5 {
Class<? extends MyTest1> _();
Class<? extends MyTest1> m();
}
interface I6 {
Class<MyTest1> _();
Class<MyTest1> m();
}
void foo(Object[] arr) {
I1 c1 = <error descr="Bad return type in method reference: cannot convert java.lang.Object[] to int[]">arr :: clone</error>;
I2 c2 = arr :: clone;
@@ -1,19 +1,12 @@
package todelete;
/**
* Created with IntelliJ IDEA.
* User: Anna.Kozlova
* Date: 9/26/12
* Time: 1:18 PM
* To change this template use File | Settings | File Templates.
*/
class MyTest {
interface Bar1 {
int _(String s);
int m(String s);
}
interface Bar2 {
int _(int s);
int m(int s);
}
void bar(Bar1 b1){}
@@ -35,11 +28,11 @@ class MyTest {
class MyTest1 {
interface Bar1 {
int _(String s);
int m(String s);
}
interface Bar2 {
int _(int s);
int m(int s);
}
//void bar(Bar1 b1){}
@@ -61,11 +54,11 @@ class MyTest1 {
class MyTest2 {
interface Bar1 {
int _(String s);
int m(String s);
}
interface Bar2 {
int _(int s);
int m(int s);
}
void bar(Bar1 b1){}
@@ -87,11 +80,11 @@ class MyTest2 {
class MyTest3 {
interface Bar1 {
int _(String s);
int m(String s);
}
interface Bar2 {
int _(int s);
int m(int s);
}
//void bar(Bar1 b1){}
@@ -114,7 +107,7 @@ class MyTest3 {
class MyTest4 {
interface Bar1<T> {
int _(T s);
int m(T s);
}
@@ -135,7 +128,7 @@ class MyTest4 {
class MyTest5 {
interface Bar1<T> {
int _(T s);
int m(T s);
}
@@ -156,7 +149,7 @@ class MyTest5 {
class MyTest6 {
interface I {
void _(Integer i);
void m(Integer i);
}
static void foo(Number i) {}
@@ -165,13 +158,13 @@ class MyTest6 {
public static void main(String[] args) {
I s = MyTest6::foo;
s._(1);
s.m(1);
}
}
class MyTest7 {
interface I {
void _(Number i);
void m(Number i);
}
static void foo(Number i) {}
@@ -180,6 +173,6 @@ class MyTest7 {
public static void main(String[] args) {
I s = MyTest7::foo;
s._(1);
s.m(1);
}
}
@@ -10,7 +10,7 @@ class Test {
}
interface Bar {
Integer _(String s);
Integer m(String s);
}
}
@@ -20,7 +20,7 @@ class Test1 {
Comparable<String> c = Test1 :: length;
Comparable<Integer> c1 = Test1 :: length;
}
public static Integer length(String s) {
return s.length();
}
@@ -28,9 +28,9 @@ class Test1 {
public static Integer length(Integer s) {
return s;
}
interface Bar {
Integer _(String s);
Integer m(String s);
}
}
@@ -60,11 +60,11 @@ class StaticInner1 {
}
interface I1 {
Inner _(StaticInner1 rec);
Inner m(StaticInner1 rec);
}
interface I2 {
Inner _();
Inner m();
}
static void call3(I1 s) {}
@@ -130,7 +130,7 @@ class NonStaticInner3 {
interface I2<X> {
X m();
}
interface I3<X> {
X m(NonStaticInner3 rec, int i);
}
@@ -3,19 +3,19 @@ class MyTest<E> {
}
interface I<T> {
MyTest<T> _(T t);
MyTest<T> m(T t);
}
static <Y> void bar(Y arg, I<Y> i) {
i._(arg);
i.m(arg);
}
static <Y> void bar(I<Y> i, Y arg) {
i._(arg);
i.m(arg);
}
static <Y> void bar(I<Y> i) {
i._(null);
i.m(null);
}
public static void main(String[] args) {
@@ -1,11 +1,12 @@
import java.util.List;
class GetClassTest {
interface GetCl {
Class<? extends List> _();
Class<? extends List> m();
}
interface GetClReturnTypeProblems {
Class<List<String>> _();
Class<List<String>> m();
}
void test(int[] iarr, List<String> ls) {
@@ -3,19 +3,19 @@ class MyTestDefaultConstructor {
static class Foo<X extends Number> extends SuperFoo<X> {
}
interface I1 {
SuperFoo<String> _();
SuperFoo<String> m();
}
interface I2 {
SuperFoo<Integer> _();
SuperFoo<Integer> m();
}
interface I3 {
SuperFoo<Object> _();
SuperFoo<Object> m();
}
private static void <warning descr="Private method 'foo(MyTestDefaultConstructor.I1)' is never used">foo</warning>(I1 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestDefaultConstructor.I2)' is never used">foo</warning>(I2 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestDefaultConstructor.I3)' is never used">foo</warning>(I3 i) {System.out.println(i);}
@@ -31,19 +31,19 @@ class MyTestConstructor {
static class Foo<X extends Number> extends SuperFoo<X> {
Foo(){}
}
interface I1 {
SuperFoo<String> _();
SuperFoo<String> m();
}
interface I2 {
SuperFoo<Integer> _();
SuperFoo<Integer> m();
}
interface I3 {
SuperFoo<Object> _();
SuperFoo<Object> m();
}
private static void <warning descr="Private method 'foo(MyTestConstructor.I1)' is never used">foo</warning>(I1 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestConstructor.I2)' is never used">foo</warning>(I2 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestConstructor.I3)' is never used">foo</warning>(I3 i) {System.out.println(i);}
@@ -58,21 +58,21 @@ class MyTestMethod {
static class Foo<X extends Number> extends SuperFoo<X> {
}
interface I1 {
SuperFoo<String> _();
SuperFoo<String> m();
}
interface I2 {
SuperFoo<Integer> _();
SuperFoo<Integer> m();
}
interface I3 {
SuperFoo<Object> _();
SuperFoo<Object> m();
}
static <X extends Number> Foo<X> m() { return null; }
private static void <warning descr="Private method 'foo(MyTestMethod.I1)' is never used">foo</warning>(I1 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestMethod.I2)' is never used">foo</warning>(I2 i) {System.out.println(i);}
private static void <warning descr="Private method 'foo(MyTestMethod.I3)' is never used">foo</warning>(I3 i) {System.out.println(i);}
@@ -1,13 +1,12 @@
class MyTest {
interface I {
void _(MyTest receiver, Integer i);
void m(MyTest receiver, Integer i);
}
void m(Integer i) {}
public static void main(String[] args) {
I i = MyTest :: m;
i._(new MyTest(), 1);
i.m(new MyTest(), 1);
}
}
@@ -1,5 +1,4 @@
class OnArrayTest {
interface Cln {
Object m(int[] i);
}
@@ -16,9 +15,8 @@ class OnArrayTest {
int len(T[] ta);
}
interface ToStr<T> {
String _(T[] ta);
String m(T[] ta);
}
interface ArrayReturnType<T> {
@@ -40,18 +38,17 @@ class OnArrayTest {
ArrayReturnType<String[]> a1 = String[]::new;
ArrayReturnType<String[][]> a2 = String[][]::new;
ArrayReturnType<String[]> a3 = <error descr="Bad return type in method reference: cannot convert int[] to java.lang.String[]">int[]::new</error>;
ObjectArrayReturnType a4 = Foo<?>[]::new;
ObjectArrayReturnType a5 = <error descr="Generic array creation">Foo<? extends String>[]</error>::new;
}
}
class IDEA106973 {
interface Function<T, R> {
R apply(T t);
}
{
Function<Integer, String[]> a = String[] :: new;
<error descr="Incompatible types. Found: '<method reference>', required: 'IDEA106973.Function<java.lang.String,java.lang.String[]>'">Function<String, String[]> a1 = String[] :: new;</error>
@@ -1,6 +1,6 @@
class MyTest {
interface I<X> {
X _();
X m();
}
static <T> T bar() {return null;}
static {
@@ -1,11 +1,8 @@
class Test<X> {
interface I {
void _();
void m();
}
void test() {
I i1 = <error descr="Parameterized qualifier on static method reference">Test<String>::foo</error>;
I i2 = Test::foo;
@@ -12,11 +12,11 @@ class Test {
public static Integer length(String s) {
return s.length();
}
public static void bar(Bar bar) {}
interface Bar {
Integer _(String s);
Integer m(String s);
}
void f() throws IOException {