From 4e760d869026af968b1a9230efac0363a27ab5a9 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 26 Feb 2017 17:50:52 -0500 Subject: [PATCH] Bug 408470 - Define some more common C++ types in AST2TestBase Change-Id: I794439a2d68f7b744afdef80b1f92a09996f95d2 --- .../core/parser/tests/ast2/AST2TestBase.java | 27 +++++++++++++++++-- .../core/dom/parser/cpp/CPPBasicType.java | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TestBase.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TestBase.java index 0e433e57d87..b69b38cefb9 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TestBase.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TestBase.java @@ -98,6 +98,7 @@ import org.eclipse.cdt.internal.core.dom.parser.c.GNUCSourceParser; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPBasicType; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPPointerType; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPQualifierType; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPReferenceType; import org.eclipse.cdt.internal.core.dom.parser.cpp.GNUCPPSourceParser; import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor; import org.eclipse.cdt.internal.core.model.ASTStringUtil; @@ -137,8 +138,30 @@ public class AST2TestBase extends BaseTestCase { protected static class CommonCPPTypes { public static IType int_ = CPPBasicType.INT; - public static IType pointerToInt = new CPPPointerType(int_); - public static IType constInt = new CPPQualifierType(int_, true, false); + public static IType void_ = CPPBasicType.VOID; + public static IType constInt = constOf(int_); + public static IType pointerToInt = pointerTo(int_); + public static IType pointerToConstInt = pointerTo(constInt); + public static IType referenceToInt = referenceTo(int_); + public static IType referenceToConstInt = referenceTo(constInt); + public static IType rvalueReferenceToInt = rvalueReferenceTo(int_); + public static IType rvalueReferenceToConstInt = rvalueReferenceTo(constInt); + + private static IType pointerTo(IType type) { + return new CPPPointerType(type); + } + + private static IType constOf(IType type) { + return new CPPQualifierType(type, true, false); + } + + private static IType referenceTo(IType type) { + return new CPPReferenceType(type, false); + } + + private static IType rvalueReferenceTo(IType type) { + return new CPPReferenceType(type, true); + } } private static final ScannerInfo GNU_SCANNER_INFO = new ScannerInfo(getGnuMap()); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java index 3073e17460a..4b16b3731d9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPBasicType.java @@ -45,6 +45,7 @@ public class CPPBasicType implements ICPPBasicType, ISerializableType { public static final CPPBasicType UNSIGNED_LONG_LONG = new CPPBasicType(Kind.eInt, IBasicType.IS_LONG_LONG | IBasicType.IS_UNSIGNED); public static final CPPBasicType UNSIGNED_INT128 = new CPPBasicType(Kind.eInt128, IBasicType.IS_UNSIGNED); public static final CPPBasicType CHAR = new CPPBasicType(Kind.eChar, 0); + public static final CPPBasicType VOID = new CPPBasicType(Kind.eVoid, 0); private static final int FROM_STRING_LITERAL = 1 << 31;