aboutsummaryrefslogtreecommitdiff
path: root/javatests
diff options
context:
space:
mode:
Diffstat (limited to 'javatests')
-rw-r--r--javatests/com/google/turbine/binder/BinderErrorTest.java53
-rw-r--r--javatests/com/google/turbine/binder/BinderTest.java2
-rw-r--r--javatests/com/google/turbine/bytecode/ClassReaderTest.java20
-rw-r--r--javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java2
-rw-r--r--javatests/com/google/turbine/deps/DependenciesTest.java5
-rw-r--r--javatests/com/google/turbine/lower/IntegrationTestSupport.java5
-rw-r--r--javatests/com/google/turbine/lower/LongStringIntegrationTest.java2
-rw-r--r--javatests/com/google/turbine/lower/LowerIntegrationTest.java18
-rw-r--r--javatests/com/google/turbine/lower/LowerTest.java95
-rw-r--r--javatests/com/google/turbine/lower/testdata/package_info.test2
-rw-r--r--javatests/com/google/turbine/lower/testdata/record_ctor.test52
-rw-r--r--javatests/com/google/turbine/lower/testdata/record_tostring.test35
-rw-r--r--javatests/com/google/turbine/main/MainTest.java4
-rw-r--r--javatests/com/google/turbine/parse/LexerTest.java7
-rw-r--r--javatests/com/google/turbine/parse/ParserIntegrationTest.java15
-rw-r--r--javatests/com/google/turbine/processing/TurbineElementsGetAllMembersTest.java10
-rw-r--r--javatests/com/google/turbine/processing/TurbineFilerTest.java2
17 files changed, 280 insertions, 49 deletions
diff --git a/javatests/com/google/turbine/binder/BinderErrorTest.java b/javatests/com/google/turbine/binder/BinderErrorTest.java
index 6766470..a1bea05 100644
--- a/javatests/com/google/turbine/binder/BinderErrorTest.java
+++ b/javatests/com/google/turbine/binder/BinderErrorTest.java
@@ -681,7 +681,9 @@ public class BinderErrorTest {
"class T extends T {}",
},
{
- "<>:1: error: cycle in class hierarchy: T", "class T extends T {}", " ^",
+ "<>:1: error: cycle in class hierarchy: T", //
+ "class T extends T {}",
+ " ^",
},
},
{
@@ -692,6 +694,19 @@ public class BinderErrorTest {
"<>:1: error: cycle in class hierarchy: T",
"class T implements T {}",
" ^",
+ "<>:1: error: expected interface type",
+ "class T implements T {}",
+ " ^",
+ },
+ },
+ {
+ {
+ "interface T extends T {}",
+ },
+ {
+ "<>:1: error: cycle in class hierarchy: T",
+ "interface T extends T {}",
+ " ^",
},
},
{
@@ -768,7 +783,7 @@ public class BinderErrorTest {
"@interface Test {}",
},
{
- "<>:3: error: missing required annotation argument: value",
+ "<>:3: error: missing required annotation argument: value", //
"@Retention",
"^",
},
@@ -958,6 +973,40 @@ public class BinderErrorTest {
" ^",
},
},
+ {
+ {
+ "class C {}", //
+ "interface I {}",
+ "class A extends I implements C {}",
+ "interface B extends C {}",
+ },
+ {
+ "<>:3: error: unexpected interface type",
+ "class A extends I implements C {}",
+ " ^",
+ "<>:3: error: expected interface type",
+ "class A extends I implements C {}",
+ " ^",
+ "<>:4: error: expected interface type",
+ "interface B extends C {}",
+ " ^",
+ },
+ },
+ {
+ {
+ "class T<X, X> {", //
+ " <Y, Y> void f() {}",
+ "}",
+ },
+ {
+ "<>:1: error: duplicate declaration of X",
+ "class T<X, X> {",
+ " ^",
+ "<>:2: error: duplicate declaration of Y",
+ " <Y, Y> void f() {}",
+ " ^",
+ },
+ },
};
return Arrays.asList((Object[][]) testCases);
}
diff --git a/javatests/com/google/turbine/binder/BinderTest.java b/javatests/com/google/turbine/binder/BinderTest.java
index 40387ac..52b769b 100644
--- a/javatests/com/google/turbine/binder/BinderTest.java
+++ b/javatests/com/google/turbine/binder/BinderTest.java
@@ -265,7 +265,7 @@ public class BinderTest {
parseLines(
"import java.lang.annotation.Target;",
"import java.lang.annotation.ElementType;",
- "public class C implements B {",
+ "public class C extends B {",
" @Target(ElementType.TYPE_USE)",
" @interface A {};",
"}"));
diff --git a/javatests/com/google/turbine/bytecode/ClassReaderTest.java b/javatests/com/google/turbine/bytecode/ClassReaderTest.java
index ad5b90d..d7abea5 100644
--- a/javatests/com/google/turbine/bytecode/ClassReaderTest.java
+++ b/javatests/com/google/turbine/bytecode/ClassReaderTest.java
@@ -40,6 +40,7 @@ import org.objectweb.asm.ByteVector;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.Handle;
+import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.ModuleVisitor;
import org.objectweb.asm.Opcodes;
@@ -57,12 +58,16 @@ public class ClassReaderTest {
null,
"java/lang/Object",
null);
- cw.visitMethod(
- Opcodes.ACC_PUBLIC,
- "f",
- "(Ljava/lang/String;)Ljava/lang/String;",
- "<T:Ljava/lang/String;>(TT;)TT;",
- null);
+ MethodVisitor mv =
+ cw.visitMethod(
+ Opcodes.ACC_PUBLIC,
+ "f",
+ "(Ljava/lang/String;)Ljava/lang/String;",
+ "<T:Ljava/lang/String;>(TT;)TT;",
+ null);
+ mv.visitParameter(null, 0); // skip synthetic parameters
+ mv.visitParameter("<no name>", Opcodes.ACC_SYNTHETIC); // skip synthetic parameters
+ mv.visitParameter("parameterName", 42);
cw.visitMethod(
Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC,
"g",
@@ -92,6 +97,9 @@ public class ClassReaderTest {
assertThat(f.annotations()).isEmpty();
assertThat(f.parameterAnnotations()).isEmpty();
assertThat(f.defaultValue()).isNull();
+ assertThat(f.parameters()).hasSize(1);
+ assertThat(f.parameters().get(0).name()).isEqualTo("parameterName");
+ assertThat(f.parameters().get(0).access()).isEqualTo(42);
ClassFile.MethodInfo g = classFile.methods().get(1);
assertThat(g.access()).isEqualTo(TurbineFlag.ACC_PUBLIC | TurbineFlag.ACC_STATIC);
diff --git a/javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java b/javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java
index 8602fe5..58c0eff 100644
--- a/javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java
+++ b/javatests/com/google/turbine/bytecode/sig/SigIntegrationTest.java
@@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Streams;
+import org.objectweb.asm.Opcodes;
import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
@@ -44,7 +45,6 @@ import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
/**
* Reads all field, class, and method signatures in the bootclasspath, and round-trips them through
diff --git a/javatests/com/google/turbine/deps/DependenciesTest.java b/javatests/com/google/turbine/deps/DependenciesTest.java
index ba905db..2164a9f 100644
--- a/javatests/com/google/turbine/deps/DependenciesTest.java
+++ b/javatests/com/google/turbine/deps/DependenciesTest.java
@@ -29,7 +29,6 @@ import com.google.turbine.diag.SourceFile;
import com.google.turbine.lower.IntegrationTestSupport;
import com.google.turbine.lower.Lower;
import com.google.turbine.lower.Lower.Lowered;
-import com.google.turbine.options.LanguageVersion;
import com.google.turbine.parse.Parser;
import com.google.turbine.proto.DepsProto;
import com.google.turbine.testing.TestClassPaths;
@@ -105,11 +104,11 @@ public class DependenciesTest {
units.build(),
ClassPathBinder.bindClasspath(classpath),
TestClassPaths.TURBINE_BOOTCLASSPATH,
- /* moduleVersion=*/ Optional.empty());
+ /* moduleVersion= */ Optional.empty());
Lowered lowered =
Lower.lowerAll(
- LanguageVersion.createDefault(),
+ Lower.LowerOptions.createDefault(),
bound.units(),
bound.modules(),
bound.classPathEnv());
diff --git a/javatests/com/google/turbine/lower/IntegrationTestSupport.java b/javatests/com/google/turbine/lower/IntegrationTestSupport.java
index f20962b..6527a03 100644
--- a/javatests/com/google/turbine/lower/IntegrationTestSupport.java
+++ b/javatests/com/google/turbine/lower/IntegrationTestSupport.java
@@ -33,6 +33,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.io.MoreFiles;
import com.google.common.jimfs.Configuration;
import com.google.common.jimfs.Jimfs;
+import org.objectweb.asm.Opcodes;
import com.google.turbine.binder.Binder;
import com.google.turbine.binder.Binder.BindingResult;
import com.google.turbine.binder.ClassPath;
@@ -496,7 +497,9 @@ public final class IntegrationTestSupport {
throws IOException {
BindingResult bound = turbineAnalysis(input, classpath, bootClassPath, moduleVersion);
return Lower.lowerAll(
- LanguageVersion.fromJavacopts(javacopts),
+ Lower.LowerOptions.builder()
+ .languageVersion(LanguageVersion.fromJavacopts(javacopts))
+ .build(),
bound.units(),
bound.modules(),
bound.classPathEnv())
diff --git a/javatests/com/google/turbine/lower/LongStringIntegrationTest.java b/javatests/com/google/turbine/lower/LongStringIntegrationTest.java
index 7bb61e5..33deaee 100644
--- a/javatests/com/google/turbine/lower/LongStringIntegrationTest.java
+++ b/javatests/com/google/turbine/lower/LongStringIntegrationTest.java
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import org.objectweb.asm.Opcodes;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Path;
@@ -33,7 +34,6 @@ import org.junit.runners.JUnit4;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
@RunWith(JUnit4.class)
public class LongStringIntegrationTest {
diff --git a/javatests/com/google/turbine/lower/LowerIntegrationTest.java b/javatests/com/google/turbine/lower/LowerIntegrationTest.java
index 94f1d07..6c95d44 100644
--- a/javatests/com/google/turbine/lower/LowerIntegrationTest.java
+++ b/javatests/com/google/turbine/lower/LowerIntegrationTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assume.assumeTrue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import java.io.IOError;
import java.io.IOException;
@@ -47,6 +48,8 @@ public class LowerIntegrationTest {
ImmutableMap.of(
"record.test", 16, //
"record2.test", 16,
+ "record_tostring.test", 16,
+ "record_ctor.test", 16,
"sealed.test", 17,
"sealed_nested.test", 17,
"textblock.test", 15);
@@ -269,9 +272,12 @@ public class LowerIntegrationTest {
"receiver_param.test",
"record.test",
"record2.test",
+ "record_ctor.test",
+ "record_tostring.test",
"rek.test",
"samepkg.test",
"sealed.test",
+ "sealed_nested.test",
"self.test",
"semi.test",
// https://bugs.openjdk.java.net/browse/JDK-8054064 ?
@@ -333,8 +339,9 @@ public class LowerIntegrationTest {
"wildcanon.test",
// keep-sorted end
};
- List<Object[]> tests =
- ImmutableList.copyOf(testCases).stream().map(x -> new Object[] {x}).collect(toList());
+ ImmutableSet<String> cases = ImmutableSet.copyOf(testCases);
+ assertThat(cases).containsAtLeastElementsIn(SOURCE_VERSION.keySet());
+ List<Object[]> tests = cases.stream().map(x -> new Object[] {x}).collect(toList());
String testShardIndex = System.getenv("TEST_SHARD_INDEX");
String testTotalShards = System.getenv("TEST_TOTAL_SHARDS");
if (testShardIndex == null || testTotalShards == null) {
@@ -384,7 +391,12 @@ public class LowerIntegrationTest {
int version = SOURCE_VERSION.getOrDefault(test, 8);
assumeTrue(version <= Runtime.version().feature());
ImmutableList<String> javacopts =
- ImmutableList.of("-source", String.valueOf(version), "-target", String.valueOf(version));
+ ImmutableList.of(
+ "-source",
+ String.valueOf(version),
+ "-target",
+ String.valueOf(version),
+ "-Xpkginfo:always");
Map<String, byte[]> expected =
IntegrationTestSupport.runJavac(input.sources, classpathJar, javacopts);
diff --git a/javatests/com/google/turbine/lower/LowerTest.java b/javatests/com/google/turbine/lower/LowerTest.java
index a6410db..2de4650 100644
--- a/javatests/com/google/turbine/lower/LowerTest.java
+++ b/javatests/com/google/turbine/lower/LowerTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertThrows;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import org.objectweb.asm.Opcodes;
import com.google.turbine.binder.Binder;
import com.google.turbine.binder.Binder.BindingResult;
import com.google.turbine.binder.ClassPathBinder;
@@ -232,7 +233,7 @@ public class LowerTest {
Map<String, byte[]> bytes =
Lower.lowerAll(
- LanguageVersion.createDefault(),
+ Lower.LowerOptions.createDefault(),
ImmutableMap.of(
new ClassSymbol("test/Test"), c, new ClassSymbol("test/Test$Inner"), i),
ImmutableList.of(),
@@ -260,10 +261,10 @@ public class LowerTest {
"}"))),
ClassPathBinder.bindClasspath(ImmutableList.of()),
TURBINE_BOOTCLASSPATH,
- /* moduleVersion=*/ Optional.empty());
+ /* moduleVersion= */ Optional.empty());
Map<String, byte[]> lowered =
Lower.lowerAll(
- LanguageVersion.createDefault(),
+ Lower.LowerOptions.createDefault(),
bound.units(),
bound.modules(),
bound.classPathEnv())
@@ -340,10 +341,10 @@ public class LowerTest {
"}"))),
ClassPathBinder.bindClasspath(ImmutableList.of()),
TURBINE_BOOTCLASSPATH,
- /* moduleVersion=*/ Optional.empty());
+ /* moduleVersion= */ Optional.empty());
Map<String, byte[]> lowered =
Lower.lowerAll(
- LanguageVersion.createDefault(),
+ Lower.LowerOptions.createDefault(),
bound.units(),
bound.modules(),
bound.classPathEnv())
@@ -423,10 +424,10 @@ public class LowerTest {
ImmutableList.of(Parser.parse("@Deprecated class Test {}")),
ClassPathBinder.bindClasspath(ImmutableList.of()),
TURBINE_BOOTCLASSPATH,
- /* moduleVersion=*/ Optional.empty());
+ /* moduleVersion= */ Optional.empty());
Map<String, byte[]> lowered =
Lower.lowerAll(
- LanguageVersion.createDefault(),
+ Lower.LowerOptions.createDefault(),
bound.units(),
bound.modules(),
bound.classPathEnv())
@@ -544,7 +545,7 @@ public class LowerTest {
.put(
"Test.java",
lines(
- "public class Test extends B.BM {", //
+ "public class Test implements B.BM {", //
" I i;",
"}"))
.build();
@@ -649,10 +650,14 @@ public class LowerTest {
ImmutableList.of(Parser.parse("class Test {}")),
ClassPathBinder.bindClasspath(ImmutableList.of()),
TURBINE_BOOTCLASSPATH,
- /* moduleVersion=*/ Optional.empty());
+ /* moduleVersion= */ Optional.empty());
Map<String, byte[]> lowered =
Lower.lowerAll(
- LanguageVersion.fromJavacopts(ImmutableList.of("-source", "7", "-target", "7")),
+ Lower.LowerOptions.builder()
+ .languageVersion(
+ LanguageVersion.fromJavacopts(
+ ImmutableList.of("-source", "7", "-target", "7")))
+ .build(),
bound.units(),
bound.modules(),
bound.classPathEnv())
@@ -676,6 +681,76 @@ public class LowerTest {
assertThat(major[0]).isEqualTo(Opcodes.V1_8);
}
+ @Test
+ public void privateFields() throws Exception {
+ BindingResult bound =
+ Binder.bind(
+ ImmutableList.of(
+ Parser.parse(
+ "class Test {\n" //
+ + " private int x;\n"
+ + " int y;\n"
+ + "}")),
+ ClassPathBinder.bindClasspath(ImmutableList.of()),
+ TURBINE_BOOTCLASSPATH,
+ /* moduleVersion= */ Optional.empty());
+ ImmutableMap<String, byte[]> lowered =
+ Lower.lowerAll(
+ Lower.LowerOptions.builder().emitPrivateFields(true).build(),
+ bound.units(),
+ bound.modules(),
+ bound.classPathEnv())
+ .bytes();
+ List<String> fields = new ArrayList<>();
+ new ClassReader(lowered.get("Test"))
+ .accept(
+ new ClassVisitor(Opcodes.ASM9) {
+ @Override
+ public FieldVisitor visitField(
+ int access, String name, String descriptor, String signature, Object value) {
+ fields.add(name);
+ return null;
+ }
+ },
+ 0);
+ assertThat(fields).containsExactly("x", "y");
+ }
+
+ @Test
+ public void noPrivateFields() throws Exception {
+ BindingResult bound =
+ Binder.bind(
+ ImmutableList.of(
+ Parser.parse(
+ "class Test {\n" //
+ + " private int x;\n"
+ + " int y;\n"
+ + "}")),
+ ClassPathBinder.bindClasspath(ImmutableList.of()),
+ TURBINE_BOOTCLASSPATH,
+ /* moduleVersion= */ Optional.empty());
+ ImmutableMap<String, byte[]> lowered =
+ Lower.lowerAll(
+ Lower.LowerOptions.createDefault(),
+ bound.units(),
+ bound.modules(),
+ bound.classPathEnv())
+ .bytes();
+ List<String> fields = new ArrayList<>();
+ new ClassReader(lowered.get("Test"))
+ .accept(
+ new ClassVisitor(Opcodes.ASM9) {
+ @Override
+ public FieldVisitor visitField(
+ int access, String name, String descriptor, String signature, Object value) {
+ fields.add(name);
+ return null;
+ }
+ },
+ 0);
+ assertThat(fields).containsExactly("y");
+ }
+
static String lines(String... lines) {
return Joiner.on(System.lineSeparator()).join(lines);
}
diff --git a/javatests/com/google/turbine/lower/testdata/package_info.test b/javatests/com/google/turbine/lower/testdata/package_info.test
index a2416a4..6b0fc32 100644
--- a/javatests/com/google/turbine/lower/testdata/package_info.test
+++ b/javatests/com/google/turbine/lower/testdata/package_info.test
@@ -10,3 +10,5 @@ package p;
package p;
class Test {}
+=== Empty.java ===
+package p; \ No newline at end of file
diff --git a/javatests/com/google/turbine/lower/testdata/record_ctor.test b/javatests/com/google/turbine/lower/testdata/record_ctor.test
new file mode 100644
index 0000000..a3adc15
--- /dev/null
+++ b/javatests/com/google/turbine/lower/testdata/record_ctor.test
@@ -0,0 +1,52 @@
+=== Records.java ===
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+public class Records {
+ public record A(String value) {
+
+ void one() {}
+
+ public A(String a, String b) {
+ this(a + ", " + b);
+ }
+
+ void two() {}
+ }
+
+ @Target(ElementType.TYPE_USE)
+ @interface N {}
+
+ public record B(String value) {
+
+ void one() {}
+
+ public B(@N String value) {
+ this.value = value;
+ }
+
+ void two() {}
+
+ public B(String a, String b) {
+ this(a + ", " + b);
+ }
+
+ void three() {}
+ }
+
+ class Inner {}
+
+ public record C(Records.Inner value) {
+
+ public C(Records. @N Inner value) {
+ this.value = value;
+ }
+ }
+
+ public record D<T>(T value) {
+
+ public D(T value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/javatests/com/google/turbine/lower/testdata/record_tostring.test b/javatests/com/google/turbine/lower/testdata/record_tostring.test
new file mode 100644
index 0000000..f93187a
--- /dev/null
+++ b/javatests/com/google/turbine/lower/testdata/record_tostring.test
@@ -0,0 +1,35 @@
+=== Records.java ===
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+import java.util.Objects;
+
+class Records {
+ public record A() {
+ @Override
+ public String toString() {
+ return "A";
+ }
+ }
+
+ public record B() {
+ @Override
+ public final String toString() {
+ return "B";
+ }
+ }
+
+ public record C() {
+ @Override
+ public final boolean equals(Object o) {
+ return false;
+ }
+ }
+
+ public record D() {
+ @Override
+ public final int hashCode() {
+ return -1;
+ }
+ }
+} \ No newline at end of file
diff --git a/javatests/com/google/turbine/main/MainTest.java b/javatests/com/google/turbine/main/MainTest.java
index c894d9d..f65e6c0 100644
--- a/javatests/com/google/turbine/main/MainTest.java
+++ b/javatests/com/google/turbine/main/MainTest.java
@@ -106,7 +106,7 @@ public class MainTest {
@Test
public void packageInfo() throws IOException {
- Path src = temporaryFolder.newFile("package-info.jar").toPath();
+ Path src = temporaryFolder.newFile("package-info.java").toPath();
MoreFiles.asCharSink(src, UTF_8).write("@Deprecated package test;");
Path output = temporaryFolder.newFile("output.jar").toPath();
@@ -467,7 +467,7 @@ public class MainTest {
@Test
public void classGeneration() throws IOException {
- Path src = temporaryFolder.newFile("package-info.jar").toPath();
+ Path src = temporaryFolder.newFile("package-info.java").toPath();
MoreFiles.asCharSink(src, UTF_8).write("@Deprecated package test;");
File resources = temporaryFolder.newFile("resources.jar");
Main.compile(
diff --git a/javatests/com/google/turbine/parse/LexerTest.java b/javatests/com/google/turbine/parse/LexerTest.java
index bf0b374..6a6fe1c 100644
--- a/javatests/com/google/turbine/parse/LexerTest.java
+++ b/javatests/com/google/turbine/parse/LexerTest.java
@@ -339,6 +339,11 @@ public class LexerTest {
lexerComparisonTest("import pkg\uD800\uDC00.test;");
}
+ @Test
+ public void javadocUnicodeEscape() {
+ lexerComparisonTest("class {/***/\\u007D;");
+ }
+
private void lexerComparisonTest(String s) {
assertThat(lex(s)).containsExactlyElementsIn(JavacLexer.javacLex(s));
}
@@ -349,6 +354,8 @@ public class LexerTest {
Token token;
do {
token = lexer.next();
+ // Just check that javadoc handling doesn't crash
+ String unused = lexer.javadoc();
String tokenString;
switch (token) {
case IDENT:
diff --git a/javatests/com/google/turbine/parse/ParserIntegrationTest.java b/javatests/com/google/turbine/parse/ParserIntegrationTest.java
index c758a74..0981815 100644
--- a/javatests/com/google/turbine/parse/ParserIntegrationTest.java
+++ b/javatests/com/google/turbine/parse/ParserIntegrationTest.java
@@ -20,15 +20,12 @@ import static com.google.common.base.Verify.verifyNotNull;
import static com.google.common.truth.Truth.assertThat;
import static java.nio.charset.StandardCharsets.UTF_8;
-import com.google.common.base.Function;
import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
import com.google.common.io.CharStreams;
import com.google.turbine.tree.Tree;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,8 +36,8 @@ import org.junit.runners.Parameterized.Parameters;
public class ParserIntegrationTest {
@Parameters(name = "{index}: {0}")
- public static Iterable<Object[]> parameters() {
- String[] tests = {
+ public static String[] parameters() {
+ return new String[] {
"anno1.input",
"anno2.input",
"annodecl1.input",
@@ -79,14 +76,6 @@ public class ParserIntegrationTest {
"record.input",
"sealed.input",
};
- return Iterables.transform(
- Arrays.asList(tests),
- new Function<String, Object[]>() {
- @Override
- public Object[] apply(String input) {
- return new Object[] {input};
- }
- });
}
final String input;
diff --git a/javatests/com/google/turbine/processing/TurbineElementsGetAllMembersTest.java b/javatests/com/google/turbine/processing/TurbineElementsGetAllMembersTest.java
index 11dedbf..bc6d9e6 100644
--- a/javatests/com/google/turbine/processing/TurbineElementsGetAllMembersTest.java
+++ b/javatests/com/google/turbine/processing/TurbineElementsGetAllMembersTest.java
@@ -77,17 +77,17 @@ public class TurbineElementsGetAllMembersTest {
},
{
"=== I.java ===",
- "abstract class I {",
- " abstract Integer f();",
+ "interface I {",
+ " default Integer f() {}",
"}",
"=== J.java ===",
- "interface J extends I {",
- " default Integer f() {",
+ "class J implements I {",
+ " Integer f() {",
" return 42;",
" }",
"}",
"=== Test.java ===", //
- "class Test extends I implements J {",
+ "class Test extends J implements I {",
"}",
},
{
diff --git a/javatests/com/google/turbine/processing/TurbineFilerTest.java b/javatests/com/google/turbine/processing/TurbineFilerTest.java
index 96c325b..f76a08d 100644
--- a/javatests/com/google/turbine/processing/TurbineFilerTest.java
+++ b/javatests/com/google/turbine/processing/TurbineFilerTest.java
@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.Assert.assertThrows;
-import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.io.CharStreams;
import com.google.turbine.diag.SourceFile;
@@ -34,6 +33,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.function.Function;
import javax.annotation.processing.FilerException;
import javax.lang.model.element.Element;
import javax.tools.FileObject;