From b19fcfa2f65e48cbe54c59d5e554c4453ae1a06f Mon Sep 17 00:00:00 2001 From: Angelos Bimpoudis Date: Thu, 30 Jan 2025 11:43:47 +0100 Subject: [PATCH] Remove the expectedMangledName --- .../java/lang/runtime/PatternBootstraps.java | 17 +++++++++-------- .../InstanceOfStatementInPatternsTest.java | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/java.base/share/classes/java/lang/runtime/PatternBootstraps.java b/src/java.base/share/classes/java/lang/runtime/PatternBootstraps.java index f6242e9e5de..776665db2a8 100644 --- a/src/java.base/share/classes/java/lang/runtime/PatternBootstraps.java +++ b/src/java.base/share/classes/java/lang/runtime/PatternBootstraps.java @@ -128,14 +128,15 @@ public static CallSite invokePattern(MethodHandles.Lookup lookup, throw new IllegalArgumentException("Cannot find a pattern"); } - String expectedMangledName = PatternBytecodeName.mangle(selectorType, - Arrays.stream(selectorType.getRecordComponents()) - .map(RecordComponent::getType) - .toArray(Class[]::new)); - - if (!expectedMangledName.equals(mangledName)) { - throw new IllegalArgumentException("Unexpected pattern at use site"); - } + // todo: strengthen check, erasure in mangled name for records? + // String expectedMangledName = PatternBytecodeName.mangle(selectorType, + // Arrays.stream(selectorType.getRecordComponents()) + // .map(RecordComponent::getType) + // .toArray(Class[]::new)); + // + // if (!expectedMangledName.equals(mangledName)) { + // throw new IllegalArgumentException("\nUnexpected pattern at use site: " + mangledName + "\nWas expecting: " + expectedMangledName); + // } target = MethodHandles.insertArguments(StaticHolders.SYNTHETIC_PATTERN, 0, selectorType).asType(invocationType); diff --git a/test/langtools/tools/javac/patterns/declarations/InstanceOfStatementInPatternsTest.java b/test/langtools/tools/javac/patterns/declarations/InstanceOfStatementInPatternsTest.java index 428c45ae60a..0521858420c 100644 --- a/test/langtools/tools/javac/patterns/declarations/InstanceOfStatementInPatternsTest.java +++ b/test/langtools/tools/javac/patterns/declarations/InstanceOfStatementInPatternsTest.java @@ -26,6 +26,7 @@ /** * @test * @enablePreview + * @compile InstanceOfStatementInPatternsTest.java * @run main InstanceOfStatementInPatternsTest */ public class InstanceOfStatementInPatternsTest {