fix mispositioned span
This commit is contained in:
parent
73ac5d6a80
commit
4cedbfc6ee
2 changed files with 2 additions and 67 deletions
|
@ -1187,7 +1187,7 @@ impl EmitterWriter {
|
|||
let sub_len = parts[0].snippet.trim().chars().fold(0, |acc, ch| {
|
||||
acc + unicode_width::UnicodeWidthChar::width(ch).unwrap_or(0)
|
||||
});
|
||||
let underline_start = span_start_pos.col.0 + start;
|
||||
let underline_start = span_start_pos.col_display + start;
|
||||
let underline_end = span_start_pos.col.0 + start + sub_len;
|
||||
for p in underline_start..underline_end {
|
||||
buffer.putc(row_num,
|
||||
|
|
|
@ -2,72 +2,7 @@
|
|||
"message": "cannot find type `Iter` in this scope",
|
||||
"code": {
|
||||
"code": "E0412",
|
||||
"explanation": "
|
||||
The type name used is not in scope.
|
||||
|
||||
Erroneous code examples:
|
||||
|
||||
```compile_fail,E0412
|
||||
impl Something {} // error: type name `Something` is not in scope
|
||||
|
||||
// or:
|
||||
|
||||
trait Foo {
|
||||
fn bar(N); // error: type name `N` is not in scope
|
||||
}
|
||||
|
||||
// or:
|
||||
|
||||
fn foo(x: T) {} // type name `T` is not in scope
|
||||
```
|
||||
|
||||
To fix this error, please verify you didn't misspell the type name, you did
|
||||
declare it or imported it into the scope. Examples:
|
||||
|
||||
```
|
||||
struct Something;
|
||||
|
||||
impl Something {} // ok!
|
||||
|
||||
// or:
|
||||
|
||||
trait Foo {
|
||||
type N;
|
||||
|
||||
fn bar(_: Self::N); // ok!
|
||||
}
|
||||
|
||||
// or:
|
||||
|
||||
fn foo<T>(x: T) {} // ok!
|
||||
```
|
||||
|
||||
Another case that causes this error is when a type is imported into a parent
|
||||
module. To fix this, you can follow the suggestion and use File directly or
|
||||
`use super::File;` which will import the types from the parent namespace. An
|
||||
example that causes this error is below:
|
||||
|
||||
```compile_fail,E0412
|
||||
use std::fs::File;
|
||||
|
||||
mod foo {
|
||||
fn some_function(f: File) {}
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
use std::fs::File;
|
||||
|
||||
mod foo {
|
||||
// either
|
||||
use super::File;
|
||||
// or
|
||||
// use std::fs::File;
|
||||
fn foo(f: File) {}
|
||||
}
|
||||
# fn main() {} // don't insert it for us; that'll break imports
|
||||
```
|
||||
"
|
||||
"explanation": null
|
||||
},
|
||||
"level": "error",
|
||||
"spans": [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue