mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-23 02:27:39 +03:00
Do not ICE when synthesizing spans falling inside unicode chars
This commit is contained in:
@@ -554,8 +554,14 @@ fn span_to_source<F>(&self, sp: Span, extract_source: F) -> Result<String, SpanS
|
||||
}
|
||||
|
||||
if let Some(ref src) = local_begin.sf.src {
|
||||
if !src.is_char_boundary(start_index) || !src.is_char_boundary(end_index) {
|
||||
return Err(SpanSnippetError::IllFormedSpan(sp));
|
||||
}
|
||||
return Ok(extract_source(src, start_index, end_index));
|
||||
} else if let Some(src) = local_begin.sf.external_src.borrow().get_source() {
|
||||
if !src.is_char_boundary(start_index) || !src.is_char_boundary(end_index) {
|
||||
return Err(SpanSnippetError::IllFormedSpan(sp));
|
||||
}
|
||||
return Ok(extract_source(src, start_index, end_index));
|
||||
} else {
|
||||
return Err(SpanSnippetError::SourceNotAvailable {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
struct X {}
|
||||
fn f() {
|
||||
vec![X]; //…
|
||||
//~^ ERROR expected value, found struct `X`
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
error[E0423]: expected value, found struct `X`
|
||||
--> $DIR/issue-61226.rs:3:10
|
||||
|
|
||||
LL | vec![X]; //…
|
||||
| ^
|
||||
| |
|
||||
| did you mean `X { /* fields */ }`?
|
||||
| help: a function with a similar name exists: `f`
|
||||
|
||||
error[E0601]: `main` function not found in crate `issue_61226`
|
||||
|
|
||||
= note: consider adding a `main` function to `$DIR/issue-61226.rs`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0423, E0601.
|
||||
For more information about an error, try `rustc --explain E0423`.
|
||||
Reference in New Issue
Block a user