diff options
author | acolyer <acolyer> | 2005-08-24 12:46:38 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-08-24 12:46:38 +0000 |
commit | 76a76ff7936851f0a1eaf99985f38df8b6b6f5be (patch) | |
tree | 6acbf10668e1d8b1fa5fed340fbb93005aececb0 /org.aspectj.ajdt.core | |
parent | 02c28e7e1f3c1ad29763ab6822e41ffabbffc347 (diff) | |
download | aspectj-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.java | 16 |
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)); } |