aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2016-09-22 00:46:52 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2016-09-22 09:57:05 +0000
commitba80dfd9bb2aee3f45201f3d4e6c7a1b6dc4f228 (patch)
tree617d714c7ff6226abd720d0f17e547b93abb778b /src/java_tools
parent8afb99be1b8fc6e5f4d7e794c04e73f132548074 (diff)
Drop bridge methods in turbine
-- MOS_MIGRATED_REVID=133899664
Diffstat (limited to 'src/java_tools')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java4
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java35
2 files changed, 39 insertions, 0 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
index e47a21d342..ef2ec5a868 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac/JavacTurbine.java
@@ -312,6 +312,10 @@ public class JavacTurbine implements AutoCloseable {
// drop class initializers, which are going to be empty after tree pruning
return null;
}
+ if ((access & (Opcodes.ACC_SYNTHETIC | Opcodes.ACC_BRIDGE)) != 0) {
+ // drop bridges (see b/31653210)
+ return null;
+ }
return super.visitMethod(access, name, desc, signature, exceptions);
}
}
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
index fa63e08736..76454ae476 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
@@ -1263,4 +1263,39 @@ public class JavacTurbineTest {
};
assertThat(text).isEqualTo(Joiner.on('\n').join(expected));
}
+
+ @Test
+ public void bridge() throws Exception {
+ addSourceLines(
+ "Bridge.java",
+ "import java.util.concurrent.Callable;",
+ "class Bridge implements Callable<String> {",
+ " public String call() { return \"\"; }",
+ "}");
+
+ compile();
+
+ Map<String, byte[]> outputs = collectOutputs();
+
+ assertThat(outputs.keySet()).containsExactly("Bridge.class");
+
+ String text = textify(outputs.get("Bridge.class"));
+ String[] expected = {
+ "// class version 52.0 (52)",
+ "// access flags 0x20",
+ "// signature Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/String;>;",
+ "// declaration: Bridge implements java.util.concurrent.Callable<java.lang.String>",
+ "class Bridge implements java/util/concurrent/Callable {",
+ "",
+ "",
+ " // access flags 0x0",
+ " <init>()V",
+ "",
+ " // access flags 0x1",
+ " public call()Ljava/lang/String;",
+ "}",
+ ""
+ };
+ assertThat(text).isEqualTo(Joiner.on('\n').join(expected));
+ }
}