diff options
author | Adam Lesinski <adamlesinski@google.com> | 2018-01-23 01:11:54 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2018-01-23 13:15:37 -0800 |
commit | 8f5b83f65ffe255755f7fe604f0e9fc473bbbe38 (patch) | |
tree | 6a973caeed30fa622724915efe348c93145eb10d | |
parent | b5c67c17c5d2e6436a37ed66ccc1a26c28c9807f (diff) | |
download | platform_external_doclava-8f5b83f65ffe255755f7fe604f0e9fc473bbbe38.tar.gz platform_external_doclava-8f5b83f65ffe255755f7fe604f0e9fc473bbbe38.tar.bz2 platform_external_doclava-8f5b83f65ffe255755f7fe604f0e9fc473bbbe38.zip |
Reduce 'final' method churn when class is 'final'
Final classes cannot be overridden, making each method
effectively final. Removal or addition of 'final' identifiers
shouldn't affect the api file.
Test: manual
Change-Id: Icce1d75ed535a40147ebe5e75a41c63b8e6f8ad4
-rw-r--r-- | src/com/google/doclava/Converter.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/com/google/doclava/Converter.java b/src/com/google/doclava/Converter.java index 269c860..a6f803b 100644 --- a/src/com/google/doclava/Converter.java +++ b/src/com/google/doclava/Converter.java @@ -474,15 +474,20 @@ public class Converter { return result; } else if (o instanceof MethodDoc) { MethodDoc m = (MethodDoc) o; + final ClassInfo containingClass = Converter.obtainClass(m.containingClass()); + + // The containing class is final, so it is implied that every method is final as well. + // No need to apply 'final' to each method. + final boolean isMethodFinal = m.isFinal() && !containingClass.isFinal(); MethodInfo result = new MethodInfo(m.getRawCommentText(), new ArrayList<TypeInfo>(Arrays.asList( Converter.convertTypes(m.typeParameters()))), m.name(), m.signature(), - Converter.obtainClass(m.containingClass()), - Converter.obtainClass(m.containingClass()), m.isPublic(), m.isProtected(), - m.isPackagePrivate(), m.isPrivate(), m.isFinal(), m.isStatic(), m.isSynthetic(), - m.isAbstract(), m.isSynchronized(), m.isNative(), m.isDefault(), false, - "method", m.flatSignature(), Converter.obtainMethod(m.overriddenMethod()), + containingClass, containingClass, m.isPublic(), m.isProtected(), + m.isPackagePrivate(), m.isPrivate(), isMethodFinal, m.isStatic(), + m.isSynthetic(), m.isAbstract(), m.isSynchronized(), m.isNative(), + m.isDefault(), false, "method", m.flatSignature(), + Converter.obtainMethod(m.overriddenMethod()), Converter.obtainType(m.returnType()), new ArrayList<ParameterInfo>(Arrays.asList( Converter.convertParameters(m.parameters(), m))), |