Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Prigogin2012-07-18 19:19:37 +0000
committerSergey Prigogin2012-07-18 20:25:01 +0000
commit0d4b048d1594b701d194b6bd91e40825934ed67f (patch)
tree53e28b4f7d3cc79884d1bebe06af31d3b2cfa3c4
parent9aa20f2270b6e8618327fded6276eb012cae3c70 (diff)
downloadorg.eclipse.cdt-0d4b048d1594b701d194b6bd91e40825934ed67f.tar.gz
org.eclipse.cdt-0d4b048d1594b701d194b6bd91e40825934ed67f.tar.xz
org.eclipse.cdt-0d4b048d1594b701d194b6bd91e40825934ed67f.zip
More detailed exception message.
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
index 8fbb1cb8149..acec6713497 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
@@ -51,6 +51,7 @@ import org.eclipse.cdt.core.dom.ast.ISemanticProblem;
import org.eclipse.cdt.core.dom.ast.IType;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.IValue;
+import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTAmbiguousTemplateArgument;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier;
@@ -1706,6 +1707,10 @@ public class CPPTemplates {
IType type= expr.getExpressionType();
IValue value= Value.create((IASTExpression) arg, Value.MAX_RECURSION_DEPTH);
result[i]= new CPPTemplateArgument(value, type);
+ } else if (arg instanceof ICPPASTAmbiguousTemplateArgument) {
+ throw new IllegalArgumentException(id.getRawSignature()
+ + " contains an ambiguous template argument at position " + i + " in " //$NON-NLS-1$ //$NON-NLS-2$
+ + id.getContainingFilename());
} else {
throw new IllegalArgumentException("Unexpected type: " + arg.getClass().getName()); //$NON-NLS-1$
}

Back to the top