Merge HandleTracking
interception aspect into RecordInvocation
#723
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The first of these two interception aspects basically has the same purpose as the latter: recording that an invocation happened. For this reason, it would make sense to do combine the former into the latter, and thus to speed up the interception pipeline.
There's one possible BUT against moving the logic of
HandleTracking
intoRecordInvocation
: InRecordInvocation
, we no longer have the chance to record invocations of "well-known methods" (such as those defined bySystem.Object
) because the interception pipeline might already have stopped at that point.Fortunately, this doesn't matter as we are typically not interested in those well-known methods when making use of
AmbientObserver
: they don't have signatures that allow chaining or assignment, nor are they matchers.