1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 02:06:01 +02:00

Cosmetics.

This commit is contained in:
Sergey Prigogin 2014-10-08 18:44:49 -07:00
parent 8251ed4964
commit 7434fcbf4c
17 changed files with 170 additions and 205 deletions

View file

@ -4629,12 +4629,12 @@ public class AST2CPPTests extends AST2TestBase {
assertInstances(col, B, 4); assertInstances(col, B, 4);
} }
// class X { // class X {
// public: // public:
// void f(int); // void f(int);
// int a; // int a;
// }; // };
// int X:: * pmi = &X::a; // int X:: * pmi = &X::a;
public void testBasicPointerToMember() throws Exception { public void testBasicPointerToMember() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
assertEquals(tu.getDeclarations().length, 2); assertEquals(tu.getDeclarations().length, 2);
@ -4644,12 +4644,11 @@ public class AST2CPPTests extends AST2TestBase {
assertEquals("X::", po.getName().toString()); assertEquals("X::", po.getName().toString());
} }
// struct B {}; // struct B {};
// struct D : B {}; // struct D : B {};
// void foo(D* dp) // void foo(D* dp) {
// { // B* bp = dynamic_cast<B*>(dp);
// B* bp = dynamic_cast<B*>(dp); // }
// }
public void testBug84466() throws Exception { public void testBug84466() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
ICPPASTCastExpression dynamic_cast = ICPPASTCastExpression dynamic_cast =
@ -4663,8 +4662,7 @@ public class AST2CPPTests extends AST2TestBase {
} }
public void testBug88338_CPP() throws Exception { public void testBug88338_CPP() throws Exception {
IASTTranslationUnit tu = parse( IASTTranslationUnit tu = parse("struct A; struct A* a;", CPP);
"struct A; struct A* a;", CPP);
NameCollector col = new NameCollector(); NameCollector col = new NameCollector();
tu.accept(col); tu.accept(col);
@ -4692,11 +4690,11 @@ public class AST2CPPTests extends AST2TestBase {
assertEquals(f.getNestedDeclarator().getName().toString(), "pfi"); assertEquals(f.getNestedDeclarator().getName().toString(), "pfi");
} }
// class X { public: int bar; }; // class X { public: int bar; };
// void f(){ // void f(){
// X a[10]; // X a[10];
// a[0].bar; // a[0].bar;
// } // }
public void testBug95484() throws Exception { public void testBug95484() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
NameCollector col = new NameCollector(); NameCollector col = new NameCollector();
@ -4706,10 +4704,10 @@ public class AST2CPPTests extends AST2TestBase {
assertSame(bar, col.getName(6).resolveBinding()); assertSame(bar, col.getName(6).resolveBinding());
} }
// int strcmp(const char *); // int strcmp(const char *);
// void f(const char * const * argv){ // void f(const char * const * argv){
// strcmp(*argv); // strcmp(*argv);
// } // }
public void testBug95419() throws Exception { public void testBug95419() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
NameCollector col = new NameCollector(); NameCollector col = new NameCollector();
@ -4719,14 +4717,14 @@ public class AST2CPPTests extends AST2TestBase {
assertSame(strcmp, col.getName(4).resolveBinding()); assertSame(strcmp, col.getName(4).resolveBinding());
} }
// class Other; // class Other;
// class Base { // class Base {
// public: Base(Other *); // public: Base(Other *);
// }; // };
// class Sub : public Base { // class Sub : public Base {
// public: Sub(Other *); // public: Sub(Other *);
// }; // };
// Sub::Sub(Other * b) : Base(b) {} // Sub::Sub(Other * b) : Base(b) {}
public void testBug95673() throws Exception { public void testBug95673() throws Exception {
BindingAssertionHelper ba= getAssertionHelper(); BindingAssertionHelper ba= getAssertionHelper();
@ -4735,12 +4733,12 @@ public class AST2CPPTests extends AST2TestBase {
assertSame(ctor, ctor2); assertSame(ctor, ctor2);
} }
// void mem(void *, const void *); // void mem(void *, const void *);
// void f() { // void f() {
// char *x; int offset; // char *x; int offset;
// mem(x, "FUNC"); // mem(x, "FUNC");
// mem(x + offset, "FUNC2"); // mem(x + offset, "FUNC2");
// } // }
public void testBug95768() throws Exception { public void testBug95768() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
NameCollector col = new NameCollector(); NameCollector col = new NameCollector();
@ -4908,14 +4906,14 @@ public class AST2CPPTests extends AST2TestBase {
assertSame(i, col.getName(7).resolveBinding()); assertSame(i, col.getName(7).resolveBinding());
} }
// int f() { // int f() {
// return 5; // return 5;
// } // }
// int main() { // int main() {
// int a(5); // int a(5);
// int b(f()); // int b(f());
// return a+b; // return a+b;
// } // }
public void testBug86849() throws Exception { public void testBug86849() throws Exception {
IASTTranslationUnit tu = parse(getAboveComment(), CPP); IASTTranslationUnit tu = parse(getAboveComment(), CPP);
NameCollector col = new NameCollector(); NameCollector col = new NameCollector();
@ -6263,24 +6261,24 @@ public class AST2CPPTests extends AST2TestBase {
// void test2(char []); // void test2(char []);
// void test3(t); // void test3(t);
// void xx() { // void xx() {
// char* x= 0; // char* x= 0;
// test1(x); // test1(x);
// test2(x); // problem binding here // test2(x);
// test3(x); // problem binding here // test3(x);
// } // }
public void testAdjustmentOfParameterTypes_239975() throws Exception { public void testAdjustmentOfParameterTypes_239975() throws Exception {
parseAndCheckBindings(getAboveComment(), CPP); parseAndCheckBindings(getAboveComment(), CPP);
} }
// class A { // class A {
// public: // public:
// void m(int c); // void m(int c);
// }; // };
// //
// void test(char c) { // void test(char c) {
// void (A::* ptr2mem)(char); // void (A::* ptr2mem)(char);
// ptr2mem= reinterpret_cast<void (A::*)(char)>(&A::m); // ptr2mem= reinterpret_cast<void (A::*)(char)>(&A::m);
// ptr2mem= (void (A::*)(int))(0); // ptr2mem= (void (A::*)(int))(0);
// } // }
public void testTypeIdForPtrToMember_242197() throws Exception { public void testTypeIdForPtrToMember_242197() throws Exception {
parseAndCheckBindings(getAboveComment(), CPP); parseAndCheckBindings(getAboveComment(), CPP);
@ -7236,24 +7234,23 @@ public class AST2CPPTests extends AST2TestBase {
} }
// class S { // class S {
// S(int); // S(int);
// }; // };
// void test() { // void test() {
// S **temp = new S*[1]; // problem on S // S **temp = new S*[1];
// temp = new S*; // problem on S // temp = new S*;
// temp = new (S*); // problem on S // temp = new (S*);
// temp = new ::S*[1]; // problem on S // temp = new ::S*[1];
// temp = new ::S*; // problem on S // temp = new ::S*;
// temp = new (::S*); // problem on S // temp = new (::S*);
// } // }
public void testNewPointerOfClass_267168() throws Exception { public void testNewPointerOfClass_267168() throws Exception {
final String code = getAboveComment(); parseAndCheckBindings();
parseAndCheckBindings(code, CPP);
} }
// void f(char *(names[2])= 0); // void f(char *(names[2])= 0);
// void f2(const char *(n[])) { // void f2(const char *(n[])) {
// if (n && 1){} // if (n && 1){}
// } // }
public void testPointerToArrayWithDefaultVal_267184() throws Exception { public void testPointerToArrayWithDefaultVal_267184() throws Exception {
final String code = getAboveComment(); final String code = getAboveComment();
@ -7270,10 +7267,10 @@ public class AST2CPPTests extends AST2TestBase {
parseAndCheckBindings(code, CPP); parseAndCheckBindings(code, CPP);
} }
// class X { // class X {
// virtual void pv() = 0; // virtual void pv() = 0;
// void (*ptrToFunc) ()= 0; // void (*ptrToFunc) ()= 0;
// }; // };
public void testPureVirtualVsInitDeclarator_267184() throws Exception { public void testPureVirtualVsInitDeclarator_267184() throws Exception {
final String code = getAboveComment(); final String code = getAboveComment();
IASTTranslationUnit tu= parseAndCheckBindings(code, CPP); IASTTranslationUnit tu= parseAndCheckBindings(code, CPP);

View file

@ -20,22 +20,28 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
/** /**
* This interface represents an enumerator member of an enum specifier. * This interface represents an enumerator member of an enum specifier.
* *
* @author jcamelon
* @noimplement This interface is not intended to be implemented by clients. * @noimplement This interface is not intended to be implemented by clients.
*/ */
public interface IASTEnumerator extends IASTNode, IASTNameOwner { public interface IASTEnumerator extends IASTNode, IASTNameOwner {
/** /**
* Empty array (constant). * Empty array (constant).
*/ */
public static final IASTEnumerator[] EMPTY_ENUMERATOR_ARRAY = new IASTEnumerator[0]; public static final IASTEnumerator[] EMPTY_ENUMERATOR_ARRAY = {};
/** /**
* <code>ENUMERATOR_NAME</code> describes the relationship between * {@code ENUMERATOR_NAME} describes the relationship between
* <code>IASTEnumerator</code> and <code>IASTName</code>. * {@code IASTEnumerator} and {@code IASTName}.
*/ */
public static final ASTNodeProperty ENUMERATOR_NAME = new ASTNodeProperty( public static final ASTNodeProperty ENUMERATOR_NAME = new ASTNodeProperty(
"IASTEnumerator.ENUMERATOR_NAME - IASTName for IASTEnumerator"); //$NON-NLS-1$ "IASTEnumerator.ENUMERATOR_NAME - IASTName for IASTEnumerator"); //$NON-NLS-1$
/**
* {@code ENUMERATOR_VALUE} describes the relationship between
* {@code IASTEnumerator} and {@code IASTExpression}.
*/
public static final ASTNodeProperty ENUMERATOR_VALUE = new ASTNodeProperty(
"IASTEnumerator.ENUMERATOR_VALUE - IASTExpression (value) for IASTEnumerator"); //$NON-NLS-1$
/** /**
* Set the enumerator's name. * Set the enumerator's name.
* *
@ -46,17 +52,10 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
/** /**
* Get the enumerator's name. * Get the enumerator's name.
* *
* @return <code>IASTName</code> * @return {@code IASTName}
*/ */
public IASTName getName(); public IASTName getName();
/**
* <code>ENUMERATOR_VALUE</code> describes the relationship between
* <code>IASTEnumerator</code> and <code>IASTExpression</code>.
*/
public static final ASTNodeProperty ENUMERATOR_VALUE = new ASTNodeProperty(
"IASTEnumerator.ENUMERATOR_VALUE - IASTExpression (value) for IASTEnumerator"); //$NON-NLS-1$
/** /**
* Sets enumerator value. * Sets enumerator value.
* *
@ -67,7 +66,7 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
/** /**
* Returns enumerator value. * Returns enumerator value.
* *
* @return <code>IASTExpression</code> value * @return {@code IASTExpression} value
*/ */
public IASTExpression getValue(); public IASTExpression getValue();
@ -82,13 +81,19 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
*/ */
@Override @Override
public IASTEnumerator copy(CopyStyle style); public IASTEnumerator copy(CopyStyle style);
} }
/** /**
* <code>ENUMERATOR</code> describes the relationship between * {@code ENUMERATION_NAME} describes the relationship between
* <code>IASTEnumerationSpecifier</code> and the nested * {@code IASTEnumerationSpecifier} and its {@link IASTName}.
* <code>IASTEnumerator</code>s. */
public static final ASTNodeProperty ENUMERATION_NAME = new ASTNodeProperty(
"IASTEnumerationSpecifier.ENUMERATION_NAME - IASTName for IASTEnumerationSpecifier"); //$NON-NLS-1$
/**
* {@code ENUMERATOR} describes the relationship between
* {@code IASTEnumerationSpecifier} and the nested
* {@link IASTEnumerator}s.
*/ */
public static final ASTNodeProperty ENUMERATOR = new ASTNodeProperty( public static final ASTNodeProperty ENUMERATOR = new ASTNodeProperty(
"IASTEnumerationSpecifier.ENUMERATOR - nested IASTEnumerator for IASTEnumerationSpecifier"); //$NON-NLS-1$ "IASTEnumerationSpecifier.ENUMERATOR - nested IASTEnumerator for IASTEnumerationSpecifier"); //$NON-NLS-1$
@ -96,25 +101,17 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
/** /**
* Adds an enumerator. * Adds an enumerator.
* *
* @param enumerator * @param enumerator {@code IASTEnumerator}
* <code>IASTEnumerator</code>
*/ */
public void addEnumerator(IASTEnumerator enumerator); public void addEnumerator(IASTEnumerator enumerator);
/** /**
* Returns enumerators. * Returns enumerators.
* *
* @return <code>IASTEnumerator []</code> array * @return {@code IASTEnumerator[]} array
*/ */
public IASTEnumerator[] getEnumerators(); public IASTEnumerator[] getEnumerators();
/**
* <code>ENUMERATION_NAME</code> describes the relationship between
* <code>IASTEnumerationSpecifier</code> and its <code>IASTName</code>.
*/
public static final ASTNodeProperty ENUMERATION_NAME = new ASTNodeProperty(
"IASTEnumerationSpecifier.ENUMERATION_NAME - IASTName for IASTEnumerationSpecifier"); //$NON-NLS-1$
/** /**
* Sets the enum's name. * Sets the enum's name.
* *
@ -123,7 +120,7 @@ public interface IASTEnumerationSpecifier extends IASTDeclSpecifier, IASTNameOwn
public void setName(IASTName name); public void setName(IASTName name);
/** /**
* Get the enum's name. * Returns the enum's name.
*/ */
public IASTName getName(); public IASTName getName();

View file

@ -25,6 +25,7 @@ public interface IEnumeration extends IBinding, IType {
* @since 5.2 * @since 5.2
*/ */
long getMinValue(); long getMinValue();
/** /**
* @since 5.2 * @since 5.2
*/ */

View file

@ -20,11 +20,11 @@ public interface IEnumerator extends IBinding {
/** /**
* Returns the type of this enumeration. The type of an enumerator * Returns the type of this enumeration. The type of an enumerator
* is the enumeration in which it is declared. * is the enumeration in which it is declared.
* *
* @return the type of the enumeration * @return the type of the enumeration
*/ */
public IType getType(); public IType getType();
/** /**
* Returns the value assigned to this enumerator. * Returns the value assigned to this enumerator.
* @since 5.1 * @since 5.1

View file

@ -6,7 +6,7 @@
* http://www.eclipse.org/legal/epl-v10.html * http://www.eclipse.org/legal/epl-v10.html
* *
* Contributors: * Contributors:
* Markus Schorn - initial API and implementation * Markus Schorn - initial API and implementation
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.core.dom.ast.cpp; package org.eclipse.cdt.core.dom.ast.cpp;
@ -14,14 +14,13 @@ import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier; import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier;
/** /**
* <code> enum struct : unsigned int {...}</code> * <code>enum struct : unsigned int {...}</code>
* *
* @since 5.2 * @since 5.2
* @noextend This interface is not intended to be extended by clients. * @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients. * @noimplement This interface is not intended to be implemented by clients.
*/ */
public interface ICPPASTEnumerationSpecifier extends IASTEnumerationSpecifier, ICPPASTDeclSpecifier { public interface ICPPASTEnumerationSpecifier extends IASTEnumerationSpecifier, ICPPASTDeclSpecifier {
public static final ASTNodeProperty BASE_TYPE = new ASTNodeProperty( public static final ASTNodeProperty BASE_TYPE = new ASTNodeProperty(
"ICPPASTEnumerationSpecifier.BASE_TYPE [ICPPASTDeclSpecifier]"); //$NON-NLS-1$ "ICPPASTEnumerationSpecifier.BASE_TYPE [ICPPASTDeclSpecifier]"); //$NON-NLS-1$
@ -35,18 +34,17 @@ public interface ICPPASTEnumerationSpecifier extends IASTEnumerationSpecifier, I
public ICPPASTEnumerationSpecifier copy(CopyStyle style); public ICPPASTEnumerationSpecifier copy(CopyStyle style);
/** /**
* Not allowed on frozen ast. * Not allowed on frozen AST.
*/ */
public void setIsScoped(boolean isScoped); public void setIsScoped(boolean isScoped);
/** /**
* An enum is scoped if it uses the enumeration head * An enum is scoped if it uses the enumeration head {@code enum class} or {@code enum struct}.
* <code>enum class</code> or <code>enum struct</code>
*/ */
public boolean isScoped(); public boolean isScoped();
/** /**
* Not allowed on frozen ast. * Not allowed on frozen AST.
*/ */
public void setIsOpaque(boolean isOpaque); public void setIsOpaque(boolean isOpaque);
@ -61,13 +59,13 @@ public interface ICPPASTEnumerationSpecifier extends IASTEnumerationSpecifier, I
public void setBaseType(ICPPASTDeclSpecifier baseType); public void setBaseType(ICPPASTDeclSpecifier baseType);
/** /**
* Returns the base type for this enum or <code>null</code> if it was not specified. * Returns the base type for this enum or {@code null} if it was not specified.
*/ */
public ICPPASTDeclSpecifier getBaseType(); public ICPPASTDeclSpecifier getBaseType();
/** /**
* Returns the scope containing the enumerators of this enumeration, or <code>null</code> if the specifier * Returns the scope containing the enumerators of this enumeration,
* is opaque. * or {@code null} if the specifier is opaque.
*/ */
public ICPPScope getScope(); public ICPPScope getScope();
} }

View file

@ -114,7 +114,7 @@ public abstract class ASTEnumerator extends ASTNode implements IASTEnumerator, I
IASTNode parent= getParent(); IASTNode parent= getParent();
if (parent instanceof IASTInternalEnumerationSpecifier) { if (parent instanceof IASTInternalEnumerationSpecifier) {
IASTInternalEnumerationSpecifier ies= (IASTInternalEnumerationSpecifier) parent; IASTInternalEnumerationSpecifier ies= (IASTInternalEnumerationSpecifier) parent;
if (ies.startValueComputation()) { // prevents infinite recursions if (ies.startValueComputation()) { // Prevent infinite recursion.
createEnumValues((IASTEnumerationSpecifier) parent); createEnumValues((IASTEnumerationSpecifier) parent);
} }
} }

View file

@ -340,7 +340,7 @@ public abstract class ArithmeticConversion {
if (basicTarget.isShort()) { if (basicTarget.isShort()) {
return Short.MIN_VALUE <= n && n <= Short.MAX_VALUE; return Short.MIN_VALUE <= n && n <= Short.MAX_VALUE;
} }
// Can't represent long longs with java longs. // Can't represent long longs with Java longs.
if (basicTarget.isLong() || basicTarget.isLongLong()) { if (basicTarget.isLong() || basicTarget.isLongLong()) {
return true; return true;
} }
@ -352,7 +352,7 @@ public abstract class ArithmeticConversion {
if (basicTarget.isShort()) { 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. // Can't represent long longs with Java longs.
if (basicTarget.isLong() || basicTarget.isLongLong()) { if (basicTarget.isLong() || basicTarget.isLongLong()) {
return true; return true;
} }
@ -419,9 +419,10 @@ public abstract class ArithmeticConversion {
long sizeofSource = sourceSizeAndAlignment == null ? getApproximateSize(source) : sourceSizeAndAlignment.size; long sizeofSource = sourceSizeAndAlignment == null ? getApproximateSize(source) : sourceSizeAndAlignment.size;
long sizeofTarget = targetSizeAndAlignment == null ? getApproximateSize(target) : targetSizeAndAlignment.size; long sizeofTarget = targetSizeAndAlignment == null ? getApproximateSize(target) : targetSizeAndAlignment.size;
if (sizeofSource == sizeofTarget) if (sizeofSource == sizeofTarget) {
return target.isUnsigned() == source.isUnsigned(); return target.isUnsigned() == source.isUnsigned();
else } else {
return sizeofSource < sizeofTarget; return sizeofSource < sizeofTarget;
}
} }
} }

View file

@ -17,7 +17,7 @@ import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier;
*/ */
public interface IASTInternalEnumerationSpecifier extends IASTEnumerationSpecifier { public interface IASTInternalEnumerationSpecifier extends IASTEnumerationSpecifier {
/** /**
* Notifies that the value computation for the enumeration is started. Returns whether this is * Notifies that the value computation for the enumeration has started. Returns whether this is
* the first attempt to do so. * the first attempt to do so.
*/ */
boolean startValueComputation(); boolean startValueComputation();

View file

@ -6,9 +6,9 @@
* http://www.eclipse.org/legal/epl-v10.html * http://www.eclipse.org/legal/epl-v10.html
* *
* Contributors: * Contributors:
* John Camelon (IBM Rational Software) - Initial API and implementation * John Camelon (IBM Rational Software) - Initial API and implementation
* Markus Schorn (Wind River Systems) * Markus Schorn (Wind River Systems)
* Yuan Zhang / Beth Tibbitts (IBM Research) * Yuan Zhang / Beth Tibbitts (IBM Research)
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.c; package org.eclipse.cdt.internal.core.dom.parser.c;
@ -23,10 +23,8 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTInternalEnumerationSpecifier
*/ */
public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier
implements IASTInternalEnumerationSpecifier, ICASTEnumerationSpecifier { implements IASTInternalEnumerationSpecifier, ICASTEnumerationSpecifier {
private IASTName name; private IASTName name;
private boolean valuesComputed= false; private boolean valuesComputed;
public CASTEnumerationSpecifier() { public CASTEnumerationSpecifier() {
} }
@ -54,7 +52,6 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier
return super.copy(copy, style); return super.copy(copy, style);
} }
@Override @Override
public boolean startValueComputation() { public boolean startValueComputation() {
if (valuesComputed) if (valuesComputed)
@ -70,20 +67,19 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier
if (enumerator != null) { if (enumerator != null) {
enumerator.setParent(this); enumerator.setParent(this);
enumerator.setPropertyInParent(ENUMERATOR); enumerator.setPropertyInParent(ENUMERATOR);
enumerators = ArrayUtil.appendAt( IASTEnumerator.class, enumerators, ++enumeratorsPos, enumerator ); enumerators = ArrayUtil.appendAt(IASTEnumerator.class, enumerators, ++enumeratorsPos, enumerator);
} }
} }
@Override @Override
public IASTEnumerator[] getEnumerators() { public IASTEnumerator[] getEnumerators() {
if( enumerators == null ) return IASTEnumerator.EMPTY_ENUMERATOR_ARRAY; if (enumerators == null) return IASTEnumerator.EMPTY_ENUMERATOR_ARRAY;
enumerators = ArrayUtil.trimAt( IASTEnumerator.class, enumerators, enumeratorsPos ); enumerators = ArrayUtil.trimAt(IASTEnumerator.class, enumerators, enumeratorsPos);
return enumerators; return enumerators;
} }
private IASTEnumerator [] enumerators = null; private IASTEnumerator [] enumerators = null;
private int enumeratorsPos=-1; private int enumeratorsPos = -1;
@Override @Override
@ -102,34 +98,35 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier
} }
@Override @Override
public boolean accept( ASTVisitor action ){ public boolean accept(ASTVisitor action) {
if( action.shouldVisitDeclSpecifiers ){ if (action.shouldVisitDeclSpecifiers) {
switch( action.visit( this ) ){ switch(action.visit(this)) {
case ASTVisitor.PROCESS_ABORT : return false; case ASTVisitor.PROCESS_ABORT: return false;
case ASTVisitor.PROCESS_SKIP : return true; case ASTVisitor.PROCESS_SKIP: return true;
default : break; default: break;
} }
} }
if( name != null ) if( !name.accept( action ) ) return false; if (name != null && !name.accept(action))
return false;
IASTEnumerator[] etors = getEnumerators(); IASTEnumerator[] etors = getEnumerators();
for ( int i = 0; i < etors.length; i++ ) { for (int i = 0; i < etors.length; i++) {
if( !etors[i].accept( action ) ) return false; if (!etors[i].accept(action))
return false;
} }
if( action.shouldVisitDeclSpecifiers ){ if (action.shouldVisitDeclSpecifiers) {
switch( action.leave( this ) ){ switch(action.leave(this)) {
case ASTVisitor.PROCESS_ABORT : return false; case ASTVisitor.PROCESS_ABORT: return false;
case ASTVisitor.PROCESS_SKIP : return true; case ASTVisitor.PROCESS_SKIP: return true;
default : break; default: break;
} }
} }
return true; return true;
} }
@Override @Override
public int getRoleForName(IASTName n ) { public int getRoleForName(IASTName n) {
if( this.name == n ) if (this.name == n)
return r_definition; return r_definition;
return r_unclear; return r_unclear;
} }
} }

View file

@ -52,9 +52,9 @@ public class CPPASTEnumerationSpecifier extends CPPASTBaseDeclSpecifier
@Override @Override
public CPPASTEnumerationSpecifier copy(CopyStyle style) { public CPPASTEnumerationSpecifier copy(CopyStyle style) {
CPPASTEnumerationSpecifier copy = CPPASTEnumerationSpecifier copy = new CPPASTEnumerationSpecifier(fIsScoped,
new CPPASTEnumerationSpecifier(fIsScoped, fName == null ? null : fName.copy(style), fName == null ? null : fName.copy(style),
fBaseType == null ? null : fBaseType.copy(style)); fBaseType == null ? null : fBaseType.copy(style));
copy.fIsOpaque = fIsOpaque; copy.fIsOpaque = fIsOpaque;
for (IASTEnumerator enumerator : getEnumerators()) { for (IASTEnumerator enumerator : getEnumerators()) {
copy.addEnumerator(enumerator == null ? null : enumerator.copy(style)); copy.addEnumerator(enumerator == null ? null : enumerator.copy(style));

View file

@ -89,6 +89,7 @@ public class CPPBaseClause implements ICPPBase, ICPPInternalBase {
} }
@Override @Override
@Deprecated
public IName getBaseClassSpecifierName() { public IName getBaseClassSpecifierName() {
return base.getName(); return base.getName();
} }

View file

@ -34,6 +34,7 @@ public class CPPDeferredFunction extends CPPUnknownBinding implements ICPPDeferr
* Creates a CPPDeferredFunction given a set of overloaded functions * Creates a CPPDeferredFunction given a set of overloaded functions
* (some of which may be templates) that the function might resolve to. * (some of which may be templates) that the function might resolve to.
* At least one candidate must be provided. * At least one candidate must be provided.
*
* @param candidates a set of overloaded functions, some of which may be templates * @param candidates a set of overloaded functions, some of which may be templates
* @return the constructed CPPDeferredFunction * @return the constructed CPPDeferredFunction
*/ */
@ -47,7 +48,8 @@ public class CPPDeferredFunction extends CPPUnknownBinding implements ICPPDeferr
/** /**
* Creates a CPPDeferredFunction given a name. This is for cases where there * Creates a CPPDeferredFunction given a name. This is for cases where there
* are no candidates that could be passed to createForCandidates(). * are no candidates that could be passed to {@link #createForCandidates}.
*
* @param name the name of the function * @param name the name of the function
* @return the constructed CPPDeferredFunction * @return the constructed CPPDeferredFunction
*/ */

View file

@ -47,7 +47,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.PlatformObject;
/** /**
* Enumerations in C++ * Enumeration in C++
*/ */
public class CPPEnumeration extends PlatformObject implements ICPPEnumeration, ICPPInternalBinding { public class CPPEnumeration extends PlatformObject implements ICPPEnumeration, ICPPInternalBinding {
private static final IASTName NOT_INITIALIZED = CPPASTName.NOT_INITIALIZED; private static final IASTName NOT_INITIALIZED = CPPASTName.NOT_INITIALIZED;
@ -90,8 +90,8 @@ public class CPPEnumeration extends PlatformObject implements ICPPEnumeration, I
private Long fMaxValue; private Long fMaxValue;
private Long fMinValue; private Long fMinValue;
private ICPPEnumeration fIndexBinding= null; private ICPPEnumeration fIndexBinding;
private boolean fSearchedIndex= false; private boolean fSearchedIndex;
public CPPEnumeration(ICPPASTEnumerationSpecifier spec, IType fixedType) { public CPPEnumeration(ICPPASTEnumerationSpecifier spec, IType fixedType) {
final IASTName name = spec.getName(); final IASTName name = spec.getName();

View file

@ -43,56 +43,35 @@ public class CPPEnumerator extends PlatformObject implements IEnumerator, ICPPIn
enumerator.setBinding(this); enumerator.setBinding(this);
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDeclarations()
*/
@Override @Override
public IASTNode[] getDeclarations() { public IASTNode[] getDeclarations() {
return null; return null;
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPBinding#getDefinition()
*/
@Override @Override
public IASTNode getDefinition() { public IASTNode getDefinition() {
return enumName; return enumName;
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getName()
*/
@Override @Override
public String getName() { public String getName() {
return new String(getNameCharArray()); return new String(getNameCharArray());
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getNameCharArray()
*/
@Override @Override
public char[] getNameCharArray() { public char[] getNameCharArray() {
return enumName.getSimpleID(); return enumName.getSimpleID();
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getScope()
*/
@Override @Override
public IScope getScope() { public IScope getScope() {
return CPPVisitor.getContainingScope(enumName); return CPPVisitor.getContainingScope(enumName);
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getPhysicalNode()
*/
public IASTNode getPhysicalNode() { public IASTNode getPhysicalNode() {
return enumName; return enumName;
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IEnumerator#getType()
*/
@Override @Override
public IType getType() { public IType getType() {
IASTEnumerator etor = (IASTEnumerator) enumName.getParent(); IASTEnumerator etor = (IASTEnumerator) enumName.getParent();
@ -100,25 +79,16 @@ public class CPPEnumerator extends PlatformObject implements IEnumerator, ICPPIn
return (IType) enumSpec.getName().resolveBinding(); return (IType) enumSpec.getName().resolveBinding();
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedName()
*/
@Override @Override
public String[] getQualifiedName() { public String[] getQualifiedName() {
return CPPVisitor.getQualifiedName(this); return CPPVisitor.getQualifiedName(this);
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.IBinding#getFullyQualifiedNameCharArray()
*/
@Override @Override
public char[][] getQualifiedNameCharArray() { public char[][] getQualifiedNameCharArray() {
return CPPVisitor.getQualifiedNameCharArray(this); return CPPVisitor.getQualifiedNameCharArray(this);
} }
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding#isGloballyQualified()
*/
@Override @Override
public boolean isGloballyQualified() throws DOMException { public boolean isGloballyQualified() throws DOMException {
IScope scope = getScope(); IScope scope = getScope();

View file

@ -88,7 +88,7 @@ public interface ICPPEvaluation extends ISerializableEvaluation {
/** /**
* Keeps track of state during a constexpr evaluation. * Keeps track of state during a constexpr evaluation.
*/ */
class ConstexprEvaluationContext { final class ConstexprEvaluationContext {
/** /**
* The maximum number of steps allowed in a single constexpr evaluation. * The maximum number of steps allowed in a single constexpr evaluation.
* This is used to prevent a buggy constexpr function from causing the * This is used to prevent a buggy constexpr function from causing the
@ -100,7 +100,7 @@ public interface ICPPEvaluation extends ISerializableEvaluation {
private IASTNode fPoint; private IASTNode fPoint;
/** /**
* Construct a ConstexprEvaluationContext for a new constexpr evaluation. * Constructs a ConstexprEvaluationContext for a new constexpr evaluation.
* @param point the point of instantiation, determines the scope for name lookups * @param point the point of instantiation, determines the scope for name lookups
*/ */
public ConstexprEvaluationContext(IASTNode point) { public ConstexprEvaluationContext(IASTNode point) {
@ -109,7 +109,8 @@ public interface ICPPEvaluation extends ISerializableEvaluation {
} }
/** /**
* Record a new step being performed in this constexpr evaluation. * Records a new step being performed in this constexpr evaluation.
*
* @return this constexpr evaluation * @return this constexpr evaluation
*/ */
public ConstexprEvaluationContext recordStep() { public ConstexprEvaluationContext recordStep() {
@ -118,14 +119,14 @@ public interface ICPPEvaluation extends ISerializableEvaluation {
} }
/** /**
* Get the number of steps performed so far in the constexpr evaluation. * Returns the number of steps performed so far in the constexpr evaluation.
*/ */
public int getStepsPerformed() { public int getStepsPerformed() {
return fStepsPerformed; return fStepsPerformed;
} }
/** /**
* Get the point of instantiation. * Returns the point of instantiation.
*/ */
public IASTNode getPoint() { public IASTNode getPoint() {
return fPoint; return fPoint;

View file

@ -982,7 +982,7 @@ public class CPPTemplates {
spec = enumSpec.specializeEnumerator(enumerator); spec = enumSpec.specializeEnumerator(enumerator);
} else if (decl instanceof ICPPUsingDeclaration) { } else if (decl instanceof ICPPUsingDeclaration) {
IBinding[] delegates= ((ICPPUsingDeclaration) decl).getDelegates(); IBinding[] delegates= ((ICPPUsingDeclaration) decl).getDelegates();
List<IBinding> result= new ArrayList<IBinding>(); List<IBinding> result= new ArrayList<>();
ICPPClassSpecialization within = getSpecializationContext(owner); ICPPClassSpecialization within = getSpecializationContext(owner);
for (IBinding delegate : delegates) { for (IBinding delegate : delegates) {
try { try {
@ -2853,7 +2853,7 @@ public class CPPTemplates {
if (keys.length == 0) if (keys.length == 0)
return ObjectMap.EMPTY_MAP; return ObjectMap.EMPTY_MAP;
List<ICPPTemplateDefinition> defs= new ArrayList<ICPPTemplateDefinition>(); List<ICPPTemplateDefinition> defs= new ArrayList<>();
IBinding owner= b; IBinding owner= b;
while (owner != null) { while (owner != null) {
if (owner instanceof ICPPTemplateDefinition) { if (owner instanceof ICPPTemplateDefinition) {

View file

@ -165,20 +165,20 @@ public class TypeTraits {
} }
/** /**
* Returns <code>true</code> if and only if the given class has a trivial copy constructor. * Returns {@code true} if and only if the given class has a trivial copy constructor.
* A copy constructor is trivial if: * A copy constructor is trivial if:
* <ul> * <ul>
* <li>it is implicitly defined by the compiler, and</li> * <li>it is implicitly defined by the compiler, and</li>
* <li><code>isPolymorphic(classType) is false</code>, and</li> * <li>{@code isPolymorphic(classType)} is {@code false}, and</li>
* <li>the class has no virtual base classes, and</li> * <li>the class has no virtual base classes, and</li>
* <li>every direct base class has trivial copy constructor, and</li> * <li>every direct base class has trivial copy constructor, and</li>
* <li>for every nonstatic data member that has class type or array of class type, that type * <li>for every nonstatic data member that has class type or array of class type, that type
* has trivial copy constructor.</li> * has trivial copy constructor.</li>
* </ul> * </ul>
* Similar to <code>std::tr1::has_trivial_copy</code>. * Similar to {@code std::tr1::has_trivial_copy}.
* *
* @param classType the class to check * @param classType the class to check
* @return <code>true</code> if the class has a trivial copy constructor * @return {@code true} if the class has a trivial copy constructor
*/ */
public static boolean hasTrivialCopyCtor(ICPPClassType classType, IASTNode point) { public static boolean hasTrivialCopyCtor(ICPPClassType classType, IASTNode point) {
if (getImplicitCopyCtor(classType, point) == null) if (getImplicitCopyCtor(classType, point) == null)
@ -207,7 +207,7 @@ public class TypeTraits {
} }
/** /**
* Returns <code>true</code> if and only if the given class has a trivial default constructor. * Returns {@code true} if and only if the given class has a trivial default constructor.
* A default constructor is trivial if: * A default constructor is trivial if:
* <ul> * <ul>
* <li>it is implicitly defined by the compiler, and</li> * <li>it is implicitly defined by the compiler, and</li>
@ -215,11 +215,11 @@ public class TypeTraits {
* <li>for every nonstatic data member that has class type or array of class type, that type * <li>for every nonstatic data member that has class type or array of class type, that type
* has trivial default constructor.</li> * has trivial default constructor.</li>
* </ul> * </ul>
* Similar to <code>std::tr1::has_trivial_default_constructor</code>. * Similar to {@code std::tr1::has_trivial_default_constructor}.
* *
* @param classType the class to check * @param classType the class to check
* @param point * @param point
* @return <code>true</code> if the class has a trivial default constructor * @return {@code true} if the class has a trivial default constructor
*/ */
public static boolean hasTrivialDefaultConstructor(ICPPClassType classType, IASTNode point) { public static boolean hasTrivialDefaultConstructor(ICPPClassType classType, IASTNode point) {
for (ICPPConstructor ctor : ClassTypeHelper.getConstructors(classType, point)) { for (ICPPConstructor ctor : ClassTypeHelper.getConstructors(classType, point)) {
@ -244,7 +244,7 @@ public class TypeTraits {
} }
/** /**
* Returns <code>true</code> if and only if the given class has a trivial destructor. * Returns {@code true} if and only if the given class has a trivial destructor.
* A destructor is trivial if: * A destructor is trivial if:
* <ul> * <ul>
* <li>it is implicitly defined by the compiler, and</li> * <li>it is implicitly defined by the compiler, and</li>
@ -252,10 +252,10 @@ public class TypeTraits {
* <li>for every nonstatic data member that has class type or array of class type, that type * <li>for every nonstatic data member that has class type or array of class type, that type
* has trivial destructor.</li> * has trivial destructor.</li>
* </ul> * </ul>
* Similar to <code>std::tr1::has_trivial_destructor</code>. * Similar to {@code std::tr1::has_trivial_destructor}.
* *
* @param classType the class to check * @param classType the class to check
* @return <code>true</code> if the class has a trivial destructor * @return {@code true} if the class has a trivial destructor
*/ */
public static boolean hasTrivialDestructor(ICPPClassType classType, IASTNode point) { public static boolean hasTrivialDestructor(ICPPClassType classType, IASTNode point) {
for (ICPPMethod method : ClassTypeHelper.getDeclaredMethods(classType, point)) { for (ICPPMethod method : ClassTypeHelper.getDeclaredMethods(classType, point)) {
@ -280,11 +280,11 @@ public class TypeTraits {
} }
/** /**
* Returns <code>true</code> if and only if the given class declares or inherits a virtual * Returns {@code true} if and only if the given class declares or inherits a virtual
* function. Similar to <code>std::tr1::is_polymorphic</code>. * function. Similar to {@code std::tr1::is_polymorphic}.
* *
* @param classType the class to check * @param classType the class to check
* @return <code>true</code> if the class declares or inherits a virtual function. * @return {@code true} if the class declares or inherits a virtual function.
*/ */
public static boolean isPolymorphic(ICPPClassType classType, IASTNode point) { public static boolean isPolymorphic(ICPPClassType classType, IASTNode point) {
if (hasDeclaredVirtualMethod(classType, point)) if (hasDeclaredVirtualMethod(classType, point))
@ -310,12 +310,12 @@ public class TypeTraits {
} }
/** /**
* Returns the compiler-generated copy constructor for the given class, or <code>null</code> * Returns the compiler-generated copy constructor for the given class, or {@code null}
* if the class doesn't have a compiler-generated copy constructor. * if the class doesn't have a compiler-generated copy constructor.
* *
* @param classType the class to get the copy ctor for. * @param classType the class to get the copy ctor for.
* @return the compiler-generated copy constructor, or <code>null</code> if the class doesn't * @return the compiler-generated copy constructor, or {@code null} if the class doesn't
* have a compiler-generated copy constructor. * have a compiler-generated copy constructor.
*/ */
private static ICPPConstructor getImplicitCopyCtor(ICPPClassType classType, IASTNode point) { private static ICPPConstructor getImplicitCopyCtor(ICPPClassType classType, IASTNode point) {
for (ICPPConstructor ctor : ClassTypeHelper.getConstructors(classType, point)) { for (ICPPConstructor ctor : ClassTypeHelper.getConstructors(classType, point)) {
@ -383,10 +383,10 @@ public class TypeTraits {
private static IBasicType smallestFittingType(ICPPEnumeration enumeration, ICPPBasicType... types) { private static IBasicType smallestFittingType(ICPPEnumeration enumeration, ICPPBasicType... types) {
for (int i = 0; i < types.length - 1; ++i) { for (int i = 0; i < types.length - 1; ++i) {
if (ArithmeticConversion.fitsIntoType(types[i], enumeration.getMinValue()) if (ArithmeticConversion.fitsIntoType(types[i], enumeration.getMinValue())
&& ArithmeticConversion.fitsIntoType(types[i], enumeration.getMaxValue())) { && ArithmeticConversion.fitsIntoType(types[i], enumeration.getMaxValue())) {
return types[i]; return types[i];
} }
} }
return types[types.length - 1]; // assume it fits into the largest type provided return types[types.length - 1]; // Assume it fits into the largest type provided.
} }
} }