Avoid conflict with new ASTNode.HasTypeAnnotations (Bit21).
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java
index 803b328..3534f85 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java
@@ -194,9 +194,8 @@
public static final int HasBeenTransformed = Bit3; // by TransformStatementsVisitor while enhancing signatures (MessageSend / AbstractMethodDeclaration)
- public static final int IsGenerated = Bit21; // currently: supertype references, AllocationExpression in a creationMethod
public boolean isGenerated() {
- return (this.bits & IsGenerated) != 0;
+ return false; // subclasses to override
}
// SH}
@@ -610,7 +609,7 @@
}
private boolean isGeneratedBaseTypeReference() {
- if ((this.bits & IsGenerated) == 0)
+ if (!isGenerated())
return false;
if (!(this instanceof Expression))
return false;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
index 742a466..0f0f3f6 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
@@ -94,6 +94,11 @@
//{ObjectTeams: alternate AST in case the creation needs to be redirected through a creator call:
private MessageSend roleCreatorCall = null;
private NameReference valueParam; // if allocation type has value parameter: synthesized argument for ctor call
+ public boolean isGenerated;
+ @Override
+ public boolean isGenerated() {
+ return this.isGenerated;
+ }
// SH}
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
index b82b864..ee61562 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
@@ -29,6 +29,14 @@
public class EqualExpression extends BinaryExpression {
+//{ObjectTeams:
+ public boolean isGenerated;
+ @Override
+ public boolean isGenerated() {
+ return this.isGenerated;
+ }
+//SH}
+
public EqualExpression(Expression left, Expression right,int operator) {
super(left,right,operator);
}
@@ -190,7 +198,7 @@
// TODO (maxime) check, reintroduced copy
}
//{ObjectTeams: no warnings/errors for generated (null-)checks:
- if ((this.bits & IsGenerated) == 0)
+ if (!this.isGenerated)
// SH}
checkNullComparison(currentScope, flowContext, result, result.initsWhenTrue(), result.initsWhenFalse());
return result;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FalseLiteral.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FalseLiteral.java
index 3f59227..f8c021c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FalseLiteral.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FalseLiteral.java
@@ -67,7 +67,7 @@
}
public void traverse(ASTVisitor visitor, BlockScope scope) {
//{ObjectTeams: hide synthetic nodes from visitors (e.g., inserted into a base call)
- if ((this.bits & ASTNode.IsGenerated) != 0) return;
+ if (this.isGenerated) return;
// SH}
visitor.visit(this, scope);
visitor.endVisit(this, scope);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MagicLiteral.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MagicLiteral.java
index 7eb9111..61a8b6f 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MagicLiteral.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MagicLiteral.java
@@ -12,6 +12,10 @@
public abstract class MagicLiteral extends Literal {
+//{ObjectTeams:
+ public boolean isGenerated;
+//SH}
+
public MagicLiteral(int start , int end) {
super(start,end);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/NameReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/NameReference.java
index 2b6d7c1..5dfa8d1 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/NameReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/NameReference.java
@@ -63,6 +63,12 @@
}
return false;
}
+
+ public boolean isGenerated;
+ @Override
+ public boolean isGenerated() {
+ return this.isGenerated;
+ }
// SH}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java
index b8677b5..5baefe0 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java
@@ -197,7 +197,7 @@
reportDeprecatedType(this.resolvedType, scope, i);
}
//{ObjectTeams: statically qualified use of role?
- if (i > 0 && (this.bits & ASTNode.IsGenerated) == 0 && shouldAnalyzeRoleReference()) { // generated (and copied) methods are allowed to use MyTeam.R
+ if (i > 0 && !this.isGenerated && shouldAnalyzeRoleReference()) { // generated (and copied) methods are allowed to use MyTeam.R
if (isIllegalQualifiedUseOfProtectedRole(scope)) {
// already reported
} else {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java
index 8e4673e..3e8132d 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java
@@ -57,6 +57,14 @@
public LocalVariableBinding saveValueVariable;
public int initStateIndex = -1;
private boolean implicitReturn;
+//{ObjectTeams:
+ public boolean isGenerated;
+ @Override
+ public boolean isGenerated() {
+ return this.isGenerated;
+ }
+//SH}
+
public ReturnStatement(Expression expression, int sourceStart, int sourceEnd) {
this(expression, sourceStart, sourceEnd, false);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TrueLiteral.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TrueLiteral.java
index 9928685..c754a61 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TrueLiteral.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TrueLiteral.java
@@ -68,7 +68,7 @@
}
public void traverse(ASTVisitor visitor, BlockScope scope) {
//{ObjectTeams: hide synthetic nodes from visitors (e.g., inserted into a base call)
- if ((this.bits & ASTNode.IsGenerated) != 0) return;
+ if (this.isGenerated) return;
// SH}
visitor.visit(this, scope);
visitor.endVisit(this, scope);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java
index 4214bf6..7ed3ef2 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeReference.java
@@ -280,7 +280,12 @@
setBaseclassDecapsulation(DecapsulationState.REPORTED);
}
public int deprecationProblemId = IProblem.UsingDeprecatedType;
-// SH}
+
+public boolean isGenerated;
+public boolean isGenerated() {
+ return this.isGenerated;
+}
+//SH}
/*
* Answer a base type reference (can be an array of base type).
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
index a2f090a..ad90d4b 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
@@ -1604,7 +1604,7 @@
}
returnExpr = gen.allocation(createRoleTypeRef(typeName, typeVars, gen),
expressions);
- returnExpr.bits |= ASTNode.IsGenerated;
+ ((AllocationExpression)returnExpr).isGenerated = true;
} else {
returnExpr = gen.nullLiteral();
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/TypeLevel.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/TypeLevel.java
index 5843a2f..7b69e70 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/TypeLevel.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/TypeLevel.java
@@ -19,7 +19,6 @@
import java.util.HashSet;
import org.eclipse.jdt.core.compiler.CharOperation;
-import org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
import org.eclipse.jdt.internal.compiler.ast.TypeReference;
import org.eclipse.jdt.internal.compiler.ast.Expression.DecapsulationState;
@@ -168,7 +167,7 @@
// create a special type reference that uses the original scope for resolving:
destRoleDecl.baseclass= new AstGenerator(pos).alienScopeTypeReference(srcDecl.baseclass, srcDecl.scope.parent);
destRoleDecl.baseclass.setBaseclassDecapsulation(DecapsulationState.REPORTED);
- destRoleDecl.baseclass.bits |= ASTNode.IsGenerated;
+ destRoleDecl.baseclass.isGenerated = true;
}
}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstClone.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstClone.java
index 8fa523b..add6889 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstClone.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstClone.java
@@ -23,7 +23,6 @@
import java.util.Arrays;
import org.eclipse.jdt.core.compiler.CharOperation;
-import org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration;
import org.eclipse.jdt.internal.compiler.ast.Argument;
import org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference;
@@ -114,7 +113,7 @@
qualifiedResult = gen.qualifiedArrayTypeReference(typeName, dims);
else
qualifiedResult = gen.qualifiedTypeReference(typeName);
- qualifiedResult.bits |= (qualifiedTypeReference.bits & ASTNode.IsGenerated);
+ qualifiedResult.isGenerated = qualifiedTypeReference.isGenerated;
result = qualifiedResult;
}
}
@@ -213,7 +212,8 @@
}
if (result != null) {
result.setBaseclassDecapsulation(typeReference.getBaseclassDecapsulation());
- result.bits = typeReference.bits | ASTNode.IsGenerated;
+ result.bits = typeReference.bits;
+ result.isGenerated = true;
return result;
}
throw new InternalCompilerError("Unexpected kind of type reference: " + typeReference.getClass().getName()); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstEdit.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstEdit.java
index 354f67a..80382d0 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstEdit.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstEdit.java
@@ -506,11 +506,11 @@
TypeReference[] args =new TypeReference[len];
for (int i = 0; i < len; i++) {
args[i] = gen.singleTypeReference(roleClassDecl.typeParameters[i].name);
- args[i].bits |= ASTNode.IsGenerated;
+ args[i].isGenerated = true;
}
implementsRef = new ParameterizedSingleTypeReference(interfaceName, args, 0, pos);
}
- implementsRef.bits |= ASTNode.IsGenerated;
+ implementsRef.isGenerated = true;
addImplementsReference(roleClassDecl, implementsRef);
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
index 985fb32..6f1dd87 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
@@ -140,7 +140,7 @@
public SingleNameReference singleNameReference(char[] name) {
SingleNameReference ref = new SingleNameReference(name, this.pos);
- ref.bits |= ASTNode.IsGenerated;
+ ref.isGenerated = true;
return ref;
}
public QualifiedNameReference qualifiedNameReference(char[][] tokens) {
@@ -270,14 +270,14 @@
return result;
}
public Expression nullCheck(Expression value) {
- Expression result = new EqualExpression(
+ EqualExpression result = new EqualExpression(
value,
nullLiteral(),
OperatorIds.EQUAL_EQUAL);
result.sourceStart = this.sourceStart;
result.sourceEnd = this.sourceEnd;
result.constant = Constant.NotAConstant;
- result.bits |= ASTNode.IsGenerated;
+ result.isGenerated = true;
return result;
}
public IntLiteral intLiteral(int val) {
@@ -285,10 +285,10 @@
return result;
}
public Literal booleanLiteral(boolean val) {
- Literal result = val
+ MagicLiteral result = val
? new TrueLiteral(this.sourceStart, this.sourceEnd)
: new FalseLiteral(this.sourceStart, this.sourceEnd);
- result.bits |= ASTNode.IsGenerated;
+ result.isGenerated = true;
return result;
}
public StringLiteral stringLiteral(char[] cs) {
@@ -306,7 +306,8 @@
long[] poss = new long[compoundName.length];
Arrays.fill(poss, this.pos);
QualifiedTypeReference reference = new QualifiedTypeReference(compoundName, poss);
- reference.bits |= ASTNode.IsGenerated | ASTNode.IgnoreRawTypeCheck;
+ reference.bits |= ASTNode.IgnoreRawTypeCheck;
+ reference.isGenerated = true;
return reference;
}
@@ -314,7 +315,8 @@
long[] poss = new long[compoundName.length];
Arrays.fill(poss, this.pos);
ArrayQualifiedTypeReference reference = new ArrayQualifiedTypeReference(compoundName, dims, poss);
- reference.bits |= ASTNode.IsGenerated | ASTNode.IgnoreRawTypeCheck;
+ reference.bits |= ASTNode.IgnoreRawTypeCheck;
+ reference.isGenerated = true;
return reference;
}
@@ -374,7 +376,8 @@
elementType = ab.leafComponentType;
}
TypeReference typeReference = createArrayTypeReference(elementType, dims, makeGeneric);
- typeReference.bits |= ASTNode.IsGenerated | ASTNode.IgnoreRawTypeCheck;
+ typeReference.bits |= ASTNode.IgnoreRawTypeCheck;
+ typeReference.isGenerated = true;
typeReference.deprecationProblemId = 0;
if (!type.isValidBinding())
typeReference.bits |= ASTNode.IsGeneratedWithProblem;
@@ -423,7 +426,8 @@
{
TypeReference typeReference = createArrayTypeReference(elementType, dims, true);
typeReference.deprecationProblemId = 0;
- typeReference.bits |= ASTNode.IsGenerated | ASTNode.IgnoreRawTypeCheck;
+ typeReference.bits |= ASTNode.IgnoreRawTypeCheck;
+ typeReference.isGenerated = true;
return typeReference;
}
@@ -957,7 +961,7 @@
public ReturnStatement returnStatement(Expression expression, boolean synthetic) {
ReturnStatement returnStatement = new ReturnStatement(expression, this.sourceStart, this.sourceEnd);
if (synthetic)
- returnStatement.bits |= ASTNode.IsGenerated;
+ returnStatement.isGenerated = true;
return returnStatement;
}
public IfStatement ifStatement(Expression condition, Statement thenStatement) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/IAlienScopeTypeReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/IAlienScopeTypeReference.java
index 87a7d07..56d91f4 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/IAlienScopeTypeReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/IAlienScopeTypeReference.java
@@ -17,7 +17,6 @@
package org.eclipse.objectteams.otdt.internal.core.compiler.util;
import org.eclipse.jdt.internal.compiler.CompilationResult.CheckPoint;
-import org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.eclipse.jdt.internal.compiler.ast.ArrayQualifiedTypeReference;
import org.eclipse.jdt.internal.compiler.ast.ArrayTypeReference;
import org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference;
@@ -165,7 +164,7 @@
public AlienScopeQualifiedTypeReference(char[][] sources, long[] poss, Scope alienScope) {
super(sources, poss);
this.alienScope = alienScope;
- this.bits |= ASTNode.IsGenerated; // allow qualified reference to role
+ this.isGenerated = true; // allow qualified reference to role
}
public Scope getAlienScope() { return this.alienScope; }
@Override
@@ -205,7 +204,7 @@
public AlienScopeArrayQualifiedTypeReference(char[][] sources, long[] poss, int dim, Scope alienScope) {
super(sources, dim, poss);
this.alienScope = alienScope;
- this.bits |= ASTNode.IsGenerated; // allow qualified reference to role
+ this.isGenerated = true; // allow qualified reference to role
}
public Scope getAlienScope() { return this.alienScope; }
@Override
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
index 47f03d9..41fc3f7 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
@@ -2066,7 +2066,7 @@
}
}
// OT:
- previousIsHidden = ((arguments[i].bits & ASTNode.IsGenerated) != 0);
+ previousIsHidden = arguments[i].isGenerated();
if (!previousIsHidden)
// SH}
arguments[i].traverse(this, scope);