Don't set ACC_ABSTRACT on static interface methods
MOE_MIGRATED_REVID=137059412
diff --git a/java/com/google/turbine/binder/TypeBinder.java b/java/com/google/turbine/binder/TypeBinder.java
index 5ba0fb4..ac08562 100644
--- a/java/com/google/turbine/binder/TypeBinder.java
+++ b/java/com/google/turbine/binder/TypeBinder.java
@@ -428,7 +428,9 @@
case INTERFACE:
case ANNOTATION:
access |= TurbineFlag.ACC_PUBLIC;
- if ((access & (TurbineFlag.ACC_DEFAULT | TurbineFlag.ACC_SYNTHETIC)) == 0) {
+ if ((access
+ & (TurbineFlag.ACC_DEFAULT | TurbineFlag.ACC_STATIC | TurbineFlag.ACC_SYNTHETIC))
+ == 0) {
access |= TurbineFlag.ACC_ABSTRACT;
}
break;
diff --git a/javatests/com/google/turbine/lower/LowerIntegrationTest.java b/javatests/com/google/turbine/lower/LowerIntegrationTest.java
index 712f96b..0222688 100644
--- a/javatests/com/google/turbine/lower/LowerIntegrationTest.java
+++ b/javatests/com/google/turbine/lower/LowerIntegrationTest.java
@@ -223,6 +223,7 @@
"bounds.test",
"cast_tail.test",
"marker.test",
+ "interface_method.test",
};
List<Object[]> tests =
ImmutableList.copyOf(testCases).stream().map(x -> new Object[] {x}).collect(toList());
diff --git a/javatests/com/google/turbine/lower/testdata/interface_method.test b/javatests/com/google/turbine/lower/testdata/interface_method.test
new file mode 100644
index 0000000..8f13882
--- /dev/null
+++ b/javatests/com/google/turbine/lower/testdata/interface_method.test
@@ -0,0 +1,7 @@
+=== Test.java ===
+interface Test {
+ static void f() {}
+ void g();
+ default void h() {}
+}
+