Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommonCPPTypes.java')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommonCPPTypes.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommonCPPTypes.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommonCPPTypes.java
new file mode 100644
index 00000000000..24f4fa96327
--- /dev/null
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/CommonCPPTypes.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Nathan Ridge.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.cdt.core.parser.tests.ast2;
+
+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.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;
+
+/**
+ *
+ * Helper class for common type wrapping operations for tests.
+ *
+ */
+public class CommonCPPTypes {
+ public static IType char_ = CPPBasicType.CHAR;
+ public static IType int_ = CPPBasicType.INT;
+ public static IType void_ = CPPBasicType.VOID;
+ public static IType double_ = new CPPBasicType(Kind.eDouble, 0);
+ public static IType float_ = new CPPBasicType(Kind.eFloat, 0);
+ public static IType constChar = constOf(char_);
+ public static IType constInt = constOf(int_);
+ public static IType pointerToInt = pointerTo(int_);
+ public static IType constPointerToInt = constPointerTo(int_);
+ public static IType pointerToConstChar = pointerTo(constChar);
+ 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);
+
+ public static IType pointerTo(IType type) {
+ return new CPPPointerType(type);
+ }
+
+ // Not quite the same as constOf(pointerTo(type)) because of the
+ // idiosyncratic way we represent cosnt pointers using a flag
+ // on the CPPPointerType rather than using CPPQualifierType.
+ private static IType constPointerTo(IType type) {
+ return new CPPPointerType(type, true, false, false);
+ }
+
+ public static IType constOf(IType type) {
+ return new CPPQualifierType(type, true, false);
+ }
+
+ public static IType volatileOf(IType type) {
+ return new CPPQualifierType(type, false, true);
+ }
+
+ public static IType constVolatileOf(IType type) {
+ return new CPPQualifierType(type, true, true);
+ }
+
+ public static IType referenceTo(IType type) {
+ return new CPPReferenceType(type, false);
+ }
+
+ public static IType rvalueReferenceTo(IType type) {
+ return new CPPReferenceType(type, true);
+ }
+}

Back to the top