Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve DiagnosticBuilder docs #63488

Merged
merged 1 commit into from Aug 14, 2019

Conversation

@RalfJung
Copy link
Member

commented Aug 12, 2019

Cc @estebank @oli-obk

Is there any way to do something like span_note but with a label attached to the span? I thought .span_note().span_label() would do it, but no, that does not work.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Aug 12, 2019

r? @zackmdavis

(rust_highfive has picked a reviewer for you, use r? to override)

@@ -120,6 +120,9 @@ impl Diagnostic {
}

/// Adds a span/label to be included in the resulting snippet.
/// This label will be shown together with the original span/label used when creating the
/// diagnostic, *not* a span added by one of the `span_*` methods.
///
/// This is pushed onto the `MultiSpan` that was created when the
/// diagnostic was first built. If you don't call this function at
/// all, and you just supplied a `Span` to create the diagnostic,

This comment has been minimized.

Copy link
@RalfJung

RalfJung Aug 12, 2019

Author Member

I have no idea what this second paragraph here means. I left it because maybe it helps someone else? But it seems to only be helpful for people that actually know the internals of how diagnostics work. Maybe it even says what I am now also saying in the new sentence I added? I couldn't tell.^^

This comment has been minimized.

Copy link
@estebank

estebank Aug 12, 2019

Contributor

If you called struct_span_err, for example, you end up with an error with an underline under that span with no label. If you use span_label on the DiagnosticBuilder you can either set the label of the primary span or add more spans to the diagnostic. I believe this is what the comment is trying to convey.

This comment has been minimized.

Copy link
@RalfJung

RalfJung Aug 12, 2019

Author Member

Okay, that wasn't really clear to me as I never heard of MultiSpan. Now it says the same thing in two different ways then, maybe that helps...

This comment has been minimized.

Copy link
@estebank

estebank Aug 12, 2019

Contributor

MultiSpan is the only way of setting multiple primary spans, conceptually just Vec<Span>.

This comment has been minimized.

Copy link
@RalfJung

RalfJung Aug 12, 2019

Author Member

I see. I thought it would refer to how span_note also adds a new span to the message, but that seems to be a different kind of "multiple spans".

@Centril

This comment has been minimized.

Copy link
Member

commented Aug 12, 2019

@rust-highfive rust-highfive assigned estebank and unassigned zackmdavis Aug 12, 2019

@zackmdavis

This comment has been minimized.

Copy link
Member

commented Aug 12, 2019

r? @zackmdavis

@bors r+ rollup

@bors

This comment has been minimized.

Copy link
Contributor

commented Aug 12, 2019

📌 Commit fecf305 has been approved by zackmdavis

@RalfJung

This comment has been minimized.

Copy link
Member Author

commented Aug 12, 2019

@zackmdavis can you help answering the questions in the OP / in my comment above?

@estebank

This comment has been minimized.

Copy link
Contributor

commented Aug 12, 2019

Is there any way to do something like span_note but with a label attached to the span?

@RalfJung not at the moment. It's been a low prio feature request of mine for a while. I haven't taken it on due to not wanting to duplicate work given the push for #59346.

Centril added a commit to Centril/rust that referenced this pull request Aug 13, 2019

Rollup merge of rust-lang#63488 - RalfJung:diagnostic-docs, r=zackmdavis
improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

bors added a commit that referenced this pull request Aug 13, 2019

Auto merge of #63515 - Centril:rollup-r0z0yi8, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)
 - #63499 (handle elision in async fn correctly)

Failed merges:

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Aug 13, 2019

Rollup merge of rust-lang#63488 - RalfJung:diagnostic-docs, r=zackmdavis
improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

bors added a commit that referenced this pull request Aug 13, 2019

Auto merge of #63517 - Centril:rollup-8qbalaf, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)

Failed merges:

r? @ghost

bors added a commit that referenced this pull request Aug 13, 2019

Auto merge of #63517 - Centril:rollup-8qbalaf, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)

Failed merges:

r? @ghost

bors added a commit that referenced this pull request Aug 13, 2019

Auto merge of #63517 - Centril:rollup-8qbalaf, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)

Failed merges:

r? @ghost

bors added a commit that referenced this pull request Aug 13, 2019

Auto merge of #63517 - Centril:rollup-8qbalaf, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)

Failed merges:

r? @ghost

Mark-Simulacrum added a commit to Mark-Simulacrum/rust that referenced this pull request Aug 14, 2019

Rollup merge of rust-lang#63488 - RalfJung:diagnostic-docs, r=zackmdavis
improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

bors added a commit that referenced this pull request Aug 14, 2019

Auto merge of #63540 - Mark-Simulacrum:rollup-t0qq657, r=Mark-Simulacrum
Rollup of 11 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63470 (Utilize -Zbinary-dep-depinfo in rustbuild)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63488 (improve DiagnosticBuilder docs)
 - #63491 (Update RLS)
 - #63534 (Bump to 1.39)

Failed merges:

 - #63487 (Remove meaningless comments in src/test)

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Aug 14, 2019

Rollup merge of rust-lang#63488 - RalfJung:diagnostic-docs, r=zackmdavis
improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

bors added a commit that referenced this pull request Aug 14, 2019

Auto merge of #63541 - Centril:rollup-d3q7074, r=Centril
Rollup of 16 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)
 - #63499 (handle elision in async fn correctly)
 - #63501 (use `ParamName` to track in-scope lifetimes instead of Ident)
 - #63512 (Provide map_ok and map_err method for Poll<Option<Result<T, E>>>)
 - #63529 (RELEASES.md: ? is one of three Kleene operators)
 - #63530 (Fix typo in error message.)
 - #63534 (Bump to 1.39)

Failed merges:

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Aug 14, 2019

Rollup merge of rust-lang#63488 - RalfJung:diagnostic-docs, r=zackmdavis
improve DiagnosticBuilder docs

Cc @estebank @oli-obk

Is there any way to do something like `span_note` but with a label attached to the span? I thought `.span_note().span_label()` would do it, but no, that does not work.

bors added a commit that referenced this pull request Aug 14, 2019

Auto merge of #63544 - Centril:rollup-qhqfcov, r=Centril
Rollup of 17 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)
 - #63499 (handle elision in async fn correctly)
 - #63501 (use `ParamName` to track in-scope lifetimes instead of Ident)
 - #63508 (Do not ICE when synthesizing spans falling inside unicode chars)
 - #63511 (ci: add a check for clock drift)
 - #63512 (Provide map_ok and map_err method for Poll<Option<Result<T, E>>>)
 - #63529 (RELEASES.md: ? is one of three Kleene operators)
 - #63530 (Fix typo in error message.)

Failed merges:

r? @ghost

bors added a commit that referenced this pull request Aug 14, 2019

Auto merge of #63517 - Centril:rollup-8qbalaf, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)

Failed merges:

r? @ghost

bors added a commit that referenced this pull request Aug 14, 2019

Auto merge of #63544 - Centril:rollup-qhqfcov, r=Centril
Rollup of 17 pull requests

Successful merges:

 - #62760 (Deduplicate error messages in `librsctc_mir`)
 - #62849 (typeck: Prohibit RPIT types that inherit lifetimes)
 - #63383 (`async fn` lifetime elision tests)
 - #63421 (Implement Clone, Display for ascii::EscapeDefault)
 - #63459 (syntax: account for CVarArgs being in the argument list.)
 - #63475 (Bring back suggestion for splitting `<-` into `< -`)
 - #63485 (ci: move mirrors to their standalone bucket)
 - #63486 (Document `From` trait for `BinaryHeap`)
 - #63488 (improve DiagnosticBuilder docs)
 - #63493 (Remove unneeded comment in src/libcore/hash/mod.rs)
 - #63499 (handle elision in async fn correctly)
 - #63501 (use `ParamName` to track in-scope lifetimes instead of Ident)
 - #63508 (Do not ICE when synthesizing spans falling inside unicode chars)
 - #63511 (ci: add a check for clock drift)
 - #63512 (Provide map_ok and map_err method for Poll<Option<Result<T, E>>>)
 - #63529 (RELEASES.md: ? is one of three Kleene operators)
 - #63530 (Fix typo in error message.)

Failed merges:

r? @ghost

@bors bors merged commit fecf305 into rust-lang:master Aug 14, 2019

2 of 4 checks passed

pr
Details
pr (Linux x86_64-gnu-llvm-6.0)
Details
pr (Linux mingw-check) Linux mingw-check succeeded
Details
pr (LinuxTools) LinuxTools succeeded
Details

@RalfJung RalfJung deleted the RalfJung:diagnostic-docs branch Aug 15, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.