Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 319190

Summary: operator precedence messed up in some pointcuts
Product: [Tools] AspectJ Reporter: Andrew Clement <aclement>
Component: CompilerAssignee: aspectj inbox <aspectj-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P2    
Version: 1.6.9   
Target Milestone: 1.6.10   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Andrew Clement CLA 2010-07-07 16:31:29 EDT
Some pointcuts are not quite parsed correctly and give the impression that && and || have the same precedence.  Example:

(execution(* A.credit(float)) || execution(* A.debit(float))) && this(acc) && args(am)  || execution(* C.*(Account, float)) && args(acc, am)
Comment 1 Andrew Clement CLA 2010-07-07 16:33:10 EDT
Simple pointcuts don't trigger this problem, it has to be a particular kind of pointcut.  For example, this parses fine (with && higher precedence):

"if(true) && if(false) || if(true)"

It looks to be a simple pointcut parser problem where it shouldn't be considering || adjoined clauses whilst processing a series of &&.
Comment 2 Andrew Clement CLA 2010-07-07 17:02:12 EDT
fixed