File tree Expand file tree Collapse file tree 2 files changed +10
-1
lines changed
main/java/com/tngtech/archunit/core/domain
test/java/com/tngtech/archunit/core/domain Expand file tree Collapse file tree 2 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -118,7 +118,11 @@ public static String ensureSimpleName(String name) {
118118 int lastIndexOfDot = name .lastIndexOf ('.' );
119119 String partAfterDot = lastIndexOfDot >= 0 ? name .substring (lastIndexOfDot + 1 ) : name ;
120120
121- int lastIndexOf$ = partAfterDot .lastIndexOf ('$' );
121+ int lastFinalNon$ = partAfterDot .length () - 1 ;
122+ while (lastFinalNon$ > 0 && partAfterDot .charAt (lastFinalNon$ ) == '$' ) {
123+ lastFinalNon$ --;
124+ }
125+ int lastIndexOf$ = lastFinalNon$ > 0 ? partAfterDot .lastIndexOf ('$' , lastFinalNon$ ): -1 ;
122126 String simpleNameCandidate = lastIndexOf$ >= 0 ? partAfterDot .substring (lastIndexOf$ + 1 ) : partAfterDot ;
123127
124128 for (int i = 0 ; i < simpleNameCandidate .length (); i ++) {
Original file line number Diff line number Diff line change @@ -62,8 +62,13 @@ public static Object[][] simple_name_test_cases() {
6262 $ ("" , "" ),
6363 $ ("Dummy" , "Dummy" ),
6464 $ ("org.example.Dummy" , "Dummy" ),
65+ $ ("org.example.Dummy$" , "Dummy$" ),
66+ $ ("org.example.Dummy$$" , "Dummy$$" ),
67+ $ ("org.example.Dummy$$$" , "Dummy$$$" ),
68+ $ ("org.example.$$$" , "$$$" ),
6569 $ ("org.example.Dummy$123" , "" ),
6670 $ ("org.example.Dummy$NestedClass" , "NestedClass" ),
71+ $ ("org.example.Dummy$NestedClass$" , "NestedClass$" ),
6772 $ ("org.example.Dummy$NestedClass123" , "NestedClass123" ),
6873 $ ("org.example.Dummy$NestedClass$123" , "" ),
6974 $ ("org.example.Dummy$NestedClass$MoreNestedClass" , "MoreNestedClass" ),
You can’t perform that action at this time.
0 commit comments