diff options
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.java | 53 |
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; - } } |