From 4caaf836f61b6b03fce00c784d949390c3a8e0f6 Mon Sep 17 00:00:00 2001 From: Andrew Ferguson Date: Fri, 23 May 2008 16:08:20 +0000 Subject: [PATCH] add test for deferred non-type template arguments --- .../parser/tests/ast2/AST2TemplateTests.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java index 19e917c33fc..bc4c7a8e68a 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java @@ -66,6 +66,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter; import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTypeParameter; import org.eclipse.cdt.core.dom.ast.cpp.ICPPVariable; import org.eclipse.cdt.core.parser.ParserLanguage; +import org.eclipse.cdt.core.parser.util.ObjectMap; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPDeferredClassInstance; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInternalUnknownScope; import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPUnknownBinding; @@ -2738,4 +2739,21 @@ public class AST2TemplateTests extends AST2BaseTest { ba.assertNonProblem("foo(t)", 3); ba.assertNonProblem("bar(t)", 3); } + + // template + // class C {}; + // + // template + // class D { + // public: + // C go(); + // }; + public void _testDeferredNonTypeArgument() throws Exception { + BindingAssertionHelper ba= new BindingAssertionHelper(getAboveComment(), true); + ICPPDeferredClassInstance ci= ba.assertNonProblem("C", 4, ICPPDeferredClassInstance.class); + ObjectMap args= ci.getArgumentMap(); + assertEquals(1, args.size()); + assertInstance(args.keyAt(0), ICPPTemplateNonTypeParameter.class); + assertInstance(args.getAt(0), ICPPTemplateNonTypeParameter.class); + } }