View | Details | Raw Unified | Return to bug 129316
Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFileConstants.java (-1 lines)
Lines 46-52 Link Here
46
	 */
46
	 */
47
	int AccAnnotationDefault = ASTNode.Bit18; // indicate presence of an attribute  "DefaultValue" (annotation method)
47
	int AccAnnotationDefault = ASTNode.Bit18; // indicate presence of an attribute  "DefaultValue" (annotation method)
48
	int AccDeprecated = ASTNode.Bit21; // indicate presence of an attribute "Deprecated"
48
	int AccDeprecated = ASTNode.Bit21; // indicate presence of an attribute "Deprecated"
49
	int AccHierarchyInconsistent = ASTNode.Bit22; 
50
49
51
	int Utf8Tag = 1;
50
	int Utf8Tag = 1;
52
	int IntegerTag = 3;
51
	int IntegerTag = 3;
(-)compiler/org/eclipse/jdt/internal/compiler/classfmt/ClassFileReader.java (-2 / +9 lines)
Lines 284-290 Link Here
284
							}
284
							}
285
						}
285
						}
286
					} else if (CharOperation.equals(attributeName, AttributeNamesConstants.InconsistentHierarchy)) {
286
					} else if (CharOperation.equals(attributeName, AttributeNamesConstants.InconsistentHierarchy)) {
287
						this.accessFlags |= ClassFileConstants.AccHierarchyInconsistent;
287
						this.tagBits |= TagBits.HasInconsistentHierarchy;
288
					}
288
					}
289
					break;
289
					break;
290
				case 'S' :
290
				case 'S' :
Lines 662-669 Link Here
662
		if (this.getModifiers() != newClassFile.getModifiers())
662
		if (this.getModifiers() != newClassFile.getModifiers())
663
			return true;
663
			return true;
664
664
665
		// only consider a portion of the tagbits which indicate a structural change for dependents
666
		// e.g. @Override change has no influence outside
667
		long OnlyStructuralTagBits = TagBits.AnnotationTargetMASK // different @Target status ?
668
			| TagBits.AnnotationDeprecated // different @Deprecated status ?
669
			| TagBits.AnnotationRetentionMASK // different @Retention status ?
670
			| TagBits.HasInconsistentHierarchy; // different hierarchy status ?
671
		
665
		// meta-annotations
672
		// meta-annotations
666
		if ((this.getTagBits() & TagBits.AnnotationTargetMASK|TagBits.AnnotationDeprecated|TagBits.AnnotationRetentionMASK) != (newClassFile.getTagBits() & TagBits.AnnotationTargetMASK|TagBits.AnnotationDeprecated|TagBits.AnnotationRetentionMASK))
673
		if ((this.getTagBits() & OnlyStructuralTagBits) != (newClassFile.getTagBits() & OnlyStructuralTagBits))
667
			return true;
674
			return true;
668
		
675
		
669
		// generic signature
676
		// generic signature
(-)compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java (+2 lines)
Lines 26-31 Link Here
26
	long AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
26
	long AnonymousTypeMask = LocalTypeMask | IsAnonymousType;
27
	long IsBinaryBinding = ASTNode.Bit7;
27
	long IsBinaryBinding = ASTNode.Bit7;
28
	
28
	
29
	long HasInconsistentHierarchy = ASTNode.Bit8; // for binary type binding only
30
	
29
	// for the type cycle hierarchy check used by ClassScope
31
	// for the type cycle hierarchy check used by ClassScope
30
	long BeginHierarchyCheck = ASTNode.Bit9;  // type
32
	long BeginHierarchyCheck = ASTNode.Bit9;  // type
31
	long EndHierarchyCheck = ASTNode.Bit10; // type
33
	long EndHierarchyCheck = ASTNode.Bit10; // type

Return to bug 129316