Source:
private ICPPFunction computeConstructor() { if (isTypeDependent()) return null; IType simplifiedType = SemanticUtil.getNestedType(fInputType, TDEF | CVTYPE); if (simplifiedType instanceof ICPPClassType) { ICPPClassType classType = (ICPPClassType) simplifiedType; ICPPEvaluation[] arguments = fArguments; ICPPConstructor[] constructors = classType.getConstructors(); if (arguments.length == 1 && arguments[0] instanceof EvalInitList && !fUsesBracedInitList) { if (TypeTraits.isAggregateClass(classType)) { return findDefaultConstructor(classType, constructors); } if (((EvalInitList) arguments[0]).getClauses().length == 0) { ICPPMethod ctor = findDefaultConstructor(classType, constructors); if (ctor != null) return ctor; } ICPPConstructor[] ctors = getInitializerListConstructors(constructors); if (ctors.length != 0) { constructors = ctors; } else { arguments = ((EvalInitList) arguments[0]).getClauses(); } } LookupData data = new LookupData(classType.getNameCharArray(), null, CPPSemantics.getCurrentLookupPoint()); data.foundItems = constructors; data.setFunctionArguments(false, arguments); try { IBinding binding = CPPSemantics.resolveFunction(data, constructors, true, false); if (binding instanceof ICPPFunction) { return (ICPPFunction) binding; } if (fUsesBracedInitList && allConstructorsAreCompilerGenerated(constructors)) { return AGGREGATE_INITIALIZATION; } if (binding instanceof IProblemBinding && !(binding instanceof ICPPFunction)) return new CPPFunction.CPPFunctionProblem(data.getLookupName(), ((IProblemBinding) binding).getID()); } catch (DOMException e) { CCorePlugin.log(e); } if (fUsesBracedInitList && allConstructorsAreCompilerGenerated(constructors)) { return AGGREGATE_INITIALIZATION; } } return null; }

Target:
private ICPPFunction computeConstructor() { if (isTypeDependent()) return null; IType simplifiedType = SemanticUtil.getNestedType(fInputType, TDEF | CVTYPE); if (simplifiedType instanceof ICPPClassType) { ICPPClassType classType = (ICPPClassType) simplifiedType; ICPPEvaluation[] arguments = fArguments; ICPPConstructor[] constructors = classType.getConstructors(); if (arguments.length == 1 && arguments[0] instanceof EvalInitList && !fUsesBracedInitList) { if (TypeTraits.isAggregateClass(classType)) { return findDefaultConstructor(classType, constructors); } if (((EvalInitList) arguments[0]).getClauses().length == 0) { ICPPMethod ctor = findDefaultConstructor(classType, constructors); if (ctor != null) return ctor; } ICPPConstructor[] ctors = getInitializerListConstructors(constructors); if (ctors.length != 0) { constructors = ctors; } else { arguments = ((EvalInitList) arguments[0]).getClauses(); } } LookupData data = new LookupData(classType.getNameCharArray(), null, CPPSemantics.getCurrentLookupPoint()); data.foundItems = constructors; data.setFunctionArguments(false, arguments); try { IBinding binding = CPPSemantics.resolveFunction(data, constructors, true, false); if (binding instanceof ICPPFunction) { return (ICPPFunction) binding; } if (fUsesBracedInitList && allConstructorsAreCompilerGenerated(constructors)) { return AGGREGATE_INITIALIZATION; } if (binding instanceof IProblemBinding && !(binding instanceof ICPPFunction)) return new CPPFunction.CPPFunctionProblem(null, ((IProblemBinding) binding).getID(), classType.getNameCharArray()); } catch (DOMException e) { CCorePlugin.log(e); } if (fUsesBracedInitList && allConstructorsAreCompilerGenerated(constructors)) { return AGGREGATE_INITIALIZATION; } } return null; }