org.aspectj/tests/bugs/ParentsAndPointcuts.java

44 lines
1.1 KiB
Java
Raw Normal View History

import org.aspectj.testing.Tester;
public class ParentsAndPointcuts {
public static void main(String[] args) {
ContainerDescriptor d = new ContainerDescriptor();
Tester.check(d instanceof AbstractCaching.Key, "instanceof");
}
}
aspect AspectBug extends AbstractCaching
perthis(execution(ContainerLoader+.new(..)))
{
declare parents: ContainerDescriptor implements AbstractCaching.Key;
protected pointcut loadExecutions( Key key ):
ContainerLoader.containerLoads( *, key );
}
abstract aspect AbstractCaching {
interface Key {}
protected abstract pointcut loadExecutions(Key key);
}
class Key {
}
class ContainerDescriptor {
}
class ActiveContainer {
}
class ContainerLoader {
public ActiveContainer createContainer(ContainerDescriptor c) {
return null;
}
public pointcut containerLoads(ContainerLoader loader,
ContainerDescriptor containerDesc ):
this(loader) && args(containerDesc)
&& execution(ActiveContainer ContainerLoader.createContainer
(ContainerDescriptor));
}