summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-08-24 12:46:38 +0000
committeracolyer <acolyer>2005-08-24 12:46:38 +0000
commit76a76ff7936851f0a1eaf99985f38df8b6b6f5be (patch)
tree6acbf10668e1d8b1fa5fed340fbb93005aececb0 /org.aspectj.ajdt.core
parent02c28e7e1f3c1ad29763ab6822e41ffabbffc347 (diff)
downloadaspectj-76a76ff7936851f0a1eaf99985f38df8b6b6f5be.tar.gz
aspectj-76a76ff7936851f0a1eaf99985f38df8b6b6f5be.zip
last piece of the $Local$ fix
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
index 1e0fd4372..fca8cac17 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
@@ -38,6 +38,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.impl.ReferenceContext;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BaseTypes;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding;
+import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LocalTypeBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
@@ -259,6 +260,14 @@ public class EclipseFactory {
CharOperation.charToString(((SourceTypeBinding)binding).genericSignature()));
}
+ // LocalTypeBinding have a name $Local$, we can get the real name by using the signature....
+ if (binding.isLocalType()) {
+ LocalTypeBinding ltb = (LocalTypeBinding) binding;
+ if (ltb.constantPoolName() != null && ltb.constantPoolName().length > 0) {
+ return UnresolvedType.forSignature(new String(binding.signature()));
+ }
+ }
+
return UnresolvedType.forName(getName(binding));
}
@@ -714,7 +723,12 @@ public class EclipseFactory {
if (binding.isGenericType()) {
simpleTx = UnresolvedType.forRawTypeName(getName(binding));
} else if (binding.isLocalType()) {
- simpleTx = UnresolvedType.forSignature(new String(binding.signature()));
+ LocalTypeBinding ltb = (LocalTypeBinding) binding;
+ if (ltb.constantPoolName() != null && ltb.constantPoolName().length > 0) {
+ simpleTx = UnresolvedType.forSignature(new String(binding.signature()));
+ } else {
+ simpleTx = UnresolvedType.forName(getName(binding));
+ }
}else {
simpleTx = UnresolvedType.forName(getName(binding));
}