Переглянути джерело

268710: test and fix: marker interface within generic aspect

tags/pre268419
aclement 15 роки тому
джерело
коміт
73c305bb7a

+ 8
- 0
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDesignator.java Переглянути файл

@@ -22,6 +22,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.parser.Parser;
import org.aspectj.weaver.UnresolvedType;
import org.aspectj.weaver.patterns.FormalBinding;
@@ -75,6 +76,13 @@ public class PointcutDesignator extends ASTNode {
Argument arg = arguments[i];
String name = new String(arg.name);
UnresolvedType type = world.fromBinding(parameters[i]);
// pr268710: allow for inner interfaces in a generic aspect
if (parameters[i].isInterface() && parameters[i].isParameterizedType() && parameters[i].isMemberType()) {
TypeVariableBinding[] tvs = parameters[i].typeVariables();
if (tvs == null || tvs.length == 0) {
type = type.getRawType();
}
}
bindings[i] = new FormalBinding(type, name, i, arg.sourceStart, arg.sourceEnd);
}


Завантаження…
Відмінити
Зберегти