aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoraclement <aclement>2005-06-14 14:53:37 +0000
committeraclement <aclement>2005-06-14 14:53:37 +0000
commit588023e3beb9f861405f4f9a580122993d2dbb47 (patch)
treecd8a504ebb1e12555822ce17021699cb8e44334d /org.aspectj.ajdt.core
parentf0c367c834953aea60991d54129f57013b64af54 (diff)
downloadaspectj-588023e3beb9f861405f4f9a580122993d2dbb47.tar.gz
aspectj-588023e3beb9f861405f4f9a580122993d2dbb47.zip
Fix for 99168: [generics][itds] ITD on generic inner class crashes ajc. Allows for ParameterizedTypeBindings (and RawTypeBindings)
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
index 80fae957f..82a4d7595 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
@@ -15,9 +15,11 @@ package org.aspectj.ajdt.internal.compiler.lookup;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
+import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Scope;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding;
+import org.aspectj.weaver.BCException;
public class InterTypeScope extends ClassScope {
ReferenceBinding onType;
@@ -32,7 +34,12 @@ public class InterTypeScope extends ClassScope {
// this method depends on the fact that BinaryTypeBinding extends SourceTypeBinding
private SourceTypeBinding makeSourceTypeBinding(ReferenceBinding onType) {
if (onType instanceof SourceTypeBinding) return (SourceTypeBinding)onType;
- else throw new RuntimeException("can't handle: " + onType);
+ else if (onType instanceof ParameterizedTypeBinding) {
+ ReferenceBinding rb = ((ParameterizedTypeBinding)onType).type;
+ if (rb instanceof SourceTypeBinding) return (SourceTypeBinding)rb;
+ else throw new BCException("In parameterized type "+onType+", can't handle reference binding "+rb);
+ }
+ throw new BCException("can't handle: " + onType);
}
public SourceTypeBinding invocationType() {