Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java53
1 files changed, 7 insertions, 46 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java
index 8cb763dc3ff..74850ce7280 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/InitializerListType.java
@@ -10,25 +10,22 @@
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.parser.cpp.semantics;
-import org.eclipse.cdt.core.dom.ast.IASTExpression;
-import org.eclipse.cdt.core.dom.ast.IASTExpression.ValueCategory;
-import org.eclipse.cdt.core.dom.ast.IASTInitializerClause;
import org.eclipse.cdt.core.dom.ast.IType;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTInitializerList;
/**
* Wrapper for initializer lists to allow for participation in the overload resolution.
*/
class InitializerListType implements IType {
+ private final EvalInitList fInitializerList;
- private final ICPPASTInitializerList fInitializerList;
- private IType[] fExpressionTypes;
- private ValueCategory[] fLValues;
-
- public InitializerListType(ICPPASTInitializerList list) {
- fInitializerList= list;
+ public InitializerListType(EvalInitList exprEvalInitList) {
+ fInitializerList= exprEvalInitList;
}
+ public EvalInitList getEvaluation() {
+ return fInitializerList;
+ }
+
@Override
public boolean isSameType(IType type) {
return false;
@@ -43,40 +40,4 @@ class InitializerListType implements IType {
return null;
}
}
-
- public ICPPASTInitializerList getInitializerList() {
- return fInitializerList;
- }
-
- public IType[] getExpressionTypes() {
- if (fExpressionTypes == null) {
- final IASTInitializerClause[] clauses = fInitializerList.getClauses();
- fExpressionTypes= new IType[clauses.length];
- for (int i = 0; i < clauses.length; i++) {
- IASTInitializerClause clause = clauses[i];
- if (clause instanceof IASTExpression) {
- fExpressionTypes[i]= ((IASTExpression) clause).getExpressionType();
- } else if (clause instanceof ICPPASTInitializerList) {
- fExpressionTypes[i]= new InitializerListType((ICPPASTInitializerList) clause);
- } else {
- assert false;
- }
- }
- }
- return fExpressionTypes;
- }
-
- public ValueCategory[] getValueCategories() {
- if (fLValues == null) {
- final IASTInitializerClause[] clauses = fInitializerList.getClauses();
- fLValues= new ValueCategory[clauses.length];
- for (int i = 0; i < clauses.length; i++) {
- IASTInitializerClause clause = clauses[i];
- if (clause instanceof IASTExpression) {
- fLValues[i]= ((IASTExpression) clause).getValueCategory();
- }
- }
- }
- return fLValues;
- }
}

Back to the top