diff options
author | Christian Stein <sormuras@gmail.com> | 2016-07-24 11:53:53 +0200 |
---|---|---|
committer | Christian Stein <sormuras@gmail.com> | 2016-07-24 13:17:49 +0200 |
commit | fdaefdb063880bd83774999b99b3ac910f6ead28 (patch) | |
tree | 5190a7d67663cbcd47338ef802845e05e5877e87 /src | |
parent | 932695e9f03df31c7ec95c200c5a3d8fd7a0bc28 (diff) | |
download | javapoet-fdaefdb063880bd83774999b99b3ac910f6ead28.tar.gz |
Remove DEFAULT modifier from overridden method. #480
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/squareup/javapoet/MethodSpec.java | 1 | ||||
-rw-r--r-- | src/test/java/com/squareup/javapoet/MethodSpecTest.java | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/com/squareup/javapoet/MethodSpec.java b/src/main/java/com/squareup/javapoet/MethodSpec.java index 1aa147f..ac3cff3 100644 --- a/src/main/java/com/squareup/javapoet/MethodSpec.java +++ b/src/main/java/com/squareup/javapoet/MethodSpec.java @@ -207,6 +207,7 @@ public final class MethodSpec { modifiers = new LinkedHashSet<>(modifiers); modifiers.remove(Modifier.ABSTRACT); + modifiers.remove(Util.DEFAULT); // LinkedHashSet permits null as element for Java 7 methodBuilder.addModifiers(modifiers); for (TypeParameterElement typeParameterElement : method.getTypeParameters()) { diff --git a/src/test/java/com/squareup/javapoet/MethodSpecTest.java b/src/test/java/com/squareup/javapoet/MethodSpecTest.java index 2a6cbb2..e194e2b 100644 --- a/src/test/java/com/squareup/javapoet/MethodSpecTest.java +++ b/src/test/java/com/squareup/javapoet/MethodSpecTest.java @@ -39,6 +39,7 @@ import org.junit.Test; import static com.google.common.collect.Iterables.getOnlyElement; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.TruthJUnit.assume; import static javax.lang.model.util.ElementFilter.methodsIn; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; @@ -119,6 +120,9 @@ public final class MethodSpecTest { interface ExtendsOthers extends Callable<Integer>, Comparable<Long> { } + + interface ExtendsIterableWithDefaultMethods extends Iterable<Object> { + } @Test public void overrideEverything() { TypeElement classElement = getElement(Everything.class); @@ -145,6 +149,20 @@ public final class MethodSpecTest { + "}\n"); } + @Test public void overrideDoesNotCopyDefaultModifier() { + TypeElement classElement = getElement(ExtendsIterableWithDefaultMethods.class); + DeclaredType classType = (DeclaredType) classElement.asType(); + List<ExecutableElement> methods = methodsIn(elements.getAllMembers(classElement)); + ExecutableElement exec = findFirst(methods, "iterator"); + assume().that(Util.DEFAULT).isNotNull(); + exec = findFirst(methods, "spliterator"); + MethodSpec method = MethodSpec.overriding(exec, classType, types).build(); + assertThat(method.toString()).isEqualTo("" + + "@java.lang.Override\n" + + "public java.util.Spliterator<java.lang.Object> spliterator() {\n" + + "}\n"); + } + @Test public void overrideExtendsOthersWorksWithActualTypeParameters() { TypeElement classElement = getElement(ExtendsOthers.class); DeclaredType classType = (DeclaredType) classElement.asType(); |