Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 57d260d

Browse files
committed
Fixed bug of incorrect nested class dependency:
https://groups.google.com/forum/#!topic/java2script/B35vDXjX77I
1 parent 83ea074 commit 57d260d

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

sources/net.sf.j2s.core/src/net/sf/j2s/core/astvisitors/DependencyASTVisitor.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -876,8 +876,21 @@ public boolean visit(ClassInstanceCreation node) {
876876
QNTypeBinding qn = new QNTypeBinding();
877877
String qualifiedName = null;
878878
if (resolveTypeBinding != null && resolveTypeBinding.isAnonymous()) {
879-
qualifiedName = node.getType().resolveBinding().getQualifiedName();
880-
qn.binding = node.getType().resolveBinding();
879+
resolveTypeBinding = node.getType().resolveBinding();
880+
//qualifiedName = node.getType().resolveBinding().getQualifiedName();
881+
//qn.binding = node.getType().resolveBinding();
882+
ITypeBinding declaringClass = resolveTypeBinding.getDeclaringClass();
883+
if (declaringClass != null) {
884+
ITypeBinding dclClass = null;
885+
while ((dclClass = declaringClass.getDeclaringClass()) != null) {
886+
declaringClass = dclClass;
887+
}
888+
qualifiedName = declaringClass.getQualifiedName();
889+
qn.binding = declaringClass;
890+
} else {
891+
qualifiedName = resolveTypeBinding.getQualifiedName();
892+
qn.binding = resolveTypeBinding;
893+
}
881894
} else if(resolveTypeBinding != null){
882895
ITypeBinding declaringClass = resolveTypeBinding.getDeclaringClass();
883896
if (declaringClass != null) {

0 commit comments

Comments
 (0)