1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 11:25:35 +02:00

Bug 337686: Function-call on dependent expression.

This commit is contained in:
Markus Schorn 2011-03-02 10:31:44 +00:00
parent 5aa57c8075
commit 4276eda033
2 changed files with 11 additions and 0 deletions

View file

@ -5258,4 +5258,12 @@ public class AST2TemplateTests extends AST2BaseTest {
public void testSyntaxErrorInReturnTypeOfFunctionInstance_Bug336426() throws Exception { public void testSyntaxErrorInReturnTypeOfFunctionInstance_Bug336426() throws Exception {
parseAndCheckBindings(); parseAndCheckBindings();
} }
// template <typename T> struct A {};
// template <typename Functor> void f(Functor functor) {
// A<decltype(functor())> a;
// }
public void testFunctionCallOnDependentName_Bug337686() throws Exception {
parseAndCheckBindings();
}
} }

View file

@ -42,6 +42,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
import org.eclipse.cdt.internal.core.dom.parser.ProblemType; import org.eclipse.cdt.internal.core.dom.parser.ProblemType;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics; import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPTemplates;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil; import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil;
@ -250,6 +251,8 @@ public class CPPASTFunctionCallExpression extends ASTNode implements
if (t instanceof IFunctionType) { if (t instanceof IFunctionType) {
return typeFromReturnType(((IFunctionType) t).getReturnType()); return typeFromReturnType(((IFunctionType) t).getReturnType());
} }
if (CPPTemplates.isDependentType(t))
return CPPUnknownClass.createUnnamedInstance();
return new ProblemType(ISemanticProblem.TYPE_UNKNOWN_FOR_EXPRESSION); return new ProblemType(ISemanticProblem.TYPE_UNKNOWN_FOR_EXPRESSION);
} }