--- /dev/null
+public class $Proxy4 {
+ public void foo() {}
+}
--- /dev/null
+public aspect X {
+ before(): execution(* foo(..)) && !within(X) { }
+}
protected File getSpecFile() {
return new File("../tests/src/org/aspectj/systemtest/ajc150/ajc150.xml");
}
-
+ public void testDollarClasses_pr120474() { runTest("Dollar classes");}
public void testGenericPTW_pr119539_1() { runTest("generic pertypewithin aspect - 1");}
public void testGenericPTW_pr119539_2() { runTest("generic pertypewithin aspect - 2");}
public void testGenericPTW_pr119539_3() { runTest("generic pertypewithin aspect - 3");}
<compile files="Test.java,TestAspect.java,Audit.java,AuditImpl.java" options="-1.5"/>
<run class="Test"/>
</ajc-test>
+
+ <ajc-test dir="bugs150/pr120474" pr="120474" title="Dollar classes">
+ <compile files="$Proxy4.java,X.aj"/>
+ </ajc-test>
<ajc-test dir="bugs150/pr111667" pr="111667" title="lint for advice sorting">
<compile files="A.java,X.java,Y.java" options="-1.5 -Xlint:warning">
if (isArray()) return null;
String name = getName();
int lastDollar = name.lastIndexOf('$');
- while (lastDollar != -1) {
+ while (lastDollar >0) { // allow for classes starting '$' (pr120474)
ResolvedType ret = world.resolve(UnresolvedType.forName(name.substring(0, lastDollar)), true);
if (!ResolvedType.isMissing(ret)) return ret;
lastDollar = name.lastIndexOf('$', lastDollar-1);