@@ -318,25 +318,32 @@ class A {
318318}
319319
320320/** @extends {A<string>} */
321- class B extends A.extend() {}
322-
323- /** @extends {Other<string>} */
324- class C extends A.extend() {}`
321+ class B extends A.extend() {}`
325322 opts := ast.SourceFileParseOptions {
326323 FileName : "/index.js" ,
327324 Path : "/index.js" ,
328325 }
329326
330327 file := parser .ParseSourceFile (opts , sourceText , core .ScriptKindJS )
331328 statements := file .Statements .Nodes
332- assert .Equal (t , len (statements ), 3 )
329+ assert .Equal (t , len (statements ), 2 )
333330
334331 classB := statements [1 ]
335332 assert .Assert (t , ast .IsClassDeclaration (classB ))
336333
337334 baseType := ast .GetClassExtendsHeritageElement (classB )
338335 assert .Assert (t , baseType != nil )
339- assert .Assert (t , ast .IsCallExpression (baseType .Expression ()))
336+
337+ baseExpression := baseType .Expression ()
338+ assert .Assert (t , ast .IsAsExpression (baseExpression ))
339+
340+ callExpression := baseExpression .Expression ()
341+ assert .Assert (t , ast .IsCallExpression (callExpression ))
342+ assert .Equal (t , scanner .GetTextOfNode (callExpression ), "A.extend()" )
343+
344+ typeQuery := baseExpression .Type ()
345+ assert .Equal (t , typeQuery .Kind , ast .KindTypeQuery )
346+ assert .Assert (t , typeQuery .Flags & ast .NodeFlagsReparsed != 0 )
340347
341348 typeArguments := baseType .TypeArguments ()
342349 assert .Equal (t , len (typeArguments ), 1 )
@@ -354,18 +361,11 @@ class C extends A.extend() {}`
354361
355362 tag := tags .Nodes [0 ]
356363 assert .Assert (t , ast .IsJSDocAugmentsTag (tag ))
364+ assert .Equal (t , ast .GetReparsedNodeForNode (tag .ClassName ().Expression ()), typeQuery .AsTypeQueryNode ().ExprName )
357365
358366 sourceTypeArguments := tag .ClassName ().TypeArguments ()
359367 assert .Equal (t , len (sourceTypeArguments ), 1 )
360368 assert .Equal (t , ast .GetReparsedNodeForNode (sourceTypeArguments [0 ]), typeArgument )
361-
362- classC := statements [2 ]
363- assert .Assert (t , ast .IsClassDeclaration (classC ))
364-
365- mismatchedBaseType := ast .GetClassExtendsHeritageElement (classC )
366- assert .Assert (t , mismatchedBaseType != nil )
367- assert .Assert (t , ast .IsCallExpression (mismatchedBaseType .Expression ()))
368- assert .Equal (t , len (mismatchedBaseType .TypeArguments ()), 0 )
369369}
370370
371371func TestSourceFilePositionMapWithNonASCIIStringLiteral (t * testing.T ) {
0 commit comments