aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java15
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java2
2 files changed, 17 insertions, 0 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
index 144327df7..31f50a573 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
@@ -15,6 +15,7 @@ package org.aspectj.ajdt.internal.compiler.problem;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Modifier;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -57,6 +58,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.problem.ProblemSeverities;
import org.aspectj.util.FuzzyBoolean;
import org.aspectj.weaver.AjcMemberMaker;
import org.aspectj.weaver.ConcreteTypeMunger;
+import org.aspectj.weaver.ReferenceType;
import org.aspectj.weaver.ResolvedMember;
import org.aspectj.weaver.ResolvedType;
import org.aspectj.weaver.Shadow;
@@ -466,6 +468,19 @@ public class AjProblemReporter extends ProblemReporter {
if (privilegedHandler.definesPrivilegedAccessToField(fieldDecl.binding)) {
return;
}
+ } else if (theAspect instanceof ReferenceType) {
+ // ResolvedMember rm = factory.makeResolvedMember(fieldDecl.binding);
+ String fname = new String(fieldDecl.name);
+ Collection/* ResolvedMember */privvies = ((ReferenceType) theAspect).getPrivilegedAccesses();
+ // On an incremental compile the information is in the bcel delegate
+ if (privvies != null) {
+ for (Iterator iterator = privvies.iterator(); iterator.hasNext();) {
+ ResolvedMember priv = (ResolvedMember) iterator.next();
+ if (priv.getName().equals(fname)) {
+ return;
+ }
+ }
+ }
}
}
checked.add(theAspect);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
index b578e88c9..cca9aa49d 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
@@ -161,6 +161,8 @@ public class AjCompilerOptions extends CompilerOptions {
public void set(Map optionsMap) {
super.set(optionsMap);
Object optionValue;
+ if ((optionValue = optionsMap.get(OPTION_ReportUnusedPrivateMember)) != null)
+ updateSeverity(UnusedPrivateMember, optionValue);
if ((optionValue = optionsMap.get(OPTION_ReportInvalidAbsoluteTypeName)) != null)
updateSeverity(InvalidAbsoluteTypeName, optionValue);
if ((optionValue = optionsMap.get(OPTION_ReportInvalidWildcardTypeName)) != null)