File tree 2 files changed +10
-1
lines changed
main/java/com/tngtech/archunit/core/domain
test/java/com/tngtech/archunit/core/domain
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) {
118
118
int lastIndexOfDot = name .lastIndexOf ('.' );
119
119
String partAfterDot = lastIndexOfDot >= 0 ? name .substring (lastIndexOfDot + 1 ) : name ;
120
120
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 ;
122
126
String simpleNameCandidate = lastIndexOf$ >= 0 ? partAfterDot .substring (lastIndexOf$ + 1 ) : partAfterDot ;
123
127
124
128
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() {
62
62
$ ("" , "" ),
63
63
$ ("Dummy" , "Dummy" ),
64
64
$ ("org.example.Dummy" , "Dummy" ),
65
+ $ ("org.example.Dummy$" , "Dummy$" ),
66
+ $ ("org.example.Dummy$$" , "Dummy$$" ),
67
+ $ ("org.example.Dummy$$$" , "Dummy$$$" ),
68
+ $ ("org.example.$$$" , "$$$" ),
65
69
$ ("org.example.Dummy$123" , "" ),
66
70
$ ("org.example.Dummy$NestedClass" , "NestedClass" ),
71
+ $ ("org.example.Dummy$NestedClass$" , "NestedClass$" ),
67
72
$ ("org.example.Dummy$NestedClass123" , "NestedClass123" ),
68
73
$ ("org.example.Dummy$NestedClass$123" , "" ),
69
74
$ ("org.example.Dummy$NestedClass$MoreNestedClass" , "MoreNestedClass" ),
You can’t perform that action at this time.
0 commit comments