Lower Backtrace
and SourceContext
to SPI.
#539
Merged
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.
Backtrace
is our implementation of a stack trace type. Xcode 16 uses it to provide richer information about test failures than can be provided by just an instance ofSourceLocation
.The standard library has its own type,
_Backtracing.Backtrace
, but due to our deployment requirements on Apple platforms, we can't use it yet. It would make sense for us to adopt theBacktrace
type in the standard library as soon as possible. To avoid staging issues in the future, and because our type has not undergone any sort of formal review, I'm lowering it to tools-only SPI.I'm also lowering
SourceContext
because it consists of an instance ofBacktrace
and an instance ofSourceLocation
—but ifBacktrace
is SPI, then the public interface ofSourceContext
is simply a wrapper aroundSourceLocation
. This does not eliminate the internal need for the type, but it does make it redundant from an API perspective. If and when we regainBacktrace
as a public interface, we can look at raisingSourceContext
too.Checklist: