@@ -806,6 +806,8 @@ func (s *Session) HandleRequest(ctx context.Context, method string, params json.
806806 return s .handleGetAliasedSymbol (ctx , parsed .(* CheckerSymbolParams ))
807807 case string (MethodGetImmediateAliasedSymbol ):
808808 return s .handleGetImmediateAliasedSymbol (ctx , parsed .(* CheckerSymbolParams ))
809+ case string (MethodGetTargetSymbol ):
810+ return s .handleMethodGetTargetSymbol (ctx , parsed .(* CheckerSymbolParams ))
809811 case string (MethodGetFullyQualifiedName ):
810812 return s .handleGetFullyQualifiedName (ctx , parsed .(* CheckerSymbolParams ))
811813 case string (MethodGetExportsOfModule ):
@@ -3346,6 +3348,23 @@ func (s *Session) handleGetImmediateAliasedSymbol(ctx context.Context, params *C
33463348 return setup .newSymbolResponse (aliased ), nil
33473349}
33483350
3351+ // handleGetTargetSymbol returns the target symbol if the symbol is instantiated,
3352+ // otherwise returns the provided symbol.
3353+ func (s * Session ) handleMethodGetTargetSymbol (ctx context.Context , params * CheckerSymbolParams ) (* SymbolResponse , error ) {
3354+ setup , err := s .setupChecker (ctx , params .Snapshot , params .Project )
3355+ if err != nil {
3356+ return nil , err
3357+ }
3358+ defer setup .done ()
3359+
3360+ symbol , err := setup .resolveSymbolHandle (params .Symbol )
3361+ if err != nil {
3362+ return nil , err
3363+ }
3364+
3365+ return setup .newSymbolResponse (setup .checker .GetTargetSymbol (symbol )), nil
3366+ }
3367+
33493368// handleGetExportsOfModule returns the resolved exports of a module symbol,
33503369// including those introduced by `export *` and re-exports.
33513370// @gen-proto-nullable
0 commit comments