elharo commented on issue #282:
URL: 
https://github.com/apache/maven-dependency-analyzer/issues/282#issuecomment-4893003070

   **Correction**: Further investigation shows the bug IS reproducible, but 
only for non-static inner classes whose outer class has parameterized type 
arguments. For example:
   
   ```java
   public class Outer<T> {
       public class Inner { ... }
   }
   // User implements Supplier<Outer<String>.Inner>
   ```
   
   javac emits the signature as `Ltest/Outer<Ljava/lang/String;>.Inner;` — the 
`.` separator between `Outer` and `Inner` triggers ASM's 
`visitInnerClassType(Inner)`, and the old code records just the bare name 
`"Inner"`.
   
   The fix is to track the outer class and emit `outer$inner` in 
`visitInnerClassType`. Even though `ResultCollector.add` filters `$`-containing 
names, this prevents the bogus bare `"Inner"` dependency and the outer class is 
already captured by `visitClassType`. A new PR is coming.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to