diff options
author | aclement <aclement> | 2010-07-05 23:02:44 +0000 |
---|---|---|
committer | aclement <aclement> | 2010-07-05 23:02:44 +0000 |
commit | 02510e70ef410c7148f674da5a94a354e9ee65d9 (patch) | |
tree | 8479b329f137dd15031b943e235d53677f72c381 /org.aspectj.ajdt.core | |
parent | 88e6c029ab9e3292605f6243b3fc057f2fc09db7 (diff) | |
download | aspectj-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.java | 17 |
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; } } |