mirror of
https://github.com/sbt/sbt.git
synced 2026-09-05 01:03:36 +02:00
feat: update Problem to account for related information and code
This PR makes changes to the existing `xsbti.Problem` to account for an
optional diagnostic code that the compiler can return for a given
diagnostic and also related information.
Given a piece of code like:
```scala
try {}
```
You'll receive the following:
```
-- [E002] Syntax Warning: /Users/ckipp/Documents/scala-workspace/dotty-error-index/examples/002_EmptyCatchAndFinallyBlockID.scala:3:2
3 | try {}
| ^^^^^^
| A try without catch or finally is equivalent to putting
| its body in a block; no exceptions are handled.
```
The `E002` here is the actual code. Right now there would be no
description.
Some diagnostics have multiple positions that they need to represent.
You can see an example of this
[here](lampepfl/dotty#14002) in Dotty with the
use of inlining. Instead of needing to rely on including all of that
information in the diagnostic message it can now be extracted out into
a `DiagnosticRelatedInformation`.
These changes reference the conversation in #6868
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* sbt
|
||||
* Copyright 2011 - 2018, Lightbend, Inc.
|
||||
* Copyright 2008 - 2010, Mark Harrah
|
||||
* Licensed under Apache License 2.0 (see LICENSE)
|
||||
*/
|
||||
|
||||
package xsbti;
|
||||
|
||||
/**
|
||||
* Related information for a given diagnostic. At times this can be another place in your code
|
||||
* contributing to the diagnostic or just relevant code relating to the diagnostic.
|
||||
*/
|
||||
public interface DiagnosticRelatedInformation {
|
||||
/** Position of the related information */
|
||||
Position position();
|
||||
|
||||
/** Message indicating why this related information is attached to the diagnostic. */
|
||||
String message();
|
||||
}
|
||||
Reference in New Issue
Block a user