aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoraclement <aclement>2010-07-05 23:02:44 +0000
committeraclement <aclement>2010-07-05 23:02:44 +0000
commit02510e70ef410c7148f674da5a94a354e9ee65d9 (patch)
tree8479b329f137dd15031b943e235d53677f72c381 /org.aspectj.ajdt.core
parent88e6c029ab9e3292605f6243b3fc057f2fc09db7 (diff)
downloadaspectj-02510e70ef410c7148f674da5a94a354e9ee65d9.tar.gz
aspectj-02510e70ef410c7148f674da5a94a354e9ee65d9.zip
318884: incremental: parameterization change on field
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
index 60b3810e4..9f3e873c4 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
@@ -1636,12 +1636,25 @@ public class AjState implements CompilerConfigurationChangeFlags {
char[] fieldName = field.getName();
for (int j = 0; j < existingFs.length; j++) {
if (CharOperation.equals(existingFs[j].getName(), fieldName)) {
- if (!modifiersEqual(field.getModifiers(), existingFs[j].getModifiers())) {
+ IBinaryField existing = existingFs[j];
+ if (!modifiersEqual(field.getModifiers(), existing.getModifiers())) {
return true;
}
- if (!CharOperation.equals(existingFs[j].getTypeName(), field.getTypeName())) {
+ if (!CharOperation.equals(existing.getTypeName(), field.getTypeName())) {
return true;
}
+
+ char[] existingGSig = existing.getGenericSignature();
+ char[] fieldGSig = field.getGenericSignature();
+ if ((existingGSig == null && fieldGSig != null) || (existingGSig != null && fieldGSig == null)) {
+ return true;
+ }
+ if (existingGSig != null) {
+ if (!CharOperation.equals(existingGSig, fieldGSig)) {
+ return true;
+ }
+ }
+
continue new_field_loop;
}
}