@@ -198,9 +198,11 @@ func (c *Checker) typeToStringEx(t *Type, enclosingDeclaration *ast.Node, flags
198198 combinedFlags = combinedFlags | nodebuilder .FlagsNoTruncation
199199 }
200200 nodeBuilder := c .getNodeBuilder ()
201- if vc != nil {
202- nodeBuilder .verbosity = vc
203- }
201+ oldVerbosity := nodeBuilder .verbosity
202+ nodeBuilder .verbosity = vc
203+ defer func () {
204+ nodeBuilder .verbosity = oldVerbosity
205+ }()
204206 typeNode := nodeBuilder .TypeToTypeNode (t , enclosingDeclaration , combinedFlags , nodebuilder .InternalFlagsNone , nil )
205207 if typeNode == nil {
206208 panic ("should always get typenode" )
@@ -320,9 +322,11 @@ func (c *Checker) signatureToStringEx(signature *Signature, enclosingDeclaration
320322 }
321323
322324 nodeBuilder := c .getNodeBuilder ()
323- if vc != nil {
324- nodeBuilder .verbosity = vc
325- }
325+ oldVerbosity := nodeBuilder .verbosity
326+ nodeBuilder .verbosity = vc
327+ defer func () {
328+ nodeBuilder .verbosity = oldVerbosity
329+ }()
326330 combinedFlags := toNodeBuilderFlags (flags ) | nodebuilder .FlagsIgnoreErrors | nodebuilder .FlagsWriteTypeParametersInQualifiedName
327331 sig := nodeBuilder .SignatureToSignatureDeclaration (signature , sigOutput , enclosingDeclaration , combinedFlags , nodebuilder .InternalFlagsNone , nil )
328332 p := createPrinterWithRemoveCommentsOmitTrailingSemicolonNeverAsciiEscape (nodeBuilder .EmitContext ())
@@ -412,7 +416,11 @@ func (c *Checker) SignatureToSignatureDeclaration(signature *Signature, kind ast
412416// ExpandSymbolForHover produces declaration strings for a symbol with verbosity support for expandable hover.
413417func (c * Checker ) ExpandSymbolForHover (symbol * ast.Symbol , meaning ast.SymbolFlags , vc * VerbosityContext ) string {
414418 nodeBuilder := c .getNodeBuilder ()
419+ oldVerbosity := nodeBuilder .verbosity
415420 nodeBuilder .verbosity = vc
421+ defer func () {
422+ nodeBuilder .verbosity = oldVerbosity
423+ }()
416424 nodes := nodeBuilder .ExpandSymbolForHover (symbol , meaning )
417425 if len (nodes ) == 0 {
418426 return ""
@@ -435,7 +443,11 @@ func (c *Checker) ExpandSymbolForHover(symbol *ast.Symbol, meaning ast.SymbolFla
435443// TypeParameterToStringEx renders a type parameter declaration (e.g. "T extends Foo") with optional verbosity support.
436444func (c * Checker ) TypeParameterToStringEx (t * Type , enclosingDeclaration * ast.Node , vc * VerbosityContext ) string {
437445 nodeBuilder := c .getNodeBuilder ()
446+ oldVerbosity := nodeBuilder .verbosity
438447 nodeBuilder .verbosity = vc
448+ defer func () {
449+ nodeBuilder .verbosity = oldVerbosity
450+ }()
439451 typeParamNode := nodeBuilder .TypeParameterToDeclaration (t , enclosingDeclaration , nodebuilder .FlagsIgnoreErrors , nodebuilder .InternalFlagsNone , nil )
440452 if typeParamNode == nil {
441453 return c .TypeToString (t )
0 commit comments