@@ -293,10 +293,10 @@ public void TestASTClassTemplates()
293293 var paramType = ctor . Parameters [ 0 ] . Type as TemplateParameterType ;
294294 Assert . IsNotNull ( paramType ) ;
295295 Assert . AreEqual ( templateTypeParameter , paramType . Parameter ) ;
296- Assert . AreEqual ( 5 , template . Specializations . Count ) ;
296+ Assert . AreEqual ( 6 , template . Specializations . Count ) ;
297297 Assert . AreEqual ( TemplateSpecializationKind . ExplicitInstantiationDefinition , template . Specializations [ 0 ] . SpecializationKind ) ;
298- Assert . AreEqual ( TemplateSpecializationKind . ExplicitInstantiationDefinition , template . Specializations [ 3 ] . SpecializationKind ) ;
299- Assert . AreEqual ( TemplateSpecializationKind . Undeclared , template . Specializations [ 4 ] . SpecializationKind ) ;
298+ Assert . AreEqual ( TemplateSpecializationKind . ExplicitInstantiationDefinition , template . Specializations [ 4 ] . SpecializationKind ) ;
299+ Assert . AreEqual ( TemplateSpecializationKind . Undeclared , template . Specializations [ 5 ] . SpecializationKind ) ;
300300 var typeDef = AstContext . FindTypedef ( "TestTemplateClassInt" ) . FirstOrDefault ( ) ;
301301 Assert . IsNotNull ( typeDef , "Couldn't find TestTemplateClassInt typedef." ) ;
302302 var integerInst = typeDef . Type as TemplateSpecializationType ;
@@ -574,7 +574,7 @@ public void TestPrintNestedInSpecialization()
574574 {
575575 var template = AstContext . FindDecl < ClassTemplate > ( "TestTemplateClass" ) . First ( ) ;
576576 var cppTypePrinter = new CppTypePrinter ( Context ) { ScopeKind = TypePrintScopeKind . Qualified } ;
577- Assert . That ( template . Specializations [ 3 ] . Classes . First ( ) . Visit ( cppTypePrinter ) . Type ,
577+ Assert . That ( template . Specializations [ 4 ] . Classes . First ( ) . Visit ( cppTypePrinter ) . Type ,
578578 Is . EqualTo ( "TestTemplateClass<Math::Complex>::NestedInTemplate" ) ) ;
579579 }
580580
@@ -629,5 +629,13 @@ public void TestPrivateCCtorCopyAssignment()
629629 Assert . That ( @class . Constructors . Any ( c => c . IsCopyConstructor ) , Is . True ) ;
630630 Assert . That ( @class . Methods . Any ( o => o . OperatorKind == CXXOperatorKind . Equal ) , Is . True ) ;
631631 }
632+
633+ [ Test ]
634+ public void TestCompletionSpecializationInFunction ( )
635+ {
636+ Function function = AstContext . FindFunction ( "returnIncompleteTemplateSpecialization" ) . First ( ) ;
637+ function . ReturnType . Type . TryGetClass ( out Class specialization ) ;
638+ Assert . That ( specialization . IsIncomplete , Is . False ) ;
639+ }
632640 }
633641}
0 commit comments