diff --git a/byte-buddy-dep/src/main/java/net/bytebuddy/description/type/TypeDescription.java b/byte-buddy-dep/src/main/java/net/bytebuddy/description/type/TypeDescription.java index 8b96d13b1d3..a3ec02597c2 100644 --- a/byte-buddy-dep/src/main/java/net/bytebuddy/description/type/TypeDescription.java +++ b/byte-buddy-dep/src/main/java/net/bytebuddy/description/type/TypeDescription.java @@ -8408,7 +8408,7 @@ public String getSimpleName() { return internalName; } } - while (simpleNameIndex < internalName.length() && !Character.isLetter(internalName.charAt(simpleNameIndex))) { + while (simpleNameIndex < internalName.length() && !Character.isJavaIdentifierStart(internalName.charAt(simpleNameIndex))) { simpleNameIndex += 1; } return internalName.substring(simpleNameIndex); diff --git a/byte-buddy-dep/src/test/java/net/bytebuddy/pool/TypePoolDefaultWithLazyResolutionTypeDescriptionTest.java b/byte-buddy-dep/src/test/java/net/bytebuddy/pool/TypePoolDefaultWithLazyResolutionTypeDescriptionTest.java index f42a813cc42..2cd8fe193bc 100644 --- a/byte-buddy-dep/src/test/java/net/bytebuddy/pool/TypePoolDefaultWithLazyResolutionTypeDescriptionTest.java +++ b/byte-buddy-dep/src/test/java/net/bytebuddy/pool/TypePoolDefaultWithLazyResolutionTypeDescriptionTest.java @@ -224,6 +224,13 @@ public void testGenericSuperInterfaceNavigatedHierarchyResolutionIsLazy() throws verifyNoMoreInteractions(classFileLocator); } + @Test + @Override + public void testSimpleName() throws Exception { + super.testSimpleName(); + assertThat(describe($DollarInName.class).getSimpleName(), CoreMatchers.is($DollarInName.class.getSimpleName())); + } + private static class SuperClass { /* empty */ } @@ -265,4 +272,8 @@ T foo(T argument) throws T { return argument; } } + + private static class $DollarInName { + /* empty */ + } }