From: aclement Date: Mon, 5 Jul 2010 23:02:44 +0000 (+0000) Subject: 318884: incremental: parameterization change on field X-Git-Tag: V1_6_10RC1~146 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=02510e70ef410c7148f674da5a94a354e9ee65d9;p=aspectj.git 318884: incremental: parameterization change on field --- 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; } }