diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java index 310bde8672e..5938d6d04f2 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java @@ -20,6 +20,7 @@ import org.eclipse.cdt.core.dom.ast.ICPPASTCompletionContext; import org.eclipse.cdt.core.dom.ast.IEnumeration; import org.eclipse.cdt.core.dom.ast.ITypedef; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamedTypeSpecifier; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPAliasTemplate; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace; import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTypeParameter; @@ -123,6 +124,7 @@ public class CPPASTNamedTypeSpecifier extends CPPASTBaseDeclSpecifier || binding instanceof IEnumeration || binding instanceof ICPPNamespace || binding instanceof ITypedef + || binding instanceof ICPPAliasTemplate || binding instanceof ICPPTemplateTypeParameter) { if (i != j) bindings[j] = binding; diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java index 8902a93084a..46147abbacd 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java @@ -1910,4 +1910,25 @@ public class CompletionTests extends CompletionTestBase { public void testInheritingConstructor_511653() throws Exception { assertCompletionResults(new String[] { "A;" }); } + + // template + // struct A { + // + // struct Hello{}; + // + // }; + // + // struct B { + // + // template + // using Test = A; + // + // void main() { + // Te/*cursor*/ + // } + // + // }; + public void testAliasTemplateTypeSpecifier_521820() throws Exception { + assertCompletionResults(new String[] { "Test<>" }); + } }