1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

Bug 532905 - Implement compositing for InitializerListType

Change-Id: I9aea9b2a9fb0540f4cf9ab1f54ce0d1d17686d7d
This commit is contained in:
Nathan Ridge 2018-04-02 20:29:58 -04:00
parent 47d08ec204
commit ff1cfbf1d4

View file

@ -108,6 +108,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalReference;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalTypeId;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUnary;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUnaryTypeID;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.InitializerListType;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.TypeOfDependentExpression;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.TypeOfUnknownMember;
import org.eclipse.cdt.internal.core.index.CIndex;
@ -270,6 +271,13 @@ public class CPPCompositesFactory extends AbstractCompositeFactory {
IType operand = getCompositeType(typeTransformation.getOperand());
return new CPPUnaryTypeTransformation(typeTransformation.getOperator(), operand);
}
if (rtype instanceof InitializerListType) {
EvalInitList e = ((InitializerListType) rtype).getEvaluation();
EvalInitList e2 = (EvalInitList) getCompositeEvaluation(e);
if (e2 != e)
return new InitializerListType(e2);
return rtype;
}
if (rtype instanceof IBasicType || rtype == null || rtype instanceof ISemanticProblem) {
return rtype;
}