[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-dev] New build errors in sept 11 release of ajc
|
I made a small test case for the problem I spoke about earlier.
First, here are the versions of AspectJ I'm using (this is a bash
shell under cygwin on Windows XP):
~> CLASSPATH='C:\aspectj1.0\lib\aspectjrt.jar' /cygdrive/c/aspectj1.0/bin/ajc -version
ajc version 1.0.6 (built Jul 24, 2002 6:21 PM PST) running on java
1.4.1_02
~> CLASSPATH='C:\aspectj1.1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1/bin/ajc -version
AspectJ Compiler 1.1.0
~> CLASSPATH='C:\aspectj1.1.1rc1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1.1rc1/bin/ajc -version
AspectJ Compiler 1.1.1rc1
~> CLASSPATH='C:\aspectj1.1.1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1.1/bin/ajc -version
AspectJ Compiler 1.1.1
For all four of these compilers, I give them the AspectBug.java file
(which is attached):
~> CLASSPATH='C:\aspectj1.0\lib\aspectjrt.jar' /cygdrive/c/aspectj1.0/bin/ajc AspectBug.java
~> CLASSPATH='C:\aspectj1.1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1/bin/ajc AspectBug.java
~> CLASSPATH='C:\aspectj1.1.1rc1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1.1rc1/bin/ajc AspectBug.java
~> CLASSPATH='C:\aspectj1.1.1\lib\aspectjrt.jar' /cygdrive/c/aspectj1.1.1/bin/ajc AspectBug.java
C:\Documents and Settings\Macneil Shonle\AspectBug.java:7 incompatible type, expected ContainerDescriptor found BindingTypePattern(AbstractCaching$Key, 0)
1 error
As you can see, only the final run (with the Sept 11 build of
ajc) do we see the "incompatible type" error. If this is not a
regression but a desirable result, how should the code be ported?
Thanks,
Macneil
public 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));
}