From a90b7300be7c0e2a1e83e1753a958fa84c930f72 Mon Sep 17 00:00:00 2001 From: Ian Cottrell Date: Tue, 21 Apr 2020 09:41:57 -0400 Subject: internal/event: remove the event.eventType type Instead of tagging events with their type, instead we infer the type from the label pattern. The standard event creators all have a matching test that returns true if the the labels pattern matches the ones that would be built by the creator. Spans and logs already have a unique label pattern, other event types required a special label marker. This makes the system much more extensible, and also cleans up some the API. Change-Id: I1fbc9ec07aa84ead6c12bbd5ca65b13b605bfa4a Reviewed-on: https://go-review.googlesource.com/c/tools/+/229242 Run-TryBot: Ian Cottrell TryBot-Result: Gobot Gobot Reviewed-by: Emmanuel Odeke --- internal/lsp/debug/rpc.go | 7 ++++--- internal/lsp/debug/serve.go | 2 +- internal/lsp/debug/trace.go | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'internal/lsp/debug') diff --git a/internal/lsp/debug/rpc.go b/internal/lsp/debug/rpc.go index f15f6cabb..2732971c6 100644 --- a/internal/lsp/debug/rpc.go +++ b/internal/lsp/debug/rpc.go @@ -13,6 +13,7 @@ import ( "sync" "time" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/event/core" "golang.org/x/tools/internal/event/export" "golang.org/x/tools/internal/event/label" @@ -82,16 +83,16 @@ func (r *rpcs) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) co r.mu.Lock() defer r.mu.Unlock() switch { - case ev.IsStartSpan(): + case event.IsStart(ev): if _, stats := r.getRPCSpan(ctx, ev); stats != nil { stats.Started++ } - case ev.IsEndSpan(): + case event.IsEnd(ev): span, stats := r.getRPCSpan(ctx, ev) if stats != nil { endRPC(ctx, ev, span, stats) } - case ev.IsRecord(): + case event.IsMetric(ev): sent := byteUnits(tag.SentBytes.Get(lm)) rec := byteUnits(tag.ReceivedBytes.Get(lm)) if sent != 0 || rec != 0 { diff --git a/internal/lsp/debug/serve.go b/internal/lsp/debug/serve.go index 7e8c98a03..b364c70f0 100644 --- a/internal/lsp/debug/serve.go +++ b/internal/lsp/debug/serve.go @@ -548,7 +548,7 @@ func makeGlobalExporter(stderr io.Writer) event.Exporter { return func(ctx context.Context, ev core.Event, lm label.Map) context.Context { i := GetInstance(ctx) - if ev.IsLog() { + if event.IsLog(ev) { // Don't log context cancellation errors. if err := keys.Err.Get(ev); xerrors.Is(err, context.Canceled) { return ctx diff --git a/internal/lsp/debug/trace.go b/internal/lsp/debug/trace.go index 36dd530f6..4a3b90554 100644 --- a/internal/lsp/debug/trace.go +++ b/internal/lsp/debug/trace.go @@ -15,6 +15,7 @@ import ( "sync" "time" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/event/core" "golang.org/x/tools/internal/event/export" "golang.org/x/tools/internal/event/label" @@ -83,7 +84,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) } switch { - case ev.IsStartSpan(): + case event.IsStart(ev): if t.sets == nil { t.sets = make(map[string]*traceSet) t.unfinished = make(map[export.SpanContext]*traceData) @@ -110,7 +111,7 @@ func (t *traces) ProcessEvent(ctx context.Context, ev core.Event, lm label.Map) } parent.Children = append(parent.Children, td) - case ev.IsEndSpan(): + case event.IsEnd(ev): // finishing, must be already in the map td, found := t.unfinished[span.ID] if !found { -- cgit v1.2.3