Bug 79523 - BCException: illegal change to pointcut declaration: calls(<nothing>)
Summary: BCException: illegal change to pointcut declaration: calls(<nothing>)
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.2.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 1.5.0 M3   Edit
Assignee: Adrian Colyer CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-25 16:31 EST by Macneil Shonle CLA
Modified: 2005-08-19 15:52 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Macneil Shonle CLA 2004-11-25 16:31:26 EST
~> which ajc
/cygdrive/c/aspectj1.2.1/bin/ajc
~> ajc -version
AspectJ Compiler 1.2.1 built on Friday Nov 5, 2004 at 12:30:41 GMT
~> cat AspectTest.java
aspect AspectTest {
        pointcut calls(String str): call(*.new(String)) && args(str);
        declare warning: calls(str) : "not statically determinable, trying anyway";
}
~> ajc AspectTest.java
C:\Documents and Settings\Macneil Shonle\AspectTest.java [error] Internal
compiler error
org.aspectj.weaver.BCException: illegal change to pointcut declaration:
calls(<nothing>)
        at
org.aspectj.weaver.patterns.ReferencePointcut.concretize1(ReferencePointcut.java:268)
        at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:167)
        at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:154)
        at org.aspectj.weaver.Checker.concretize(Checker.java:35)
        at
org.aspectj.weaver.CrosscuttingMembers.addShadowMunger(CrosscuttingMembers.java:78)
        at
org.aspectj.weaver.CrosscuttingMembers.addDeclare(CrosscuttingMembers.java:102)
        at
org.aspectj.weaver.CrosscuttingMembers.addDeclares(CrosscuttingMembers.java:92)
        at
org.aspectj.weaver.CrosscuttingMembersSet.addAdviceLikeDeclares(CrosscuttingMembersSet.java:68)
        at
org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.addAdviceLikeDeclares(AjLookupEnvironment.java:163)
        at
org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:138)
        at
org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:331)
        at
org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:348)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:680)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:168)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:102)
        at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:109)
        at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
        at org.aspectj.tools.ajc.Main.run(Main.java:291)
        at org.aspectj.tools.ajc.Main.runMain(Main.java:227)
        at org.aspectj.tools.ajc.Main.main(Main.java:80)

(no source information available)
C:\Documents and Settings\Macneil Shonle\AspectTest.java:3 [error] bad parameter
to pointcut reference
declare warning: calls(str) : "not statically determinable, trying anyway";
                 ^^^^^^^^
C:\Documents and Settings\Macneil Shonle\AspectTest.java:3 [warning] no match
for this type name: str [Xlint:invalidAbsoluteTypeName]
declare warning: calls(str) : "not statically determinable, trying anyway";
                       ^
ABORT
        
Exception thrown from AspectJ 1.2.1

This might be logged as a bug already -- find current bugs at
  http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler

Bugs for exceptions thrown have titles File:line from the top stack, 
e.g., "SomeFile.java:243"

If you don't find the exception below in a bug, please add a new bug
at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
To make the bug a priority, please include a test program
that can reproduce this exception.
illegal change to pointcut declaration: calls(<nothing>)
illegal change to pointcut declaration: calls(<nothing>)
org.aspectj.weaver.BCException: illegal change to pointcut declaration:
calls(<nothing>)
        at
org.aspectj.weaver.patterns.ReferencePointcut.concretize1(ReferencePointcut.java:268)
        at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:167)
        at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:154)
        at org.aspectj.weaver.Checker.concretize(Checker.java:35)
        at
org.aspectj.weaver.CrosscuttingMembers.addShadowMunger(CrosscuttingMembers.java:78)
        at
org.aspectj.weaver.CrosscuttingMembers.addDeclare(CrosscuttingMembers.java:102)
        at
org.aspectj.weaver.CrosscuttingMembers.addDeclares(CrosscuttingMembers.java:92)
        at
org.aspectj.weaver.CrosscuttingMembersSet.addAdviceLikeDeclares(CrosscuttingMembersSet.java:68)
        at
org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.addAdviceLikeDeclares(AjLookupEnvironment.java:163)
        at
org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:138)
        at
org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:331)
        at
org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:348)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:680)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:168)
        at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:102)
        at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:109)
        at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
        at org.aspectj.tools.ajc.Main.run(Main.java:291)
        at org.aspectj.tools.ajc.Main.runMain(Main.java:227)
        at org.aspectj.tools.ajc.Main.main(Main.java:80)

Dumping to ajcore.20041125.132911.022.txt

1 fail|abort, 2 errors, 1 warning
Signal 127
Comment 1 Adrian Colyer CLA 2005-03-23 09:03:24 EST
this needs to be fixed in aj5m3. The bug arises when calls(str) is used in the
deow (rather than calls(String) which produces the correct error message).
Comment 2 Adrian Colyer CLA 2005-08-19 15:52:59 EDT
compiler now handles this gracefully and emits the appropriate error messages.