From b0f73c1c831dc8e6fa4d03cf0b6bd4b538a1e317 Mon Sep 17 00:00:00 2001 From: Angelos Bimpoudis Date: Tue, 13 Jun 2023 12:43:10 +0200 Subject: [PATCH] Fixes after merger --- src/java.base/share/classes/java/lang/runtime/Carriers.java | 2 +- .../share/classes/com/sun/tools/javac/code/Symbol.java | 6 +++++- .../share/classes/com/sun/tools/javac/code/Symtab.java | 2 +- .../classes/com/sun/tools/javac/comp/TransPatterns.java | 5 ++--- .../share/classes/com/sun/tools/javac/jvm/ClassWriter.java | 4 ++-- .../annotations/classfile/ClassfileInspector.java | 3 +++ .../tools/javac/MethodParameters/AttributeVisitor.java | 1 + test/langtools/tools/javac/patterns/Point.java | 2 -- test/langtools/tools/javac/patterns/Points.java | 2 -- 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/java.base/share/classes/java/lang/runtime/Carriers.java b/src/java.base/share/classes/java/lang/runtime/Carriers.java index f16dc379e95d9..7b571403c1579 100644 --- a/src/java.base/share/classes/java/lang/runtime/Carriers.java +++ b/src/java.base/share/classes/java/lang/runtime/Carriers.java @@ -84,7 +84,7 @@ * Warning: This class is part of PreviewFeature.Feature.STRING_TEMPLATES. * Do not rely on its availability. */ -final class Carriers { +public final class Carriers { /** * Maximum number of components in a carrier (based on the maximum * number of args to a constructor.) diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java index 8fdc4cf01eb31..39cbacfdc145c 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java @@ -2079,7 +2079,11 @@ protected void reset() { } protected Name toName() { - return sigbuf.toName(names); + try { + return sigbuf.toName(names); + } catch (InvalidUtfException e) { + throw new AssertionError(e); + } } } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java index 52c68f1f121c7..be70c0709919d 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java @@ -556,7 +556,7 @@ public R accept(ElementVisitor v, P p) { methodHandlesType = enterClass("java.lang.invoke.MethodHandles"); methodHandleLookupType = enterClass("java.lang.invoke.MethodHandles$Lookup"); methodTypeType = enterClass("java.lang.invoke.MethodType"); - carriersType = enterClass("java.lang.template.Carriers"); + carriersType = enterClass("java.lang.runtime.Carriers"); errorType = enterClass("java.lang.Error"); illegalArgumentExceptionType = enterClass("java.lang.IllegalArgumentException"); diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java index c366e6e5d37f3..54e7057df5bb0 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java @@ -341,10 +341,9 @@ private UnrolledRecordPattern unrollRecordPattern(JCRecordPattern recordPattern) index++; Type componentType = types.erasure(nestedFullComponentTypes.head); - JCPattern nestedPattern = TreeInfo.skipParens(nestedPatterns.head); JCBindingPattern nestedBinding; boolean allowNull; - if (nestedPattern instanceof JCRecordPattern nestedRecordPattern) { + if (nestedPatterns.head instanceof JCRecordPattern nestedRecordPattern) { UnrolledRecordPattern nestedDesugared = unrollRecordPattern(nestedRecordPattern); JCExpression newGuard = nestedDesugared.newGuard(); if (newGuard != null) { @@ -357,7 +356,7 @@ private UnrolledRecordPattern unrollRecordPattern(JCRecordPattern recordPattern) nestedBinding = nestedDesugared.primaryPattern(); allowNull = false; } else { - nestedBinding = (JCBindingPattern) nestedPattern; + nestedBinding = (JCBindingPattern) nestedPatterns.head; allowNull = types.isSubtype(componentType, types.boxedTypeOrType(types.erasure(nestedBinding.type))); } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java index 0bcd9bdf5d26d..56db6223f5ad9 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java @@ -882,8 +882,8 @@ int writeMatcherAttribute(MethodSymbol m) { int acountIdx = beginAttrs(); int acount = 0; - if (m.isMatcher() && target.hasMethodParameters() && (options.isSet(PARAMETERS))) { - acount += writeMethodParametersAttr(m); + if (m.isMatcher() && target.hasMethodParameters()) { + acount += writeMethodParametersAttr(m, requiresParamNames(m)); } acount += writeMemberAttrs(m, false, true); diff --git a/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java b/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java index 5327e869b1cf2..eae9d70758bd3 100644 --- a/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java +++ b/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java @@ -1371,6 +1371,9 @@ public Void visitPermittedSubclasses(PermittedSubclasses_attribute attr, T p) { public Void visitRecord(Record_attribute attr, T p) { return null; } + + @Override + public Void visitMatcher(Matcher_attribute attr, T p) { return null; } } private static final Attribute.Visitor typeAnnoMatcher diff --git a/test/langtools/tools/javac/MethodParameters/AttributeVisitor.java b/test/langtools/tools/javac/MethodParameters/AttributeVisitor.java index d2e2fa7b6204c..63285c5d694e6 100644 --- a/test/langtools/tools/javac/MethodParameters/AttributeVisitor.java +++ b/test/langtools/tools/javac/MethodParameters/AttributeVisitor.java @@ -42,6 +42,7 @@ class AttributeVisitor implements Attribute.Visitor { public R visitLineNumberTable(LineNumberTable_attribute attr, P p) { return null; } public R visitLocalVariableTable(LocalVariableTable_attribute attr, P p) { return null; } public R visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, P p) { return null; } + public R visitMatcher(Matcher_attribute attr, P p) { return null; } public R visitNestHost(NestHost_attribute attr, P p) { return null; } public R visitMethodParameters(MethodParameters_attribute attr, P p) { return null; } public R visitModule(Module_attribute attr, P p) { return null; } diff --git a/test/langtools/tools/javac/patterns/Point.java b/test/langtools/tools/javac/patterns/Point.java index d4a7bfaadecdb..d23d0ef1e6cb9 100644 --- a/test/langtools/tools/javac/patterns/Point.java +++ b/test/langtools/tools/javac/patterns/Point.java @@ -8,8 +8,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import java.lang.invoke.MethodType; -import java.lang.template.Carriers; import java.util.Objects; public record Point(Integer x, Integer y) { diff --git a/test/langtools/tools/javac/patterns/Points.java b/test/langtools/tools/javac/patterns/Points.java index e69ed2c390e67..59fd8c7a9a6d0 100644 --- a/test/langtools/tools/javac/patterns/Points.java +++ b/test/langtools/tools/javac/patterns/Points.java @@ -8,8 +8,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import java.lang.invoke.MethodType; -import java.lang.template.Carriers; import java.util.Collection; import java.util.List; import java.util.Objects;