mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Cosmetics.
This commit is contained in:
parent
224b4ef3a3
commit
3604f812ce
18 changed files with 2296 additions and 2371 deletions
|
@ -366,19 +366,20 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
public int size() { return nameList.size(); }
|
||||
|
||||
public void dump() {
|
||||
for (int i=0; i<size(); i++) {
|
||||
for (int i= 0; i < size(); i++) {
|
||||
IASTName name= getName(i);
|
||||
String parent= name.getParent() != null ? name.getParent().getRawSignature() : "";
|
||||
System.out.println(i+": #"+name.getRawSignature()+"# "+parent);
|
||||
System.out.println(i + ": #" + name.getRawSignature() + "# " + parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void assertInstances(CPPNameCollector collector, IBinding binding, int num) throws Exception {
|
||||
int count = 0;
|
||||
for (int i = 0; i < collector.size(); i++)
|
||||
for (int i = 0; i < collector.size(); i++) {
|
||||
if (collector.getName(i).resolveBinding() == binding)
|
||||
count++;
|
||||
}
|
||||
|
||||
assertEquals(num, count);
|
||||
}
|
||||
|
@ -490,11 +491,11 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
}
|
||||
|
||||
protected static <T> T assertInstance(Object o, Class<T> clazz, Class... cs) {
|
||||
assertNotNull("Expected object of "+clazz.getName()+" but got a null value", o);
|
||||
assertNotNull("Expected object of " + clazz.getName() + " but got a null value", o);
|
||||
assertTrue("Expected "+clazz.getName()+" but got "+o.getClass().getName(), clazz.isInstance(o));
|
||||
for (Class c : cs) {
|
||||
assertNotNull("Expected object of "+c.getName()+" but got a null value", o);
|
||||
assertTrue("Expected "+c.getName()+" but got "+o.getClass().getName(), c.isInstance(o));
|
||||
assertNotNull("Expected object of " + c.getName() + " but got a null value", o);
|
||||
assertTrue("Expected " + c.getName() + " but got " + o.getClass().getName(), c.isInstance(o));
|
||||
}
|
||||
return clazz.cast(o);
|
||||
}
|
||||
|
@ -523,7 +524,7 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
|
||||
public IProblemBinding assertProblem(String section, int len) {
|
||||
if (len <= 0)
|
||||
len= section.length()+len;
|
||||
len= section.length() + len;
|
||||
IBinding binding= binding(section, len);
|
||||
assertTrue("Non-ProblemBinding for name: " + section.substring(0, len),
|
||||
binding instanceof IProblemBinding);
|
||||
|
@ -532,11 +533,11 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
|
||||
public <T extends IBinding> T assertNonProblem(String section, int len) {
|
||||
if (len <= 0)
|
||||
len= section.length()+len;
|
||||
len= section.length() + len;
|
||||
IBinding binding= binding(section, len);
|
||||
if (binding instanceof IProblemBinding) {
|
||||
IProblemBinding problem= (IProblemBinding) binding;
|
||||
fail("ProblemBinding for name: " + section.substring(0, len) + " (" + renderProblemID(problem.getID())+")");
|
||||
fail("ProblemBinding for name: " + section.substring(0, len) + " (" + renderProblemID(problem.getID()) + ")");
|
||||
}
|
||||
if (binding == null) {
|
||||
fail("Null binding resolved for name: " + section.substring(0, len));
|
||||
|
@ -548,7 +549,7 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
IASTName name= findName(section, len);
|
||||
if (name != null) {
|
||||
String selection = section.substring(0, len);
|
||||
fail("Found unexpected \""+selection+"\": " + name.resolveBinding());
|
||||
fail("Found unexpected \"" + selection + "\": " + name.resolveBinding());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -559,7 +560,7 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
public IASTImplicitName assertImplicitName(String section, int len, Class<?> bindingClass) {
|
||||
IASTName name = findImplicitName(section, len);
|
||||
final String selection = section.substring(0, len);
|
||||
assertNotNull("did not find \""+selection+"\"", name);
|
||||
assertNotNull("did not find \"" + selection + "\"", name);
|
||||
|
||||
assertInstance(name, IASTImplicitName.class);
|
||||
IASTImplicitNameOwner owner = (IASTImplicitNameOwner) name.getParent();
|
||||
|
@ -587,7 +588,7 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
public void assertNoImplicitName(String section, int len) {
|
||||
IASTName name = findImplicitName(section, len);
|
||||
final String selection = section.substring(0, len);
|
||||
assertNull("found name \""+selection+"\"", name);
|
||||
assertNull("found name \"" + selection + "\"", name);
|
||||
}
|
||||
|
||||
public IASTImplicitName[] getImplicitNames(String section, int len) {
|
||||
|
@ -647,7 +648,7 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
|
||||
public <T extends IBinding> T assertNonProblem(String section, int len, Class<T> type, Class... cs) {
|
||||
if (len <= 0)
|
||||
len+= section.length();
|
||||
len += section.length();
|
||||
IBinding binding= binding(section, len);
|
||||
assertTrue("ProblemBinding for name: " + section.substring(0, len),
|
||||
!(binding instanceof IProblemBinding));
|
||||
|
@ -661,11 +662,11 @@ public class AST2BaseTest extends BaseTestCase {
|
|||
private IBinding binding(String section, int len) {
|
||||
IASTName name = findName(section, len);
|
||||
final String selection = section.substring(0, len);
|
||||
assertNotNull("did not find \""+selection+"\"", name);
|
||||
assertNotNull("did not find \"" + selection + "\"", name);
|
||||
assertEquals(selection, name.getRawSignature());
|
||||
|
||||
IBinding binding = name.resolveBinding();
|
||||
assertNotNull("No binding for "+name.getRawSignature(), binding);
|
||||
assertNotNull("No binding for " + name.getRawSignature(), binding);
|
||||
|
||||
return name.resolveBinding();
|
||||
}
|
||||
|
|
|
@ -127,7 +127,6 @@ import org.eclipse.cdt.internal.core.parser.ParserException;
|
|||
* Testcases on the AST.
|
||||
*/
|
||||
public class AST2Tests extends AST2BaseTest {
|
||||
|
||||
private static final int NUM_TESTS = 3;
|
||||
|
||||
public static TestSuite suite() {
|
||||
|
@ -1625,10 +1624,10 @@ public class AST2Tests extends AST2BaseTest {
|
|||
public void testBug270275_int_is_equivalent_to_signed_int() throws Exception {
|
||||
IASTTranslationUnit tu = parse(getAboveComment(), ParserLanguage.C);
|
||||
IASTDeclaration[] declarations = tu.getDeclarations();
|
||||
IType plainInt = ((IVariable)((IASTSimpleDeclaration)declarations[0]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType signedInt = ((IVariable)((IASTSimpleDeclaration)declarations[1]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType unsignedInt = ((IVariable)((IASTSimpleDeclaration)declarations[2]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType noSpec = ((IVariable)((IASTSimpleDeclaration)declarations[3]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType plainInt = ((IVariable)((IASTSimpleDeclaration) declarations[0]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType signedInt = ((IVariable)((IASTSimpleDeclaration) declarations[1]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType unsignedInt = ((IVariable)((IASTSimpleDeclaration) declarations[2]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
IType noSpec = ((IVariable)((IASTSimpleDeclaration) declarations[3]).getDeclarators()[0].getName().resolveBinding()).getType();
|
||||
assertTrue(plainInt.isSameType(signedInt));
|
||||
assertFalse(plainInt.isSameType(unsignedInt));
|
||||
assertFalse(signedInt.isSameType(unsignedInt));
|
||||
|
@ -2055,7 +2054,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
.getName();
|
||||
final IASTDeclarator dtor = ((IASTSimpleDeclaration) ((IASTDeclarationStatement) ((IASTCompoundStatement) f_def
|
||||
.getBody()).getStatements()[0]).getDeclaration()).getDeclarators()[0];
|
||||
final IASTInitializerList initializerList = (IASTInitializerList) ((IASTEqualsInitializer)dtor.getInitializer()).getInitializerClause();
|
||||
final IASTInitializerList initializerList = (IASTInitializerList) ((IASTEqualsInitializer) dtor.getInitializer()).getInitializerClause();
|
||||
IASTName a2 = ((ICASTFieldDesignator) ((ICASTDesignatedInitializer) initializerList.getInitializers()[0])
|
||||
.getDesignators()[0]).getName();
|
||||
IASTName b2 = ((ICASTFieldDesignator) ((ICASTDesignatedInitializer) initializerList.getInitializers()[1])
|
||||
|
@ -2229,18 +2228,12 @@ public class AST2Tests extends AST2BaseTest {
|
|||
|
||||
assertTrue(tu.isFrozen());
|
||||
for (int i = 0; i < NUM_TESTS; i++) {
|
||||
IASTFunctionDefinition def1 = (IASTFunctionDefinition) tu
|
||||
.getDeclarations()[0];
|
||||
IFunction f = (IFunction) def1.getDeclarator().getName()
|
||||
.resolveBinding();
|
||||
IASTFunctionDefinition def2 = (IASTFunctionDefinition) tu
|
||||
.getDeclarations()[1];
|
||||
IFunction f2 = (IFunction) def2.getDeclarator().getName()
|
||||
.resolveBinding();
|
||||
IASTFunctionDefinition def3 = (IASTFunctionDefinition) tu
|
||||
.getDeclarations()[2];
|
||||
IFunction f3 = (IFunction) def3.getDeclarator().getName()
|
||||
.resolveBinding();
|
||||
IASTFunctionDefinition def1 = (IASTFunctionDefinition) tu.getDeclarations()[0];
|
||||
IFunction f = (IFunction) def1.getDeclarator().getName().resolveBinding();
|
||||
IASTFunctionDefinition def2 = (IASTFunctionDefinition) tu.getDeclarations()[1];
|
||||
IFunction f2 = (IFunction) def2.getDeclarator().getName().resolveBinding();
|
||||
IASTFunctionDefinition def3 = (IASTFunctionDefinition) tu.getDeclarations()[2];
|
||||
IFunction f3 = (IFunction) def3.getDeclarator().getName().resolveBinding();
|
||||
|
||||
IFunctionType ft = f.getType();
|
||||
IFunctionType ft2 = f2.getType();
|
||||
|
@ -2251,17 +2244,15 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertTrue(((IPointerType) ft2.getReturnType()).getType() instanceof IBasicType);
|
||||
assertTrue(ft3.getReturnType() instanceof IPointerType);
|
||||
assertTrue(((IPointerType) ft3.getReturnType()).getType() instanceof IFunctionType);
|
||||
assertTrue(((IFunctionType) ((IPointerType) ft3.getReturnType())
|
||||
.getType()).getReturnType() instanceof IBasicType);
|
||||
assertTrue(((IFunctionType) ((IPointerType) ft3.getReturnType()).getType()).getReturnType()
|
||||
instanceof IBasicType);
|
||||
|
||||
// test tu.getDeclarationsInAST(IBinding)
|
||||
IASTName[] decls = tu.getDeclarationsInAST(def1.getDeclarator().getName()
|
||||
.resolveBinding());
|
||||
IASTName[] decls = tu.getDeclarationsInAST(def1.getDeclarator().getName().resolveBinding());
|
||||
assertEquals(decls.length, 1);
|
||||
assertEquals(decls[0], def1.getDeclarator().getName());
|
||||
|
||||
decls = tu.getDeclarationsInAST(def2.getDeclarator().getName()
|
||||
.resolveBinding());
|
||||
decls = tu.getDeclarationsInAST(def2.getDeclarator().getName().resolveBinding());
|
||||
assertEquals(decls.length, 1);
|
||||
assertEquals(decls[0], def2.getDeclarator().getName());
|
||||
|
||||
|
@ -2276,8 +2267,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
// any parameter to type function returning T is adjusted to be pointer to
|
||||
// function returning T
|
||||
public void testParmToFunction() throws Exception {
|
||||
IASTTranslationUnit tu = parse(
|
||||
"int f(int g(void)) { return g();}", ParserLanguage.C); //$NON-NLS-1$
|
||||
IASTTranslationUnit tu = parse("int f(int g(void)) { return g();}", ParserLanguage.C);
|
||||
assertTrue(tu.isFrozen());
|
||||
for (int i = 0; i < NUM_TESTS; i++) {
|
||||
IASTFunctionDefinition def = (IASTFunctionDefinition) tu.getDeclarations()[0];
|
||||
|
@ -2300,7 +2290,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertTrue(def.getDeclarator() instanceof IASTStandardFunctionDeclarator);
|
||||
IASTName name_g = ((IASTStandardFunctionDeclarator) def.getDeclarator())
|
||||
.getParameters()[0].getDeclarator().getName();
|
||||
IASTName name_g_call = ((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTReturnStatement) ((IASTCompoundStatement) def
|
||||
IASTName name_g_call =
|
||||
((IASTIdExpression) ((IASTFunctionCallExpression) ((IASTReturnStatement) ((IASTCompoundStatement) def
|
||||
.getBody()).getStatements()[0]).getReturnValue())
|
||||
.getFunctionNameExpression()).getName();
|
||||
IASTName[] decls = tu.getDeclarationsInAST(name_g_call.resolveBinding());
|
||||
|
@ -2312,15 +2303,13 @@ public class AST2Tests extends AST2BaseTest {
|
|||
}
|
||||
|
||||
public void testArrayPointerFunction() throws Exception {
|
||||
IASTTranslationUnit tu = parse(
|
||||
"int (*v[])(int *x, int *y);", ParserLanguage.C); //$NON-NLS-1$
|
||||
IASTTranslationUnit tu = parse("int (*v[])(int *x, int *y);", ParserLanguage.C);
|
||||
|
||||
assertTrue(tu.isFrozen());
|
||||
for (int i = 0; i < NUM_TESTS; i++) {
|
||||
IASTSimpleDeclaration decl = (IASTSimpleDeclaration) tu.getDeclarations()[0];
|
||||
IVariable v = (IVariable) ((IASTStandardFunctionDeclarator) decl
|
||||
.getDeclarators()[0]).getNestedDeclarator().getName()
|
||||
.resolveBinding();
|
||||
IVariable v = (IVariable) ((IASTStandardFunctionDeclarator) decl.getDeclarators()[0])
|
||||
.getNestedDeclarator().getName().resolveBinding();
|
||||
|
||||
IType vt_1 = v.getType();
|
||||
assertTrue(vt_1 instanceof IArrayType);
|
||||
|
@ -2348,8 +2337,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
.getDeclarators()[0]).getNestedDeclarator().getName()
|
||||
.resolveBinding());
|
||||
assertEquals(decls.length, 1);
|
||||
assertEquals(decls[0], ((IASTStandardFunctionDeclarator) decl
|
||||
.getDeclarators()[0]).getNestedDeclarator().getName());
|
||||
assertEquals(decls[0], ((IASTStandardFunctionDeclarator) decl.getDeclarators()[0])
|
||||
.getNestedDeclarator().getName());
|
||||
|
||||
tu = validateCopy(tu);
|
||||
}
|
||||
|
@ -2396,8 +2385,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertEquals(decls.length, 1);
|
||||
assertEquals(decls[0], name_DWORD);
|
||||
|
||||
decls = tu.getDeclarationsInAST(((IASTNamedTypeSpecifier) decl2
|
||||
.getDeclSpecifier()).getName().resolveBinding());
|
||||
decls = tu.getDeclarationsInAST(((IASTNamedTypeSpecifier) decl2.getDeclSpecifier())
|
||||
.getName().resolveBinding());
|
||||
assertEquals(decls.length, 1);
|
||||
assertEquals(decls[0], name_DWORD);
|
||||
|
||||
|
@ -3226,10 +3215,10 @@ public class AST2Tests extends AST2BaseTest {
|
|||
IASTTranslationUnit tu = parse(getAboveComment(), ParserLanguage.C, true, true);
|
||||
IASTDeclaration[] decls = tu.getDeclarations();
|
||||
|
||||
assertTrue(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration)decls[0]).getDeclSpecifier()).isComplex());
|
||||
assertEquals(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration)decls[0]).getDeclSpecifier()).getType(), IASTSimpleDeclSpecifier.t_float);
|
||||
assertTrue(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration)decls[1]).getDeclSpecifier()).isComplex());
|
||||
assertEquals(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration)decls[1]).getDeclSpecifier()).getType(), IASTSimpleDeclSpecifier.t_double);
|
||||
assertTrue(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration) decls[0]).getDeclSpecifier()).isComplex());
|
||||
assertEquals(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration) decls[0]).getDeclSpecifier()).getType(), IASTSimpleDeclSpecifier.t_float);
|
||||
assertTrue(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration) decls[1]).getDeclSpecifier()).isComplex());
|
||||
assertEquals(((ICASTSimpleDeclSpecifier)((IASTSimpleDeclaration) decls[1]).getDeclSpecifier()).getType(), IASTSimpleDeclSpecifier.t_double);
|
||||
}
|
||||
|
||||
// int foo();
|
||||
|
@ -3246,7 +3235,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
IVariable zoot = (IVariable) col.getName(4).resolveBinding();
|
||||
IType t = zoot.getType();
|
||||
assertTrue(t instanceof IBasicType);
|
||||
assertEquals(((IBasicType)t).getType(), IBasicType.t_int);
|
||||
assertEquals(((IBasicType) t).getType(), IBasicType.t_int);
|
||||
}
|
||||
|
||||
public void testBug95866() throws Exception {
|
||||
|
@ -3392,7 +3381,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
public void test1043290() throws Exception {
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(getAboveComment());
|
||||
IASTFunctionDefinition fd = (IASTFunctionDefinition) tu.getDeclarations()[0];
|
||||
IASTStatement [] statements = ((IASTCompoundStatement)fd.getBody()).getStatements();
|
||||
IASTStatement [] statements = ((IASTCompoundStatement) fd.getBody()).getStatements();
|
||||
IASTWhileStatement whileStmt = (IASTWhileStatement) statements[1];
|
||||
IASTLabelStatement labelStmt = (IASTLabelStatement) whileStmt.getBody();
|
||||
assertTrue(labelStmt.getNestedStatement() instanceof IASTExpressionStatement);
|
||||
|
@ -3765,8 +3754,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertEquals("method", methodc.getName());
|
||||
assertInstance(methodb, ICPPMethod.class);
|
||||
assertInstance(methodc, ICPPMethod.class);
|
||||
assertEquals("A", ((ICPPMethod)methodb).getClassOwner().getName());
|
||||
assertEquals("A", ((ICPPMethod)methodc).getClassOwner().getName());
|
||||
assertEquals("A", ((ICPPMethod) methodb).getClassOwner().getName());
|
||||
assertEquals("A", ((ICPPMethod) methodc).getClassOwner().getName());
|
||||
|
||||
tu = validateCopy(tu);
|
||||
}
|
||||
|
@ -3817,8 +3806,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertEquals("method", methodAA.getName());
|
||||
assertInstance(methodA, ICPPMethod.class);
|
||||
assertInstance(methodAA, ICPPMethod.class);
|
||||
assertEquals("A", ((ICPPMethod)methodA).getClassOwner().getName());
|
||||
assertEquals("AA", ((ICPPMethod)methodAA).getClassOwner().getName());
|
||||
assertEquals("A", ((ICPPMethod) methodA).getClassOwner().getName());
|
||||
assertEquals("AA", ((ICPPMethod) methodAA).getClassOwner().getName());
|
||||
|
||||
tu = validateCopy(tu);
|
||||
}
|
||||
|
@ -4217,7 +4206,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
CNameCollector col = new CNameCollector();
|
||||
tu.accept(col);
|
||||
for (Object o : col.nameList) {
|
||||
IASTName n = (IASTName)o;
|
||||
IASTName n = (IASTName) o;
|
||||
if (n.isReference() && "f1".equals(n.toString()))
|
||||
assertTrue(n.resolveBinding() instanceof IProblemBinding);
|
||||
else
|
||||
|
@ -4773,20 +4762,20 @@ public class AST2Tests extends AST2BaseTest {
|
|||
final String code = getAboveComment();
|
||||
{
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(code, ParserLanguage.C, true);
|
||||
IASTCompoundStatement body = (IASTCompoundStatement)((IASTFunctionDefinition)tu.getDeclarations()[0]).getBody();
|
||||
IASTSwitchStatement switchStmt = (IASTSwitchStatement)body.getStatements()[0];
|
||||
IASTCaseStatement caseStmt = (IASTCaseStatement)((IASTCompoundStatement)switchStmt.getBody()).getStatements()[0];
|
||||
IASTBinaryExpression binExpr = (IASTBinaryExpression)caseStmt.getExpression();
|
||||
IASTCompoundStatement body = (IASTCompoundStatement)((IASTFunctionDefinition) tu.getDeclarations()[0]).getBody();
|
||||
IASTSwitchStatement switchStmt = (IASTSwitchStatement) body.getStatements()[0];
|
||||
IASTCaseStatement caseStmt = (IASTCaseStatement)((IASTCompoundStatement) switchStmt.getBody()).getStatements()[0];
|
||||
IASTBinaryExpression binExpr = (IASTBinaryExpression) caseStmt.getExpression();
|
||||
assertTrue(binExpr.getOperator() == IASTBinaryExpression.op_ellipses);
|
||||
assertTrue(binExpr.getOperand1() instanceof IASTLiteralExpression);
|
||||
assertTrue(binExpr.getOperand2() instanceof IASTLiteralExpression);
|
||||
}
|
||||
{
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(code, ParserLanguage.CPP, true);
|
||||
IASTCompoundStatement body = (IASTCompoundStatement)((IASTFunctionDefinition)tu.getDeclarations()[0]).getBody();
|
||||
IASTSwitchStatement switchStmt = (IASTSwitchStatement)body.getStatements()[0];
|
||||
IASTCaseStatement caseStmt = (IASTCaseStatement)((IASTCompoundStatement)switchStmt.getBody()).getStatements()[0];
|
||||
IASTBinaryExpression binExpr = (IASTBinaryExpression)caseStmt.getExpression();
|
||||
IASTCompoundStatement body = (IASTCompoundStatement)((IASTFunctionDefinition) tu.getDeclarations()[0]).getBody();
|
||||
IASTSwitchStatement switchStmt = (IASTSwitchStatement) body.getStatements()[0];
|
||||
IASTCaseStatement caseStmt = (IASTCaseStatement)((IASTCompoundStatement) switchStmt.getBody()).getStatements()[0];
|
||||
IASTBinaryExpression binExpr = (IASTBinaryExpression) caseStmt.getExpression();
|
||||
assertTrue(binExpr.getOperator() == IASTBinaryExpression.op_ellipses);
|
||||
assertTrue(binExpr.getOperand1() instanceof IASTLiteralExpression);
|
||||
assertTrue(binExpr.getOperand2() instanceof IASTLiteralExpression);
|
||||
|
@ -4982,7 +4971,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
// VOID func(VOID) {
|
||||
// }
|
||||
public void testTypedefVoid_Bug221567() throws Exception {
|
||||
final boolean[] isCpps= {false, true};
|
||||
final boolean[] isCpps= { false, true };
|
||||
String code= getAboveComment();
|
||||
for (boolean isCpp : isCpps) {
|
||||
BindingAssertionHelper ba= new BindingAssertionHelper(code, isCpp);
|
||||
|
@ -4998,13 +4987,13 @@ public class AST2Tests extends AST2BaseTest {
|
|||
IType pt = pts[0];
|
||||
assertInstance(rt, ITypedef.class);
|
||||
assertInstance(pt, ITypedef.class);
|
||||
rt= ((ITypedef)rt).getType();
|
||||
pt= ((ITypedef)pt).getType();
|
||||
rt= ((ITypedef) rt).getType();
|
||||
pt= ((ITypedef) pt).getType();
|
||||
|
||||
assertTrue(rt instanceof IBasicType);
|
||||
assertEquals(IBasicType.t_void, ((IBasicType)rt).getType());
|
||||
assertEquals(IBasicType.t_void, ((IBasicType) rt).getType());
|
||||
assertTrue(pt instanceof IBasicType);
|
||||
assertEquals(IBasicType.t_void, ((IBasicType)pt).getType());
|
||||
assertEquals(IBasicType.t_void, ((IBasicType) pt).getType());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6317,8 +6306,8 @@ public class AST2Tests extends AST2BaseTest {
|
|||
* @return
|
||||
*/
|
||||
private IBasicType getTypeForDeclaration(IASTDeclaration[] declarations, int index) {
|
||||
IASTInitializer init = ((IASTSimpleDeclaration)declarations[index]).getDeclarators()[0].getInitializer();
|
||||
return (IBasicType)((IASTExpression)((IASTEqualsInitializer)init).getInitializerClause()).getExpressionType();
|
||||
IASTInitializer init = ((IASTSimpleDeclaration) declarations[index]).getDeclarators()[0].getInitializer();
|
||||
return (IBasicType)((IASTExpression)((IASTEqualsInitializer) init).getInitializerClause()).getExpressionType();
|
||||
}
|
||||
|
||||
// void test() {
|
||||
|
@ -6862,10 +6851,10 @@ public class AST2Tests extends AST2BaseTest {
|
|||
//
|
||||
public void testBug273797() throws Exception {
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(getAboveComment(), ParserLanguage.C);
|
||||
IASTName n = ((IASTSimpleDeclaration)tu.getDeclarations()[0]).getDeclarators()[0].getName();
|
||||
IASTName n = ((IASTSimpleDeclaration) tu.getDeclarations()[0]).getDeclarators()[0].getName();
|
||||
IVariable v = (IVariable) n.resolveBinding();
|
||||
|
||||
ICArrayType t = (ICArrayType)v.getType();
|
||||
ICArrayType t = (ICArrayType) v.getType();
|
||||
assertFalse(t.isConst());
|
||||
assertFalse(t.isRestrict());
|
||||
assertFalse(t.isVolatile());
|
||||
|
@ -6884,9 +6873,9 @@ public class AST2Tests extends AST2BaseTest {
|
|||
// }
|
||||
public void testBug278797() throws Exception {
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(getAboveComment(), ParserLanguage.C);
|
||||
IASTFunctionDefinition func = (IASTFunctionDefinition)tu.getDeclarations()[1];
|
||||
IASTExpressionStatement stmt = ((IASTExpressionStatement)((IASTCompoundStatement)func.getBody()).getStatements()[0]);
|
||||
IType t = ((IASTCastExpression)stmt.getExpression()).getOperand().getExpressionType();
|
||||
IASTFunctionDefinition func = (IASTFunctionDefinition) tu.getDeclarations()[1];
|
||||
IASTExpressionStatement stmt = ((IASTExpressionStatement)((IASTCompoundStatement) func.getBody()).getStatements()[0]);
|
||||
IType t = ((IASTCastExpression) stmt.getExpression()).getOperand().getExpressionType();
|
||||
assertNotNull(t);
|
||||
assertTrue(t instanceof IEnumeration);
|
||||
}
|
||||
|
@ -6902,34 +6891,34 @@ public class AST2Tests extends AST2BaseTest {
|
|||
//int a[2][3] = {{1,2,3},{4,5,6}};
|
||||
{
|
||||
IASTDeclaration d = tu.getDeclarations()[0];
|
||||
IBinding b = ((IASTSimpleDeclaration)d).getDeclarators()[0].getName().resolveBinding();
|
||||
IType t = ((IVariable)b).getType();
|
||||
IBinding b = ((IASTSimpleDeclaration) d).getDeclarators()[0].getName().resolveBinding();
|
||||
IType t = ((IVariable) b).getType();
|
||||
assertTrue(t instanceof IArrayType);
|
||||
IArrayType at1 = (IArrayType)t;
|
||||
IArrayType at1 = (IArrayType) t;
|
||||
IASTExpression size1 = at1.getArraySizeExpression();
|
||||
assertTrue(at1.getType() instanceof IArrayType);
|
||||
IArrayType at2 = (IArrayType) at1.getType();
|
||||
IASTExpression size2 = at2.getArraySizeExpression();
|
||||
assertTrue(size1 instanceof IASTLiteralExpression);
|
||||
assertEquals(((IASTLiteralExpression)size1).getValue()[0], '2');
|
||||
assertEquals(((IASTLiteralExpression) size1).getValue()[0], '2');
|
||||
assertTrue(size2 instanceof IASTLiteralExpression);
|
||||
assertEquals(((IASTLiteralExpression)size2).getValue()[0], '3');
|
||||
assertEquals(((IASTLiteralExpression) size2).getValue()[0], '3');
|
||||
}
|
||||
//int b[3][2] = {{1,2},{3,4},{5,6}};
|
||||
{
|
||||
IASTDeclaration d = tu.getDeclarations()[1];
|
||||
IBinding b = ((IASTSimpleDeclaration)d).getDeclarators()[0].getName().resolveBinding();
|
||||
IType t = ((IVariable)b).getType();
|
||||
IBinding b = ((IASTSimpleDeclaration) d).getDeclarators()[0].getName().resolveBinding();
|
||||
IType t = ((IVariable) b).getType();
|
||||
assertTrue(t instanceof IArrayType);
|
||||
IArrayType at1 = (IArrayType)t;
|
||||
IArrayType at1 = (IArrayType) t;
|
||||
IASTExpression size1 = at1.getArraySizeExpression();
|
||||
assertTrue(at1.getType() instanceof IArrayType);
|
||||
IArrayType at2 = (IArrayType) at1.getType();
|
||||
IASTExpression size2 = at2.getArraySizeExpression();
|
||||
assertTrue(size1 instanceof IASTLiteralExpression);
|
||||
assertEquals(((IASTLiteralExpression)size1).getValue()[0], '3');
|
||||
assertEquals(((IASTLiteralExpression) size1).getValue()[0], '3');
|
||||
assertTrue(size2 instanceof IASTLiteralExpression);
|
||||
assertEquals(((IASTLiteralExpression)size2).getValue()[0], '2');
|
||||
assertEquals(((IASTLiteralExpression) size2).getValue()[0], '2');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6962,7 +6951,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
public void testBug295851() throws Exception {
|
||||
for (ParserLanguage lang : ParserLanguage.values()) {
|
||||
IASTTranslationUnit tu = parseAndCheckBindings(getAboveComment(), lang);
|
||||
IASTEnumerationSpecifier enumSpec = (IASTEnumerationSpecifier)((IASTSimpleDeclaration)tu.getDeclarations()[0]).getDeclSpecifier();
|
||||
IASTEnumerationSpecifier enumSpec = (IASTEnumerationSpecifier)((IASTSimpleDeclaration) tu.getDeclarations()[0]).getDeclSpecifier();
|
||||
IEnumerator enumeratorBinding = (IEnumerator) enumSpec.getEnumerators()[0].getName().resolveBinding();
|
||||
IValue value = enumeratorBinding.getValue();
|
||||
assertEquals(2, value.numericalValue().longValue());
|
||||
|
@ -6984,20 +6973,20 @@ public class AST2Tests extends AST2BaseTest {
|
|||
// }
|
||||
public void testBindingsOnFields() throws Exception {
|
||||
IASTTranslationUnit tu = parse(getAboveComment(), ParserLanguage.C, false);
|
||||
IASTCompoundStatement bodyStmt = (IASTCompoundStatement)((IASTFunctionDefinition)tu.getDeclarations()[2]).getBody();
|
||||
IASTCompoundStatement bodyStmt = (IASTCompoundStatement)((IASTFunctionDefinition) tu.getDeclarations()[2]).getBody();
|
||||
|
||||
// Get the IFields bindings from the type used in the declaration of structure
|
||||
IASTName n = ((IASTSimpleDeclaration)((IASTDeclarationStatement)bodyStmt.getStatements()[0]).getDeclaration()).getDeclarators()[0].getName();
|
||||
ICompositeType t = (ICompositeType)((IVariable)n.resolveBinding()).getType();
|
||||
IASTName n = ((IASTSimpleDeclaration)((IASTDeclarationStatement) bodyStmt.getStatements()[0]).getDeclaration()).getDeclarators()[0].getName();
|
||||
ICompositeType t = (ICompositeType)((IVariable) n.resolveBinding()).getType();
|
||||
IField[] fields = t.getFields();
|
||||
assertTrue(fields.length == 2);
|
||||
|
||||
// Get the IField for the first assignment
|
||||
IASTFieldReference ref1 = (IASTFieldReference)((IASTBinaryExpression)((IASTExpressionStatement)bodyStmt.getStatements()[1]).getExpression()).getOperand1();
|
||||
IASTFieldReference ref1 = (IASTFieldReference)((IASTBinaryExpression)((IASTExpressionStatement) bodyStmt.getStatements()[1]).getExpression()).getOperand1();
|
||||
IBinding field1 = ref1.getFieldName().resolveBinding();
|
||||
|
||||
// Get the IField for the second assignment
|
||||
IASTFieldReference ref2 = (IASTFieldReference)((IASTBinaryExpression)((IASTExpressionStatement)bodyStmt.getStatements()[2]).getExpression()).getOperand1();
|
||||
IASTFieldReference ref2 = (IASTFieldReference)((IASTBinaryExpression)((IASTExpressionStatement) bodyStmt.getStatements()[2]).getExpression()).getOperand1();
|
||||
IBinding field2 = ref2.getFieldName().resolveBinding();
|
||||
|
||||
// Compare the IField from the type and the assignments
|
||||
|
@ -7045,7 +7034,7 @@ public class AST2Tests extends AST2BaseTest {
|
|||
IASTExpression owner = ((IASTFieldReference) op1).getFieldOwner();
|
||||
IType t = owner.getExpressionType();
|
||||
assertTrue(t instanceof ICompositeType);
|
||||
assertEquals("s",((ICompositeType)t).getName());
|
||||
assertEquals("s", ((ICompositeType) t).getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7347,7 +7336,6 @@ public class AST2Tests extends AST2BaseTest {
|
|||
assertFalse(((IASTPreprocessorIfdefStatement) stmts[1]).taken());
|
||||
}
|
||||
|
||||
|
||||
// void a() {
|
||||
// typedef float size_t;
|
||||
// sizeof(10); // wrong - getExpressionType returns float
|
||||
|
|
|
@ -13,8 +13,8 @@ package org.eclipse.cdt.core.settings.model.extension;
|
|||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
|
||||
public abstract class CLanguageData extends CDataObject {
|
||||
protected CLanguageData() {
|
||||
|
||||
protected CLanguageData() {
|
||||
}
|
||||
|
||||
// public abstract CDataObject[] getChildrenOfKind(int kind);
|
||||
|
@ -52,7 +52,7 @@ public abstract class CLanguageData extends CDataObject {
|
|||
|
||||
public abstract void setSourceExtensions(String exts[]);
|
||||
|
||||
public boolean containsDiscoveredScannerInfo(){
|
||||
public boolean containsDiscoveredScannerInfo() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,21 +62,21 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
private boolean fNeedsPersistance;
|
||||
private boolean fIsCfgModified;
|
||||
|
||||
CfgIdPair(CfgIdPair base){
|
||||
CfgIdPair(CfgIdPair base) {
|
||||
fId = base.fId;
|
||||
fPersistanceName = base.fPersistanceName;
|
||||
}
|
||||
|
||||
CfgIdPair(QualifiedName persistanceName){
|
||||
CfgIdPair(QualifiedName persistanceName) {
|
||||
fPersistanceName = persistanceName;
|
||||
}
|
||||
|
||||
public String getId(){
|
||||
if(fId == null){
|
||||
public String getId() {
|
||||
if (fId == null) {
|
||||
fId = load();
|
||||
if(fId == null){
|
||||
if (fId == null) {
|
||||
fId = getFirstCfgId();
|
||||
if(fId != null){
|
||||
if (fId != null) {
|
||||
fNeedsPersistance = true;
|
||||
}
|
||||
}
|
||||
|
@ -85,13 +85,13 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
public ICConfigurationDescription getConfiguration() {
|
||||
if(fCfg == null){
|
||||
if (fCfg == null) {
|
||||
String id = getId();
|
||||
if(id != null){
|
||||
if (id != null) {
|
||||
fCfg = getConfigurationById(id);
|
||||
if(fCfg == null){
|
||||
if (fCfg == null) {
|
||||
fId = getFirstCfgId();
|
||||
if(fId != null){
|
||||
if (fId != null) {
|
||||
fCfg = getConfigurationById(fId);
|
||||
fNeedsPersistance = true;
|
||||
}
|
||||
|
@ -101,11 +101,11 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
return fCfg;
|
||||
}
|
||||
|
||||
public void setConfiguration(ICConfigurationDescription cfg){
|
||||
if(cfg.getProjectDescription() != CProjectDescription.this)
|
||||
public void setConfiguration(ICConfigurationDescription cfg) {
|
||||
if (cfg.getProjectDescription() != CProjectDescription.this)
|
||||
throw new IllegalArgumentException();
|
||||
|
||||
if(cfg.getId().equals(getId()))
|
||||
if (cfg.getId().equals(getId()))
|
||||
return;
|
||||
|
||||
fCfg = cfg;
|
||||
|
@ -114,11 +114,11 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
fNeedsPersistance = true;
|
||||
}
|
||||
|
||||
public void configurationRemoved(ICConfigurationDescription cfg){
|
||||
if(cfg.getProjectDescription() != CProjectDescription.this)
|
||||
public void configurationRemoved(ICConfigurationDescription cfg) {
|
||||
if (cfg.getProjectDescription() != CProjectDescription.this)
|
||||
throw new IllegalArgumentException();
|
||||
|
||||
if(!cfg.getId().equals(getId()))
|
||||
if (!cfg.getId().equals(getId()))
|
||||
return;
|
||||
|
||||
fIsCfgModified = true;
|
||||
|
@ -126,7 +126,7 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
getConfiguration();
|
||||
}
|
||||
|
||||
private String load(){
|
||||
private String load() {
|
||||
try {
|
||||
return getProject().getPersistentProperty(fPersistanceName);
|
||||
} catch (CoreException e) {
|
||||
|
@ -135,8 +135,8 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
return null;
|
||||
}
|
||||
|
||||
private boolean store(String oldId, boolean force){
|
||||
if(force || fIsCfgModified || fNeedsPersistance || oldId == null || !oldId.equals(fId)){
|
||||
private boolean store(String oldId, boolean force) {
|
||||
if (force || fIsCfgModified || fNeedsPersistance || oldId == null || !oldId.equals(fId)) {
|
||||
try {
|
||||
getProject().setPersistentProperty(fPersistanceName, fId);
|
||||
fIsCfgModified = false;
|
||||
|
@ -162,7 +162,7 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
fIsCreating = isCreating;
|
||||
ICStorageElement el = null;
|
||||
CProjectDescriptionManager mngr = CProjectDescriptionManager.getInstance();
|
||||
if(loading){
|
||||
if (loading) {
|
||||
Map<String, ICStorageElement> cfgStorMap = mngr.createCfgStorages(this);
|
||||
|
||||
for (ICStorageElement sel : cfgStorMap.values()) {
|
||||
|
@ -174,22 +174,22 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
fPrefs = new CProjectDescriptionPreferences(el,
|
||||
(CProjectDescriptionPreferences)mngr.getProjectDescriptionWorkspacePreferences(false),
|
||||
(CProjectDescriptionPreferences) mngr.getProjectDescriptionWorkspacePreferences(false),
|
||||
false);
|
||||
|
||||
fPropertiesMap = new HashMap<QualifiedName, Object>();
|
||||
}
|
||||
|
||||
public void updateProject(IProject project){
|
||||
public void updateProject(IProject project) {
|
||||
fProject = project;
|
||||
}
|
||||
|
||||
public void loadDatas(){
|
||||
if(!fIsReadOnly || !fIsLoading)
|
||||
public void loadDatas() {
|
||||
if (!fIsReadOnly || !fIsLoading)
|
||||
return;
|
||||
|
||||
for(Iterator<ICConfigurationDescription> iter = fCfgMap.values().iterator(); iter.hasNext();){
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache)iter.next();
|
||||
for (Iterator<ICConfigurationDescription> iter = fCfgMap.values().iterator(); iter.hasNext();) {
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache) iter.next();
|
||||
try {
|
||||
cache.loadData();
|
||||
} catch (CoreException e) {
|
||||
|
@ -203,15 +203,15 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
// fIsLoading = false;
|
||||
}
|
||||
|
||||
public boolean applyDatas(SettingsContext context){
|
||||
if(!fIsReadOnly || !fIsApplying)
|
||||
public boolean applyDatas(SettingsContext context) {
|
||||
if (!fIsReadOnly || !fIsApplying)
|
||||
return false;
|
||||
|
||||
boolean modified = false;
|
||||
for (Iterator<ICConfigurationDescription> iter = fCfgMap.values().iterator(); iter.hasNext();) {
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache)iter.next();
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache) iter.next();
|
||||
try {
|
||||
if(cache.applyData(context))
|
||||
if (cache.applyData(context))
|
||||
modified = true;
|
||||
} catch (CoreException e) {
|
||||
CCorePlugin.log(e);
|
||||
|
@ -233,7 +233,7 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
* setModified (false)
|
||||
* set the ICSettingsStorage to readonly
|
||||
*/
|
||||
public void doneApplying(){
|
||||
public void doneApplying() {
|
||||
doneInitializing();
|
||||
fIsApplying = false;
|
||||
|
||||
|
@ -246,31 +246,31 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
setModified(false);
|
||||
}
|
||||
|
||||
public void doneLoading(){
|
||||
public void doneLoading() {
|
||||
doneInitializing();
|
||||
fIsLoading = false;
|
||||
}
|
||||
|
||||
public void setLoading(boolean loading){
|
||||
public void setLoading(boolean loading) {
|
||||
fIsLoading = loading;
|
||||
}
|
||||
|
||||
private void doneInitializing(){
|
||||
private void doneInitializing() {
|
||||
for (ICConfigurationDescription cfg : fCfgMap.values()) {
|
||||
// FIXME How and why are we down casting to a CConfigurationDescriptionCache. Comments, please!
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache)cfg;
|
||||
CConfigurationDescriptionCache cache = (CConfigurationDescriptionCache) cfg;
|
||||
cache.doneInitialization();
|
||||
}
|
||||
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
fPrefs.setReadOnly(true);
|
||||
}
|
||||
|
||||
public boolean isLoading(){
|
||||
public boolean isLoading() {
|
||||
return fIsLoading;
|
||||
}
|
||||
|
||||
public boolean isApplying(){
|
||||
public boolean isApplying() {
|
||||
return fIsApplying;
|
||||
}
|
||||
|
||||
|
@ -296,30 +296,30 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
fPrefs = new CProjectDescriptionPreferences(base.fPrefs, (CProjectDescriptionPreferences)CProjectDescriptionManager.getInstance().getProjectDescriptionWorkspacePreferences(false), false);
|
||||
|
||||
for(Iterator<ICConfigurationDescription> iter = base.fCfgMap.values().iterator(); iter.hasNext();){
|
||||
for (Iterator<ICConfigurationDescription> iter = base.fCfgMap.values().iterator(); iter.hasNext();) {
|
||||
try {
|
||||
IInternalCCfgInfo cfgDes = (IInternalCCfgInfo)iter.next();
|
||||
if(fIsReadOnly){
|
||||
IInternalCCfgInfo cfgDes = (IInternalCCfgInfo) iter.next();
|
||||
if (fIsReadOnly) {
|
||||
CConfigurationData baseData = cfgDes.getConfigurationData(false);
|
||||
CConfigurationDescriptionCache baseCache = null;
|
||||
if(baseData instanceof CConfigurationDescriptionCache){
|
||||
baseCache = (CConfigurationDescriptionCache)baseData;
|
||||
if (baseData instanceof CConfigurationDescriptionCache) {
|
||||
baseCache = (CConfigurationDescriptionCache) baseData;
|
||||
baseData = baseCache.getConfigurationData();
|
||||
}
|
||||
CConfigurationDescriptionCache cache = new CConfigurationDescriptionCache((ICConfigurationDescription)cfgDes, baseData, baseCache, cfgDes.getSpecSettings(), this, null);
|
||||
CConfigurationDescriptionCache cache = new CConfigurationDescriptionCache((ICConfigurationDescription) cfgDes, baseData, baseCache, cfgDes.getSpecSettings(), this, null);
|
||||
configurationCreated(cache);
|
||||
} else {
|
||||
CConfigurationData baseData = cfgDes.getConfigurationData(false);
|
||||
CConfigurationDescription cfg = new CConfigurationDescription(baseData, this);
|
||||
configurationCreated(cfg);
|
||||
}
|
||||
} catch (CoreException e){
|
||||
} catch (CoreException e) {
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
HashMap<QualifiedName, Object> cloneMap = (HashMap<QualifiedName, Object>)base.fPropertiesMap.clone();
|
||||
HashMap<QualifiedName, Object> cloneMap = (HashMap<QualifiedName, Object>) base.fPropertiesMap.clone();
|
||||
fPropertiesMap = cloneMap;
|
||||
}
|
||||
|
||||
|
@ -328,14 +328,13 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
* This occurs during the SetCProjectDescription Operation
|
||||
*/
|
||||
void switchToCachedConfigurationDescriptions() throws CoreException {
|
||||
|
||||
for (Map.Entry<String, ICConfigurationDescription> e : fCfgMap.entrySet()) {
|
||||
if (e.getValue() instanceof CConfigurationDescription) {
|
||||
CConfigurationDescription cfgDes = (CConfigurationDescription)e.getValue();
|
||||
CConfigurationData baseData = ((IInternalCCfgInfo)cfgDes).getConfigurationData(false);
|
||||
CConfigurationDescription cfgDes = (CConfigurationDescription) e.getValue();
|
||||
CConfigurationData baseData = ((IInternalCCfgInfo) cfgDes).getConfigurationData(false);
|
||||
CConfigurationDescriptionCache baseCache = null;
|
||||
if(baseData instanceof CConfigurationDescriptionCache){
|
||||
baseCache = (CConfigurationDescriptionCache)baseData;
|
||||
if (baseData instanceof CConfigurationDescriptionCache) {
|
||||
baseCache = (CConfigurationDescriptionCache) baseData;
|
||||
baseData = baseCache.getConfigurationData();
|
||||
}
|
||||
CConfigurationDescriptionCache cache = new CConfigurationDescriptionCache(cfgDes, baseData, baseCache,
|
||||
|
@ -345,14 +344,14 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
}
|
||||
|
||||
void configurationCreated(ICConfigurationDescription des){
|
||||
void configurationCreated(ICConfigurationDescription des) {
|
||||
fCfgMap.put(des.getId(), des);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigurationDescription createConfiguration(String id, String name,
|
||||
ICConfigurationDescription base) throws CoreException{
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
CConfigurationDescription cfg = new CConfigurationDescription(id, name, base, this);
|
||||
configurationCreated(cfg);
|
||||
|
@ -364,8 +363,8 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
return fActiveCfgInfo.getConfiguration();
|
||||
}
|
||||
|
||||
private String getFirstCfgId(){
|
||||
if(!fCfgMap.isEmpty()){
|
||||
private String getFirstCfgId() {
|
||||
if (!fCfgMap.isEmpty()) {
|
||||
return fCfgMap.keySet().iterator().next();
|
||||
}
|
||||
return null;
|
||||
|
@ -378,9 +377,9 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public ICConfigurationDescription getConfigurationByName(String name) {
|
||||
for(Iterator<ICConfigurationDescription> iter = fCfgMap.values().iterator(); iter.hasNext();){
|
||||
for (Iterator<ICConfigurationDescription> iter = fCfgMap.values().iterator(); iter.hasNext();) {
|
||||
ICConfigurationDescription cfg = iter.next();
|
||||
if(name.equals(cfg.getName()))
|
||||
if (name.equals(cfg.getName()))
|
||||
return cfg;
|
||||
}
|
||||
return null;
|
||||
|
@ -393,18 +392,17 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void removeConfiguration(String name) throws WriteAccessException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
|
||||
|
||||
CConfigurationDescription cfgDes = (CConfigurationDescription)getConfigurationByName(name);
|
||||
if(cfgDes != null){
|
||||
CConfigurationDescription cfgDes = (CConfigurationDescription) getConfigurationByName(name);
|
||||
if (cfgDes != null) {
|
||||
cfgDes.removeConfiguration();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void configurationRemoved(CConfigurationDescription des){
|
||||
void configurationRemoved(CConfigurationDescription des) {
|
||||
fCfgMap.remove(des.getId());
|
||||
fIsModified = true;
|
||||
|
||||
|
@ -414,25 +412,24 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void removeConfiguration(ICConfigurationDescription cfg) throws WriteAccessException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
|
||||
((CConfigurationDescription)cfg).removeConfiguration();
|
||||
((CConfigurationDescription) cfg).removeConfiguration();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setActiveConfiguration(
|
||||
ICConfigurationDescription cfg) throws WriteAccessException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
if(cfg == null)
|
||||
if (cfg == null)
|
||||
throw new NullPointerException();
|
||||
|
||||
fActiveCfgInfo.setConfiguration(cfg);
|
||||
|
||||
if(getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
if (getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
fSettingCfgInfo.setConfiguration(cfg);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -492,10 +489,10 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void updateChild(CDataProxy child, boolean write) {
|
||||
if(write){
|
||||
if (write) {
|
||||
try {
|
||||
String oldId = child.getId();
|
||||
CConfigurationDescription cfgDes = ((CConfigurationDescription)child);
|
||||
CConfigurationDescription cfgDes = ((CConfigurationDescription) child);
|
||||
cfgDes.doWritable();
|
||||
updateMap(cfgDes, oldId);
|
||||
} catch (CoreException e) {
|
||||
|
@ -504,8 +501,8 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
}
|
||||
|
||||
void updateMap(CConfigurationDescription des, String oldId){
|
||||
if(!oldId.equals(des.getId())){
|
||||
void updateMap(CConfigurationDescription des, String oldId) {
|
||||
if (!oldId.equals(des.getId())) {
|
||||
fCfgMap.remove(oldId);
|
||||
fCfgMap.put(des.getId(), des);
|
||||
}
|
||||
|
@ -515,26 +512,26 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
if (fRootStorageElement == null)
|
||||
throw ExceptionFactory.createCoreException("CProjectDescription ICStorageElement == null"); //$NON-NLS-1$
|
||||
|
||||
// if(fRootStorageElement == null){
|
||||
// if (fRootStorageElement == null) {
|
||||
// fRootStorageElement = CProjectDescriptionManager.getInstance().createStorage(fProject, true, true, isReadOnly());
|
||||
// }
|
||||
return fRootStorageElement;
|
||||
}
|
||||
|
||||
// ICStorageElement doGetCachedRootStorageElement(){
|
||||
// ICStorageElement doGetCachedRootStorageElement() {
|
||||
// return fRootStorageElement;
|
||||
// }
|
||||
|
||||
ICSettingsStorage getStorageBase() throws CoreException{
|
||||
if(fStorage == null)
|
||||
// fStorage = new CStorage((InternalXmlStorageElement)getRootStorageElement());
|
||||
if (fStorage == null)
|
||||
// fStorage = new CStorage((InternalXmlStorageElement) getRootStorageElement());
|
||||
throw ExceptionFactory.createCoreException("CProjectDescription ICSettingsStorage == null"); //$NON-NLS-1$
|
||||
return fStorage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigurationDescription createConfiguration(String buildSystemId, CConfigurationData data) throws CoreException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
CConfigurationDescription cfg = new CConfigurationDescription(data, buildSystemId, this);
|
||||
configurationCreated(cfg);
|
||||
|
@ -542,7 +539,7 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
public CConfigurationDescription createConvertedConfiguration(String id, String name, ICStorageElement el) throws CoreException{
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
CConfigurationDescription cfg = new CConfigurationDescription(id, name, el, this);
|
||||
configurationCreated(cfg);
|
||||
|
@ -550,47 +547,48 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
boolean needsDescriptionPersistence() {
|
||||
if(fIsModified)
|
||||
if (fIsModified)
|
||||
return true;
|
||||
|
||||
if(fPrefs.isModified())
|
||||
if (fPrefs.isModified())
|
||||
return true;
|
||||
|
||||
if(fStorage.isModified())
|
||||
if (fStorage.isModified())
|
||||
return true;
|
||||
|
||||
for(ICConfigurationDescription cfgDes : fCfgMap.values())
|
||||
if(cfgDes.isModified())
|
||||
for (ICConfigurationDescription cfgDes : fCfgMap.values()) {
|
||||
if (cfgDes.isModified())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModified() {
|
||||
if(needsDescriptionPersistence())
|
||||
if (needsDescriptionPersistence())
|
||||
return true;
|
||||
|
||||
if(needsActiveCfgPersistence())
|
||||
if (needsActiveCfgPersistence())
|
||||
return true;
|
||||
|
||||
if(needsSettingCfgPersistence())
|
||||
if (needsSettingCfgPersistence())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void setModified(boolean modified){
|
||||
private void setModified(boolean modified) {
|
||||
fIsModified = modified;
|
||||
|
||||
if(!modified){
|
||||
if (!modified) {
|
||||
fActiveCfgInfo.fIsCfgModified = false;
|
||||
|
||||
fSettingCfgInfo.fIsCfgModified = false;
|
||||
|
||||
fPrefs.setModified(false);
|
||||
|
||||
//no need to do that for config cache since they always maintain the "isModified == false"
|
||||
// no need to do that for config cache since they always maintain the "isModified == false"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -614,8 +612,8 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
@Override
|
||||
public ICConfigurationDescription getDefaultSettingConfiguration(){
|
||||
if(getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
public ICConfigurationDescription getDefaultSettingConfiguration() {
|
||||
if (getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
return getActiveConfiguration();
|
||||
|
||||
return fSettingCfgInfo.getConfiguration();
|
||||
|
@ -623,14 +621,14 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void setDefaultSettingConfiguration(ICConfigurationDescription cfg) throws WriteAccessException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
if(cfg == null)
|
||||
if (cfg == null)
|
||||
throw new NullPointerException();
|
||||
|
||||
fSettingCfgInfo.setConfiguration(cfg);
|
||||
|
||||
if(getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
if (getConfigurationRelations() == CONFIGS_LINK_SETTINGS_AND_ACTIVE)
|
||||
fActiveCfgInfo.setConfiguration(cfg);
|
||||
}
|
||||
|
||||
|
@ -641,10 +639,11 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void setSessionProperty(QualifiedName name, Object value) {
|
||||
if(value != null)
|
||||
if (value != null) {
|
||||
fPropertiesMap.put(name, value);
|
||||
else
|
||||
} else {
|
||||
fPropertiesMap.remove(name);
|
||||
}
|
||||
|
||||
fIsModified = true;
|
||||
}
|
||||
|
@ -654,41 +653,41 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
getStorageBase().removeStorage(id);
|
||||
}
|
||||
|
||||
void switchToCachedAppliedData(CProjectDescription appliedCache){
|
||||
if(fIsReadOnly)
|
||||
void switchToCachedAppliedData(CProjectDescription appliedCache) {
|
||||
if (fIsReadOnly)
|
||||
return;
|
||||
|
||||
ICConfigurationDescription[] cfgs = appliedCache.getConfigurations();
|
||||
for(int i = 0; i < cfgs.length; i++){
|
||||
CConfigurationDescriptionCache cfgCache = (CConfigurationDescriptionCache)cfgs[i];
|
||||
CConfigurationDescription des = (CConfigurationDescription)getChildSettingById(cfgCache.getId());
|
||||
if(des != null){
|
||||
for (int i = 0; i < cfgs.length; i++) {
|
||||
CConfigurationDescriptionCache cfgCache = (CConfigurationDescriptionCache) cfgs[i];
|
||||
CConfigurationDescription des = (CConfigurationDescription) getChildSettingById(cfgCache.getId());
|
||||
if (des != null) {
|
||||
des.setData(cfgCache);
|
||||
// ICResourceDescription rcDes = des.getResourceDescription(new Path("dd"), false);
|
||||
// rcDes = des.getResourceDescription(new Path("dd"), false);
|
||||
// ICBuildSetting bs = des.getBuildSetting();
|
||||
// ICLanguageSetting lss[] = ((ICFolderDescription)rcDes).getLanguageSettings();
|
||||
// ICLanguageSetting lss[] = ((ICFolderDescription) rcDes).getLanguageSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean checkPersistActiveCfg(String oldId, boolean force){
|
||||
boolean checkPersistActiveCfg(String oldId, boolean force) {
|
||||
return fActiveCfgInfo.store(oldId, force);
|
||||
}
|
||||
|
||||
boolean checkPersistSettingCfg(String oldId, boolean force){
|
||||
boolean checkPersistSettingCfg(String oldId, boolean force) {
|
||||
return fSettingCfgInfo.store(oldId, force);
|
||||
}
|
||||
|
||||
boolean needsActiveCfgPersistence(){
|
||||
boolean needsActiveCfgPersistence() {
|
||||
return fActiveCfgInfo.fIsCfgModified;
|
||||
}
|
||||
|
||||
boolean needsSettingCfgPersistence(){
|
||||
boolean needsSettingCfgPersistence() {
|
||||
return fSettingCfgInfo.fIsCfgModified;
|
||||
}
|
||||
|
||||
CProjectDescriptionPreferences getPreferences(){
|
||||
CProjectDescriptionPreferences getPreferences() {
|
||||
return fPrefs;
|
||||
}
|
||||
|
||||
|
@ -719,10 +718,10 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
|
||||
@Override
|
||||
public void setCdtProjectCreated() {
|
||||
if(!fIsCreating)
|
||||
if (!fIsCreating)
|
||||
return;
|
||||
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
|
||||
fIsCreating = false;
|
||||
|
@ -730,11 +729,9 @@ public class CProjectDescription implements ICProjectDescription, ICDataProxyCon
|
|||
}
|
||||
|
||||
public void touch() throws WriteAccessException {
|
||||
if(fIsReadOnly)
|
||||
if (fIsReadOnly)
|
||||
throw ExceptionFactory.createIsReadOnlyException();
|
||||
|
||||
fIsModified = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ package org.eclipse.cdt.core.dom.ast;
|
|||
* @since 5.0
|
||||
*/
|
||||
public interface IASTNodeSelector {
|
||||
|
||||
/**
|
||||
* Returns the name for the exact given range, or <code>null</code> if there is no such node.
|
||||
* Will not return an implicit name.
|
||||
|
|
|
@ -22,7 +22,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTypeParameter;
|
|||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface IType extends Cloneable {
|
||||
public static final IType[] EMPTY_TYPE_ARRAY = new IType[0];
|
||||
public static final IType[] EMPTY_TYPE_ARRAY = {};
|
||||
public static final ASTTypeMatcher TYPE_MATCHER = new ASTTypeMatcher();
|
||||
|
||||
public Object clone();
|
||||
|
|
|
@ -15,7 +15,6 @@ package org.eclipse.cdt.core.dom.ast;
|
|||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ITypedef extends IBinding, IType {
|
||||
|
||||
/**
|
||||
* Returns the type that this thing is a typedef of
|
||||
*/
|
||||
|
|
|
@ -19,9 +19,8 @@ import org.eclipse.cdt.core.dom.ast.IType;
|
|||
* @noimplement This interface is not intended to be implemented by clients.
|
||||
*/
|
||||
public interface ICPPPointerToMemberType extends IPointerType {
|
||||
|
||||
/**
|
||||
* Get the class to whose members this points to.
|
||||
* Returns the class to whose members this points to.
|
||||
* @return Either ICPPClassType or ICPPTeplateTypeParameter.
|
||||
*/
|
||||
public IType getMemberOfClass();
|
||||
|
|
|
@ -85,7 +85,7 @@ public abstract class ArithmeticConversion {
|
|||
|
||||
private boolean isArithmeticOrUnscopedEnum(IType op1) {
|
||||
if (op1 instanceof IBasicType) {
|
||||
final Kind kind = ((IBasicType)op1).getKind();
|
||||
final Kind kind = ((IBasicType) op1).getKind();
|
||||
switch (kind) {
|
||||
case eUnspecified:
|
||||
case eVoid:
|
||||
|
@ -190,7 +190,8 @@ public abstract class ArithmeticConversion {
|
|||
return signedType;
|
||||
}
|
||||
|
||||
return createBasicType(signedType.getKind(), changeModifier(signedType.getModifiers(), IBasicType.IS_SIGNED, IBasicType.IS_UNSIGNED));
|
||||
return createBasicType(signedType.getKind(),
|
||||
changeModifier(signedType.getModifiers(), IBasicType.IS_SIGNED, IBasicType.IS_UNSIGNED));
|
||||
}
|
||||
|
||||
private IBasicType promote(IType type, Domain domain) {
|
||||
|
@ -331,21 +332,21 @@ public abstract class ArithmeticConversion {
|
|||
return false;
|
||||
|
||||
if (basicTarget.isShort()) {
|
||||
return n < (Short.MAX_VALUE + 1L)*2;
|
||||
return n < (Short.MAX_VALUE + 1L) * 2;
|
||||
}
|
||||
// Can't represent long longs with java longs.
|
||||
if (basicTarget.isLong() || basicTarget.isLongLong()) {
|
||||
return true;
|
||||
}
|
||||
return n < (Integer.MAX_VALUE + 1L)*2;
|
||||
return n < (Integer.MAX_VALUE + 1L) * 2;
|
||||
|
||||
case eFloat:
|
||||
float f= n;
|
||||
return (long)f == n;
|
||||
return (long) f == n;
|
||||
|
||||
case eDouble:
|
||||
double d= n;
|
||||
return (long)d == n;
|
||||
return (long) d == n;
|
||||
|
||||
default:
|
||||
return false;
|
||||
|
|
|
@ -54,11 +54,7 @@ public class CASTBinaryExpression extends ASTNode
|
|||
copy.op = op;
|
||||
copy.setOperand1(operand1 == null ? null : operand1.copy(style));
|
||||
copy.setOperand2(operand2 == null ? null : operand2.copy(style));
|
||||
copy.setOffsetAndLength(this);
|
||||
if (style == CopyStyle.withLocations) {
|
||||
copy.setCopyLocation(this);
|
||||
}
|
||||
return copy;
|
||||
return copy(copy, style);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -118,9 +114,9 @@ public class CASTBinaryExpression extends ASTNode
|
|||
|
||||
if (action.shouldVisitExpressions) {
|
||||
switch (action.visit(this)) {
|
||||
case ASTVisitor.PROCESS_ABORT : return false;
|
||||
case ASTVisitor.PROCESS_SKIP : return true;
|
||||
default : break;
|
||||
case ASTVisitor.PROCESS_ABORT: return false;
|
||||
case ASTVisitor.PROCESS_SKIP: return true;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -147,7 +143,7 @@ public class CASTBinaryExpression extends ASTNode
|
|||
|
||||
public static boolean acceptWithoutRecursion(IASTBinaryExpression bexpr, ASTVisitor action) {
|
||||
N stack= new N(bexpr);
|
||||
while(stack != null) {
|
||||
while (stack != null) {
|
||||
IASTBinaryExpression expr= stack.fExpression;
|
||||
if (stack.fState == 0) {
|
||||
if (action.shouldVisitExpressions) {
|
||||
|
|
|
@ -30,7 +30,6 @@ public class CASTUnaryExpression extends ASTNode implements IASTUnaryExpression,
|
|||
private int operator;
|
||||
private IASTExpression operand;
|
||||
|
||||
|
||||
public CASTUnaryExpression() {
|
||||
}
|
||||
|
||||
|
@ -46,13 +45,9 @@ public class CASTUnaryExpression extends ASTNode implements IASTUnaryExpression,
|
|||
|
||||
@Override
|
||||
public CASTUnaryExpression copy(CopyStyle style) {
|
||||
CASTUnaryExpression copy = new CASTUnaryExpression(operator, operand == null ? null
|
||||
: operand.copy(style));
|
||||
copy.setOffsetAndLength(this);
|
||||
if (style == CopyStyle.withLocations) {
|
||||
copy.setCopyLocation(this);
|
||||
}
|
||||
return copy;
|
||||
CASTUnaryExpression copy =
|
||||
new CASTUnaryExpression(operator, operand == null ? null : operand.copy(style));
|
||||
return copy(copy, style);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -82,22 +77,22 @@ public class CASTUnaryExpression extends ASTNode implements IASTUnaryExpression,
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean accept( ASTVisitor action ){
|
||||
if( action.shouldVisitExpressions ){
|
||||
switch( action.visit( this ) ){
|
||||
case ASTVisitor.PROCESS_ABORT : return false;
|
||||
case ASTVisitor.PROCESS_SKIP : return true;
|
||||
default : break;
|
||||
public boolean accept(ASTVisitor action) {
|
||||
if (action.shouldVisitExpressions) {
|
||||
switch (action.visit(this)) {
|
||||
case ASTVisitor.PROCESS_ABORT: return false;
|
||||
case ASTVisitor.PROCESS_SKIP: return true;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
if( operand != null ) if( !operand.accept( action ) ) return false;
|
||||
if (operand != null && !operand.accept(action)) return false;
|
||||
|
||||
if( action.shouldVisitExpressions ){
|
||||
switch( action.leave( this ) ){
|
||||
case ASTVisitor.PROCESS_ABORT : return false;
|
||||
case ASTVisitor.PROCESS_SKIP : return true;
|
||||
default : break;
|
||||
if (action.shouldVisitExpressions) {
|
||||
switch (action.leave(this)) {
|
||||
case ASTVisitor.PROCESS_ABORT: return false;
|
||||
case ASTVisitor.PROCESS_SKIP: return true;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -105,10 +100,9 @@ public class CASTUnaryExpression extends ASTNode implements IASTUnaryExpression,
|
|||
|
||||
@Override
|
||||
public void replace(IASTNode child, IASTNode other) {
|
||||
if( child == operand )
|
||||
{
|
||||
other.setPropertyInParent( child.getPropertyInParent() );
|
||||
other.setParent( child.getParent() );
|
||||
if (child == operand) {
|
||||
other.setPropertyInParent(child.getPropertyInParent());
|
||||
other.setParent(child.getParent());
|
||||
operand = (IASTExpression) other;
|
||||
}
|
||||
}
|
||||
|
@ -121,7 +115,7 @@ public class CASTUnaryExpression extends ASTNode implements IASTUnaryExpression,
|
|||
}
|
||||
final IType exprType = getOperand().getExpressionType();
|
||||
IType type = CVisitor.unwrapTypedefs(exprType);
|
||||
switch(op) {
|
||||
switch (op) {
|
||||
case op_star:
|
||||
if (type instanceof IPointerType || type instanceof IArrayType) {
|
||||
return ((ITypeContainer) type).getType();
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
package org.eclipse.cdt.internal.core.dom.parser.cpp;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IBasicType;
|
||||
import org.eclipse.cdt.core.dom.ast.IType;
|
||||
import org.eclipse.cdt.core.dom.ast.IBasicType.Kind;
|
||||
import org.eclipse.cdt.core.dom.ast.IType;
|
||||
import org.eclipse.cdt.internal.core.dom.parser.ArithmeticConversion;
|
||||
|
||||
public class CPPArithmeticConversion extends ArithmeticConversion {
|
||||
|
|
|
@ -23,9 +23,9 @@ import org.eclipse.cdt.core.dom.ast.ITypedef;
|
|||
* An example is the GCC built-in typedef: typedef char * __builtin_va_list;
|
||||
*/
|
||||
public class CPPImplicitTypedef extends CPPTypedef {
|
||||
private IType type=null;
|
||||
private char[] name=null;
|
||||
private IScope scope=null;
|
||||
private IType type;
|
||||
private char[] name;
|
||||
private IScope scope;
|
||||
|
||||
public CPPImplicitTypedef(IType type, char[] name, IScope scope) {
|
||||
super(null);
|
||||
|
@ -135,5 +135,4 @@ public class CPPImplicitTypedef extends CPPTypedef {
|
|||
public boolean isGloballyQualified() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,20 +38,20 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
|
|||
import org.eclipse.core.runtime.PlatformObject;
|
||||
|
||||
/**
|
||||
* Binding for a c++ function parameter
|
||||
* Binding for a c++ function parameter.
|
||||
*/
|
||||
public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPInternalBinding, ICPPTwoPhaseBinding {
|
||||
|
||||
public static class CPPParameterProblem extends ProblemBinding implements ICPPParameter {
|
||||
public CPPParameterProblem(IASTNode node, int id, char[] arg) {
|
||||
super(node, id, arg);
|
||||
}
|
||||
}
|
||||
|
||||
private IType fType = null;
|
||||
private IASTName[] fDeclarations = null;
|
||||
private IType fType;
|
||||
private IASTName[] fDeclarations;
|
||||
private int fPosition;
|
||||
|
||||
|
||||
public CPPParameter(IASTName name, int pos) {
|
||||
this.fDeclarations = new IASTName[] { name };
|
||||
fPosition= pos;
|
||||
|
@ -67,17 +67,11 @@ public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPI
|
|||
return getType() instanceof ICPPParameterPackType;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDeclarations()
|
||||
*/
|
||||
@Override
|
||||
public IASTNode[] getDeclarations() {
|
||||
return fDeclarations;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDefinition()
|
||||
*/
|
||||
@Override
|
||||
public IASTNode getDefinition() {
|
||||
return null;
|
||||
|
@ -121,17 +115,12 @@ public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPI
|
|||
}
|
||||
return null;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
|
||||
*/
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return new String(getNameCharArray());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
|
||||
*/
|
||||
@Override
|
||||
public char[] getNameCharArray() {
|
||||
IASTName name = getPrimaryDeclaration();
|
||||
|
@ -140,26 +129,17 @@ public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPI
|
|||
return CharArrayUtils.EMPTY;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
|
||||
*/
|
||||
@Override
|
||||
public IScope getScope() {
|
||||
return CPPVisitor.getContainingScope(getPrimaryDeclaration());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getPhysicalNode()
|
||||
*/
|
||||
public IASTNode getPhysicalNode() {
|
||||
if (fDeclarations != null)
|
||||
return fDeclarations[0];
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#getType()
|
||||
*/
|
||||
@Override
|
||||
public IType getType() {
|
||||
if (fType == null && fDeclarations != null) {
|
||||
|
@ -175,75 +155,48 @@ public class CPPParameter extends PlatformObject implements ICPPParameter, ICPPI
|
|||
return fType;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isStatic()
|
||||
*/
|
||||
@Override
|
||||
public boolean isStatic() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedName()
|
||||
*/
|
||||
@Override
|
||||
public String[] getQualifiedName() {
|
||||
return new String[] { getName() };
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedNameCharArray()
|
||||
*/
|
||||
@Override
|
||||
public char[][] getQualifiedNameCharArray() {
|
||||
return new char[][] { getNameCharArray() };
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#isGloballyQualified()
|
||||
*/
|
||||
@Override
|
||||
public boolean isGloballyQualified() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalBinding#addDefinition(org.eclipse.cdt.core.dom.ast.IASTNode)
|
||||
*/
|
||||
@Override
|
||||
public void addDefinition(IASTNode node) {
|
||||
addDeclaration(node);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isExtern()
|
||||
*/
|
||||
@Override
|
||||
public boolean isExtern() {
|
||||
//7.1.1-5 extern can not be used in the declaration of a parameter
|
||||
// 7.1.1-5 extern can not be used in the declaration of a parameter
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable#isMutable()
|
||||
*/
|
||||
@Override
|
||||
public boolean isMutable() {
|
||||
//7.1.1-8 mutable can only apply to class members
|
||||
// 7.1.1-8 mutable can only apply to class members
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isAuto()
|
||||
*/
|
||||
@Override
|
||||
public boolean isAuto() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_auto);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.dom.ast.IVariable#isRegister()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRegister() {
|
||||
return hasStorageClass(IASTDeclSpecifier.sc_register);
|
||||
|
|
|
@ -35,7 +35,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
private IType type;
|
||||
|
||||
public CPPTypedef(IASTName name) {
|
||||
// bug 223020 even though qualified names are not legal, we need to deal with them.
|
||||
// Bug 223020 even though qualified names are not legal, we need to deal with them.
|
||||
if (name != null && name.getParent() instanceof ICPPASTQualifiedName) {
|
||||
name= (IASTName) name.getParent();
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
if (o instanceof ITypedef) {
|
||||
IType t = getType();
|
||||
if (t != null)
|
||||
return t.isSameType(((ITypedef)o).getType());
|
||||
return t.isSameType(((ITypedef) o).getType());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
try {
|
||||
t = (IType) super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
//not going to happen
|
||||
// Not going to happen
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class CPPTypedef extends PlatformObject implements ITypedef, ITypeContain
|
|||
@Override
|
||||
public boolean isGloballyQualified() throws DOMException {
|
||||
IScope scope = getScope();
|
||||
while(scope != null) {
|
||||
while (scope != null) {
|
||||
if (scope instanceof ICPPBlockScope)
|
||||
return false;
|
||||
scope = scope.getParent();
|
||||
|
|
|
@ -2017,7 +2017,8 @@ public class CPPVisitor extends ASTQueries {
|
|||
return createAutoType(autoInitClause, declSpec, declarator);
|
||||
}
|
||||
|
||||
private static IType createAutoType(IASTInitializerClause initClause, IASTDeclSpecifier declSpec, IASTDeclarator declarator) {
|
||||
private static IType createAutoType(IASTInitializerClause initClause, IASTDeclSpecifier declSpec,
|
||||
IASTDeclarator declarator) {
|
||||
// C++0x: 7.1.6.4
|
||||
if (initClause == null || !autoTypeDeclSpecs.get().add(declSpec)) {
|
||||
// Detected a self referring auto type, e.g.: auto x = x;
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunction;
|
|||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPFunctionType;
|
||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPReferenceType;
|
||||
|
||||
|
||||
/**
|
||||
* Methods for computing the type of an expression
|
||||
*/
|
||||
|
@ -41,7 +40,6 @@ public class ExpressionTypes {
|
|||
return Conversions.lvalue_to_rvalue(type);
|
||||
}
|
||||
|
||||
|
||||
public static ValueCategory valueCategoryFromFunctionCall(ICPPFunction function) {
|
||||
final ICPPFunctionType ft = function.getType();
|
||||
return valueCategoryFromReturnType(ft.getReturnType());
|
||||
|
|
Loading…
Add table
Reference in a new issue