From defbde19d83692a5beb4ee24d87bce8da3131ff3 Mon Sep 17 00:00:00 2001 From: liach Date: Thu, 13 May 2021 20:58:47 -0500 Subject: [PATCH] Fix redundant public modifier for inner classes, migrate to modern java Signed-off-by: liach --- .../filament/mappingpoet/ClassBuilder.java | 13 ++++++------ .../fabricmc/filament/mappingpoet/Main.java | 2 +- .../filament/mappingpoet/MethodBuilder.java | 10 +++++----- .../mappingpoet/signature/ClassSignature.java | 11 ++-------- .../signature/ClassStaticContext.java | 2 +- .../signature/MethodSignature.java | 14 +++---------- .../signature/PoetTypeSignatureWriter.java | 20 ++++++------------- 7 files changed, 25 insertions(+), 47 deletions(-) diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/ClassBuilder.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/ClassBuilder.java index a4c13ff3e1..b687abf96f 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/ClassBuilder.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/ClassBuilder.java @@ -146,15 +146,15 @@ public class ClassBuilder { builder = TypeSpec.enumBuilder(name); } else { builder = TypeSpec.classBuilder(name) - .superclass(signature.superclass); + .superclass(signature.superclass()); } - if (!signature.generics.isEmpty()) { - builder.addTypeVariables(signature.generics); + if (!signature.generics().isEmpty()) { + builder.addTypeVariables(signature.generics()); StringBuilder sb = new StringBuilder(); sb.append(classNode.name); sb.append("<"); - for (TypeVariableName each : signature.generics) { + for (TypeVariableName each : signature.generics()) { sb.append("T").append(each.name).append(";"); } sb.append(">"); @@ -170,7 +170,7 @@ public class ClassBuilder { return; } if (signature != null) { - builder.addSuperinterfaces(signature.superinterfaces); + builder.addSuperinterfaces(signature.superinterfaces()); return; } if (classNode.interfaces.isEmpty()) return; @@ -284,6 +284,7 @@ public class ClassBuilder { classBuilder.builder.addModifiers(javax.lang.model.element.Modifier.PUBLIC); classBuilder.builder.addModifiers(javax.lang.model.element.Modifier.STATIC); } else { + classBuilder.builder.modifiers.remove(javax.lang.model.element.Modifier.PUBLIC); // this modifier may come from class access classBuilder.builder.addModifiers(new ModifierBuilder(innerClassNode.access).getModifiers(classBuilder.enumClass ? ModifierBuilder.Type.ENUM : ModifierBuilder.Type.CLASS)); if (!Modifier.isStatic(innerClassNode.access)) { classBuilder.instanceInner = true; @@ -295,7 +296,7 @@ public class ClassBuilder { sb.append(this.receiverSignature).append("."); // like O. for O sb.append(innerClassNode.innerName); // append simple name - List innerClassGenerics = classBuilder.signature.generics; + List innerClassGenerics = classBuilder.signature.generics(); if (!innerClassGenerics.isEmpty()) { sb.append("<"); for (TypeVariableName each : innerClassGenerics) { diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/Main.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/Main.java index 4663c74d8f..d07c56b2ff 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/Main.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/Main.java @@ -166,7 +166,7 @@ public class Main { private static void scanInnerClasses(Map instanceInnerClasses, Path librariesDir) { try { - Files.walkFileTree(librariesDir, new SimpleFileVisitor() { + Files.walkFileTree(librariesDir, new SimpleFileVisitor<>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (!file.getFileName().toString().endsWith(".jar")) { diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/MethodBuilder.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/MethodBuilder.java index 4ab40f9b79..8c3b1812b7 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/MethodBuilder.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/MethodBuilder.java @@ -159,7 +159,7 @@ public class MethodBuilder { if (methodNode.signature != null) { signature = AnnotationAwareSignatures.parseMethodSignature(methodNode.signature, typeAnnotations, context); - builder.addTypeVariables(signature.generics); + builder.addTypeVariables(signature.generics()); } return builder; @@ -187,7 +187,7 @@ public class MethodBuilder { TypeName typeName; if (signature != null) { - typeName = signature.result; + typeName = signature.result(); } else { String returnDesc = methodNode.desc.substring(methodNode.desc.lastIndexOf(")") + 1); typeName = AnnotationAwareDescriptors.parseDesc(returnDesc, typeAnnotations.getBank(TypeReference.newTypeReference(TypeReference.METHOD_RETURN)), context); @@ -257,7 +257,7 @@ public class MethodBuilder { } index++; // consume '(' - Iterator signatureParamIterator = signature == null ? Collections.emptyIterator() : signature.parameters.iterator(); + Iterator signatureParamIterator = signature == null ? Collections.emptyIterator() : signature.parameters().iterator(); while (desc.charAt(index) != ')') { int oldIndex = index; Map.Entry parsedParam = FieldBuilder.parseType(desc, index); @@ -288,8 +288,8 @@ public class MethodBuilder { } private void addExceptions() { - if (signature != null && !signature.thrown.isEmpty()) { - for (TypeName each : signature.thrown) { + if (signature != null && !signature.thrown().isEmpty()) { + for (TypeName each : signature.thrown()) { builder.addException(each); } return; diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassSignature.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassSignature.java index e3b5df5e79..11b0004ffe 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassSignature.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassSignature.java @@ -22,14 +22,7 @@ import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeVariableName; // no more a class signature but general super info about class -public final class ClassSignature { - public final List generics; - public final TypeName superclass; - public final List superinterfaces; +public record ClassSignature(List generics, TypeName superclass, + List superinterfaces) { - public ClassSignature(List generics, TypeName superclass, List superinterfaces) { - this.generics = generics; - this.superclass = superclass; - this.superinterfaces = superinterfaces; - } } diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassStaticContext.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassStaticContext.java index 1ba5c49f85..c1933e5b72 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassStaticContext.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/ClassStaticContext.java @@ -27,7 +27,7 @@ public interface ClassStaticContext { /** * Returns if this class is an instance inner class. * - *

For example, a top-level class is not so. A static inner + *

For example, a top-level class is not so. A static nested * class, such as {@code Map.Entry}, is not as well.

* * @param internalName the JVM name of the class diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/MethodSignature.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/MethodSignature.java index 20cfe160d1..69762419c3 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/MethodSignature.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/MethodSignature.java @@ -21,16 +21,8 @@ import java.util.List; import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeVariableName; -public final class MethodSignature { - public final List generics; - public final List parameters; - public final TypeName result; - public final List thrown; +public record MethodSignature(List generics, + List parameters, TypeName result, + List thrown) { - public MethodSignature(List generics, List parameters, TypeName result, List thrown) { - this.generics = generics; - this.parameters = parameters; - this.result = result; - this.thrown = thrown; - } } diff --git a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/PoetTypeSignatureWriter.java b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/PoetTypeSignatureWriter.java index bf5014fc69..1d36b731e2 100644 --- a/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/PoetTypeSignatureWriter.java +++ b/filament/src/main/java/net/fabricmc/filament/mappingpoet/signature/PoetTypeSignatureWriter.java @@ -150,20 +150,12 @@ public final class PoetTypeSignatureWriter extends SignatureVisitor { private void collectLastTypeArgument() { if (activeTypeArgument != null) { TypeName hold = activeTypeArgument.compute(); - TypeName used; - switch (activeTypeArgumentKind) { - case SignatureVisitor.EXTENDS: - used = WildcardTypeName.subtypeOf(hold); - break; - case SignatureVisitor.SUPER: - used = WildcardTypeName.supertypeOf(hold); - break; - case SignatureVisitor.INSTANCEOF: - used = hold; - break; - default: - throw new IllegalStateException(String.format("Illegal type argument wildcard %s", activeTypeArgumentKind)); - } + TypeName used = switch (activeTypeArgumentKind) { + case SignatureVisitor.EXTENDS -> WildcardTypeName.subtypeOf(hold); + case SignatureVisitor.SUPER -> WildcardTypeName.supertypeOf(hold); + case SignatureVisitor.INSTANCEOF -> hold; + default -> throw new IllegalStateException(String.format("Illegal type argument wildcard %s", activeTypeArgumentKind)); + }; used = AnnotationAwareDescriptors.annotate(used, storage.advance(TypePath.TYPE_ARGUMENT, params.size())); params.addLast(used);