mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-05 19:43:24 +00:00
Bring attention to suggestions when the only difference is capitalization
This commit is contained in:
parent
898f36c83c
commit
4bb771615e
@ -23,7 +23,7 @@ use syntax::feature_gate::UnstableFeatures;
|
||||
use syntax::source_map::SourceMap;
|
||||
|
||||
use errors::emitter::HumanReadableErrorType;
|
||||
use errors::{ColorConfig, FatalError, Handler};
|
||||
use errors::{ColorConfig, FatalError, Handler, SourceMapperDyn};
|
||||
|
||||
use getopts;
|
||||
|
||||
@ -1854,6 +1854,7 @@ struct NullEmitter;
|
||||
|
||||
impl errors::emitter::Emitter for NullEmitter {
|
||||
fn emit_diagnostic(&mut self, _: &errors::Diagnostic) {}
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>> { None }
|
||||
}
|
||||
|
||||
// Converts strings provided as `--cfg [cfgspec]` into a `crate_cfg`.
|
||||
|
@ -22,7 +22,8 @@ use rustc::util::common::{time_depth, set_time_depth, print_time_passes_entry};
|
||||
use rustc::util::profiling::SelfProfilerRef;
|
||||
use rustc_fs_util::link_or_copy;
|
||||
use rustc_data_structures::svh::Svh;
|
||||
use rustc_errors::{Handler, Level, FatalError, DiagnosticId};
|
||||
use rustc_data_structures::sync::Lrc;
|
||||
use rustc_errors::{Handler, Level, FatalError, DiagnosticId, SourceMapperDyn};
|
||||
use rustc_errors::emitter::{Emitter};
|
||||
use rustc_target::spec::MergeFunctions;
|
||||
use syntax::attr;
|
||||
@ -1681,6 +1682,9 @@ impl Emitter for SharedEmitter {
|
||||
}
|
||||
drop(self.sender.send(SharedEmitterMessage::AbortIfErrors));
|
||||
}
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
impl SharedEmitterMain {
|
||||
|
@ -49,6 +49,10 @@ impl Emitter for AnnotateSnippetEmitterWriter {
|
||||
&suggestions);
|
||||
}
|
||||
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>> {
|
||||
self.source_map.as_ref()
|
||||
}
|
||||
|
||||
fn should_show_explain(&self) -> bool {
|
||||
!self.short_message
|
||||
}
|
||||
|
@ -192,6 +192,8 @@ pub trait Emitter {
|
||||
true
|
||||
}
|
||||
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>>;
|
||||
|
||||
/// Formats the substitutions of the primary_span
|
||||
///
|
||||
/// The are a lot of conditions to this method, but in short:
|
||||
@ -204,7 +206,7 @@ pub trait Emitter {
|
||||
/// we return the original `primary_span` and the original suggestions.
|
||||
fn primary_span_formatted<'a>(
|
||||
&mut self,
|
||||
db: &'a Diagnostic
|
||||
db: &'a Diagnostic,
|
||||
) -> (MultiSpan, &'a [CodeSuggestion]) {
|
||||
let mut primary_span = db.span.clone();
|
||||
if let Some((sugg, rest)) = db.suggestions.split_first() {
|
||||
@ -234,7 +236,20 @@ pub trait Emitter {
|
||||
format!("help: {}", sugg.msg)
|
||||
} else {
|
||||
// Show the default suggestion text with the substitution
|
||||
format!("help: {}: `{}`", sugg.msg, substitution)
|
||||
format!(
|
||||
"help: {}{}: `{}`",
|
||||
sugg.msg,
|
||||
if self.source_map().as_ref().map(|sm| substitution.to_lowercase() == sm
|
||||
.span_to_snippet(sugg.substitutions[0].parts[0].span)
|
||||
.unwrap()
|
||||
.to_lowercase()).unwrap_or(false)
|
||||
{
|
||||
" (notice the capitalization)"
|
||||
} else {
|
||||
""
|
||||
},
|
||||
substitution,
|
||||
)
|
||||
};
|
||||
primary_span.push_span_label(sugg.substitutions[0].parts[0].span, msg);
|
||||
|
||||
@ -382,6 +397,10 @@ pub trait Emitter {
|
||||
}
|
||||
|
||||
impl Emitter for EmitterWriter {
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>> {
|
||||
self.sm.as_ref()
|
||||
}
|
||||
|
||||
fn emit_diagnostic(&mut self, db: &Diagnostic) {
|
||||
let mut children = db.children.clone();
|
||||
let (mut primary_span, suggestions) = self.primary_span_formatted(&db);
|
||||
@ -1461,7 +1480,9 @@ impl EmitterWriter {
|
||||
let suggestions = suggestion.splice_lines(&**sm);
|
||||
|
||||
let mut row_num = 2;
|
||||
for &(ref complete, ref parts) in suggestions.iter().take(MAX_SUGGESTIONS) {
|
||||
let mut notice_capitalization = false;
|
||||
for (complete, parts, only_capitalization) in suggestions.iter().take(MAX_SUGGESTIONS) {
|
||||
notice_capitalization |= only_capitalization;
|
||||
// Only show underline if the suggestion spans a single line and doesn't cover the
|
||||
// entirety of the code output. If you have multiple replacements in the same line
|
||||
// of code, show the underline.
|
||||
@ -1552,7 +1573,10 @@ impl EmitterWriter {
|
||||
}
|
||||
if suggestions.len() > MAX_SUGGESTIONS {
|
||||
let msg = format!("and {} other candidates", suggestions.len() - MAX_SUGGESTIONS);
|
||||
buffer.puts(row_num, 0, &msg, Style::NoStyle);
|
||||
buffer.puts(row_num, max_line_num_len + 3, &msg, Style::NoStyle);
|
||||
} else if notice_capitalization {
|
||||
let msg = "notice the capitalization difference";
|
||||
buffer.puts(row_num, max_line_num_len + 3, &msg, Style::NoStyle);
|
||||
}
|
||||
emit_to_destination(&buffer.render(), level, &mut self.dst, self.short_message)?;
|
||||
Ok(())
|
||||
|
@ -37,13 +37,16 @@ pub mod registry;
|
||||
mod styled_buffer;
|
||||
mod lock;
|
||||
|
||||
use syntax_pos::{BytePos,
|
||||
Loc,
|
||||
FileLinesResult,
|
||||
SourceFile,
|
||||
FileName,
|
||||
MultiSpan,
|
||||
Span};
|
||||
use syntax_pos::{
|
||||
BytePos,
|
||||
FileLinesResult,
|
||||
FileName,
|
||||
Loc,
|
||||
MultiSpan,
|
||||
SourceFile,
|
||||
Span,
|
||||
SpanSnippetError,
|
||||
};
|
||||
|
||||
/// Indicates the confidence in the correctness of a suggestion.
|
||||
///
|
||||
@ -147,6 +150,7 @@ pub trait SourceMapper {
|
||||
fn lookup_char_pos(&self, pos: BytePos) -> Loc;
|
||||
fn span_to_lines(&self, sp: Span) -> FileLinesResult;
|
||||
fn span_to_string(&self, sp: Span) -> String;
|
||||
fn span_to_snippet(&self, sp: Span) -> Result<String, SpanSnippetError>;
|
||||
fn span_to_filename(&self, sp: Span) -> FileName;
|
||||
fn merge_spans(&self, sp_lhs: Span, sp_rhs: Span) -> Option<Span>;
|
||||
fn call_span_if_macro(&self, sp: Span) -> Span;
|
||||
@ -155,9 +159,12 @@ pub trait SourceMapper {
|
||||
}
|
||||
|
||||
impl CodeSuggestion {
|
||||
/// Returns the assembled code suggestions and whether they should be shown with an underline.
|
||||
pub fn splice_lines(&self, cm: &SourceMapperDyn)
|
||||
-> Vec<(String, Vec<SubstitutionPart>)> {
|
||||
/// Returns the assembled code suggestions, whether they should be shown with an underline
|
||||
/// and whether the substitution only differs in capitalization.
|
||||
pub fn splice_lines(
|
||||
&self,
|
||||
cm: &SourceMapperDyn,
|
||||
) -> Vec<(String, Vec<SubstitutionPart>, bool)> {
|
||||
use syntax_pos::{CharPos, Pos};
|
||||
|
||||
fn push_trailing(buf: &mut String,
|
||||
@ -232,6 +239,8 @@ impl CodeSuggestion {
|
||||
prev_hi = cm.lookup_char_pos(part.span.hi());
|
||||
prev_line = fm.get_line(prev_hi.line - 1);
|
||||
}
|
||||
let only_capitalization = buf.clone().to_lowercase()
|
||||
== cm.span_to_snippet(bounding_span).unwrap().to_lowercase();
|
||||
// if the replacement already ends with a newline, don't print the next line
|
||||
if !buf.ends_with('\n') {
|
||||
push_trailing(&mut buf, prev_line.as_ref(), &prev_hi, None);
|
||||
@ -240,7 +249,8 @@ impl CodeSuggestion {
|
||||
while buf.ends_with('\n') {
|
||||
buf.pop();
|
||||
}
|
||||
(buf, substitution.parts)
|
||||
(buf, substitution.parts, only_capitalization)
|
||||
|
||||
}).collect()
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
use crate::source_map::{SourceMap, FilePathMapping};
|
||||
|
||||
use errors::registry::Registry;
|
||||
use errors::{SubDiagnostic, CodeSuggestion, SourceMapper};
|
||||
use errors::{SubDiagnostic, CodeSuggestion, SourceMapper, SourceMapperDyn};
|
||||
use errors::{DiagnosticId, Applicability};
|
||||
use errors::emitter::{Emitter, HumanReadableErrorType};
|
||||
|
||||
@ -113,6 +113,10 @@ impl Emitter for JsonEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
fn source_map(&self) -> Option<&Lrc<SourceMapperDyn>> {
|
||||
Some(&self.sm)
|
||||
}
|
||||
|
||||
fn should_show_explain(&self) -> bool {
|
||||
match self.json_rendered {
|
||||
HumanReadableErrorType::Short(_) => false,
|
||||
|
@ -987,6 +987,9 @@ impl SourceMapper for SourceMap {
|
||||
fn span_to_string(&self, sp: Span) -> String {
|
||||
self.span_to_string(sp)
|
||||
}
|
||||
fn span_to_snippet(&self, sp: Span) -> Result<String, SpanSnippetError> {
|
||||
self.span_to_snippet(sp)
|
||||
}
|
||||
fn span_to_filename(&self, sp: Span) -> FileName {
|
||||
self.span_to_filename(sp)
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ error: const parameter `x` should have an upper case name
|
||||
--> $DIR/const-parameter-uppercase-lint.rs:6:15
|
||||
|
|
||||
LL | fn noop<const x: u32>() {
|
||||
| ^ help: convert the identifier to upper case: `X`
|
||||
| ^ help: convert the identifier to upper case (notice the capitalization): `X`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/const-parameter-uppercase-lint.rs:4:9
|
||||
|
@ -20,7 +20,7 @@ warning: constant `X_const` should have an upper case name
|
||||
--> $DIR/const_fn_ptr.rs:9:7
|
||||
|
|
||||
LL | const X_const: fn(usize) -> usize = double_const;
|
||||
| ^^^^^^^ help: convert the identifier to upper case: `X_CONST`
|
||||
| ^^^^^^^ help: convert the identifier to upper case (notice the capitalization): `X_CONST`
|
||||
|
|
||||
= note: `#[warn(non_upper_case_globals)]` on by default
|
||||
|
||||
|
@ -55,7 +55,7 @@ LL | let z = ManyVariants::Three();
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
LL | let z = ManyVariants::Four();
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
and 6 other candidates
|
||||
and 6 other candidates
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
@ -13,7 +13,7 @@ LL | fn setup() -> Determine { Set }
|
||||
| ^^^^^^^^^
|
||||
LL | fn setup() -> PutDown { Set }
|
||||
| ^^^^^^^
|
||||
and 3 other candidates
|
||||
and 3 other candidates
|
||||
|
||||
error[E0425]: cannot find value `Set` in this scope
|
||||
--> $DIR/issue-56028-there-is-an-enum-variant.rs:9:21
|
||||
@ -30,7 +30,7 @@ LL | use Determine::Set;
|
||||
|
|
||||
LL | use PutDown::Set;
|
||||
|
|
||||
and 3 other candidates
|
||||
and 3 other candidates
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -2,7 +2,7 @@ error: function `BOGUS` should have a snake case name
|
||||
--> $DIR/enable-unstable-lib-feature.rs:11:8
|
||||
|
|
||||
LL | pub fn BOGUS() { }
|
||||
| ^^^^^ help: convert the identifier to snake case: `bogus`
|
||||
| ^^^^^ help: convert the identifier to snake case (notice the capitalization): `bogus`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/enable-unstable-lib-feature.rs:6:9
|
||||
|
@ -34,7 +34,7 @@ LL | let f = Foo();
|
||||
| ^^^
|
||||
| |
|
||||
| did you mean `Foo { /* fields */ }`?
|
||||
| help: a function with a similar name exists: `foo`
|
||||
| help: a function with a similar name exists (notice the capitalization): `foo`
|
||||
|
||||
error[E0423]: expected value, found struct `T`
|
||||
--> $DIR/E0423.rs:14:8
|
||||
|
@ -2,7 +2,7 @@ error: variable `X` should have a snake case name
|
||||
--> $DIR/expr_attr_paren_order.rs:19:17
|
||||
|
|
||||
LL | let X = 0;
|
||||
| ^ help: convert the identifier to snake case: `x`
|
||||
| ^ help: convert the identifier to snake case (notice the capitalization): `x`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/expr_attr_paren_order.rs:17:17
|
||||
|
@ -5,7 +5,7 @@ LL | use my_core;
|
||||
| ^^^^^^^
|
||||
| |
|
||||
| no `my_core` in the root
|
||||
| help: a similar name exists in the module: `my_core`
|
||||
| help: a similar name exists in the module (notice the capitalization): `my_core`
|
||||
|
||||
error[E0432]: unresolved import `my_core`
|
||||
--> $DIR/extern-prelude-from-opaque-fail.rs:7:13
|
||||
|
@ -34,7 +34,7 @@ LL | use foo::test2::test::g;
|
||||
|
|
||||
LL | use foo::test::g;
|
||||
|
|
||||
and 2 other candidates
|
||||
and 2 other candidates
|
||||
|
||||
error[E0425]: cannot find function `f` in this scope
|
||||
--> $DIR/globs.rs:61:12
|
||||
|
@ -2,7 +2,7 @@ error[E0425]: cannot find value `Opaque` in this scope
|
||||
--> $DIR/rustc-macro-transparency.rs:26:5
|
||||
|
|
||||
LL | Opaque;
|
||||
| ^^^^^^ help: a local variable with a similar name exists: `opaque`
|
||||
| ^^^^^^ help: a local variable with a similar name exists (notice the capitalization): `opaque`
|
||||
|
||||
error[E0423]: expected value, found macro `semitransparent`
|
||||
--> $DIR/rustc-macro-transparency.rs:29:5
|
||||
|
@ -2,7 +2,7 @@ error[E0532]: expected tuple struct/variant, found function `foo`
|
||||
--> $DIR/issue-10200.rs:6:9
|
||||
|
|
||||
LL | foo(x)
|
||||
| ^^^ help: a tuple struct with a similar name exists: `Foo`
|
||||
| ^^^ help: a tuple struct with a similar name exists (notice the capitalization): `Foo`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -27,7 +27,7 @@ LL | use std::prelude::v1::Result;
|
||||
|
|
||||
LL | use std::result::Result;
|
||||
|
|
||||
and 1 other candidates
|
||||
and 1 other candidates
|
||||
|
||||
error[E0573]: expected type, found variant `Result`
|
||||
--> $DIR/issue-17546.rs:28:13
|
||||
@ -44,7 +44,7 @@ LL | use std::prelude::v1::Result;
|
||||
|
|
||||
LL | use std::result::Result;
|
||||
|
|
||||
and 1 other candidates
|
||||
and 1 other candidates
|
||||
|
||||
error[E0573]: expected type, found variant `NoResult`
|
||||
--> $DIR/issue-17546.rs:33:15
|
||||
|
@ -15,7 +15,7 @@ error: constant `foo` should have an upper case name
|
||||
--> $DIR/issue-17718-const-naming.rs:4:7
|
||||
|
|
||||
LL | const foo: isize = 3;
|
||||
| ^^^ help: convert the identifier to upper case: `FOO`
|
||||
| ^^^ help: convert the identifier to upper case (notice the capitalization): `FOO`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/issue-17718-const-naming.rs:2:9
|
||||
|
@ -2,7 +2,7 @@ error[E0422]: cannot find struct, variant or union type `TyUInt` in this scope
|
||||
--> $DIR/issue-46332.rs:9:5
|
||||
|
|
||||
LL | TyUInt {};
|
||||
| ^^^^^^ help: a struct with a similar name exists: `TyUint`
|
||||
| ^^^^^^ help: a struct with a similar name exists (notice the capitalization): `TyUint`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -41,7 +41,7 @@ error: static variable `bad` should have an upper case name
|
||||
--> $DIR/lint-group-nonstandard-style.rs:14:16
|
||||
|
|
||||
LL | static bad: isize = 1;
|
||||
| ^^^ help: convert the identifier to upper case: `BAD`
|
||||
| ^^^ help: convert the identifier to upper case (notice the capitalization): `BAD`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-group-nonstandard-style.rs:10:14
|
||||
|
@ -2,7 +2,7 @@ error: constant in pattern `a` should have an upper case name
|
||||
--> $DIR/lint-lowercase-static-const-pattern.rs:11:13
|
||||
|
|
||||
LL | (0, a) => 0,
|
||||
| ^ help: convert the identifier to upper case: `A`
|
||||
| ^ help: convert the identifier to upper case (notice the capitalization): `A`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-lowercase-static-const-pattern.rs:4:9
|
||||
@ -14,13 +14,13 @@ error: constant in pattern `aha` should have an upper case name
|
||||
--> $DIR/lint-lowercase-static-const-pattern.rs:26:13
|
||||
|
|
||||
LL | (0, aha) => 0,
|
||||
| ^^^ help: convert the identifier to upper case: `AHA`
|
||||
| ^^^ help: convert the identifier to upper case (notice the capitalization): `AHA`
|
||||
|
||||
error: constant in pattern `not_okay` should have an upper case name
|
||||
--> $DIR/lint-lowercase-static-const-pattern.rs:40:13
|
||||
|
|
||||
LL | (0, not_okay) => 0,
|
||||
| ^^^^^^^^ help: convert the identifier to upper case: `NOT_OKAY`
|
||||
| ^^^^^^^^ help: convert the identifier to upper case (notice the capitalization): `NOT_OKAY`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -14,43 +14,43 @@ error: type `foo` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:7:8
|
||||
|
|
||||
LL | struct foo {
|
||||
| ^^^ help: convert the identifier to upper camel case: `Foo`
|
||||
| ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Foo`
|
||||
|
||||
error: type `foo2` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:11:6
|
||||
|
|
||||
LL | enum foo2 {
|
||||
| ^^^^ help: convert the identifier to upper camel case: `Foo2`
|
||||
| ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Foo2`
|
||||
|
||||
error: type `foo3` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:15:8
|
||||
|
|
||||
LL | struct foo3 {
|
||||
| ^^^^ help: convert the identifier to upper camel case: `Foo3`
|
||||
| ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Foo3`
|
||||
|
||||
error: type `foo4` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:19:6
|
||||
|
|
||||
LL | type foo4 = isize;
|
||||
| ^^^^ help: convert the identifier to upper camel case: `Foo4`
|
||||
| ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Foo4`
|
||||
|
||||
error: variant `bar` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:22:5
|
||||
|
|
||||
LL | bar
|
||||
| ^^^ help: convert the identifier to upper camel case: `Bar`
|
||||
| ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Bar`
|
||||
|
||||
error: trait `foo6` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:25:7
|
||||
|
|
||||
LL | trait foo6 {
|
||||
| ^^^^ help: convert the identifier to upper camel case: `Foo6`
|
||||
| ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Foo6`
|
||||
|
||||
error: type parameter `ty` should have an upper camel case name
|
||||
--> $DIR/lint-non-camel-case-types.rs:29:6
|
||||
|
|
||||
LL | fn f<ty>(_: ty) {}
|
||||
| ^^ help: convert the identifier to upper camel case: `Ty`
|
||||
| ^^ help: convert the identifier to upper camel case (notice the capitalization): `Ty`
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
|
@ -2,7 +2,7 @@ error: method `Foo_Method` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:7:8
|
||||
|
|
||||
LL | fn Foo_Method() {}
|
||||
| ^^^^^^^^^^ help: convert the identifier to snake case: `foo_method`
|
||||
| ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `foo_method`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-non-snake-case-functions.rs:1:9
|
||||
@ -26,19 +26,19 @@ error: method `render_HTML` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:17:8
|
||||
|
|
||||
LL | fn render_HTML() {}
|
||||
| ^^^^^^^^^^^ help: convert the identifier to snake case: `render_html`
|
||||
| ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `render_html`
|
||||
|
||||
error: trait method `ABC` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:22:8
|
||||
|
|
||||
LL | fn ABC();
|
||||
| ^^^ help: convert the identifier to snake case: `abc`
|
||||
| ^^^ help: convert the identifier to snake case (notice the capitalization): `abc`
|
||||
|
||||
error: trait method `a_b_C` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:25:8
|
||||
|
|
||||
LL | fn a_b_C(&self) {}
|
||||
| ^^^^^ help: convert the identifier to snake case: `a_b_c`
|
||||
| ^^^^^ help: convert the identifier to snake case (notice the capitalization): `a_b_c`
|
||||
|
||||
error: trait method `something__else` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:28:8
|
||||
@ -50,13 +50,13 @@ error: function `Cookie` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:38:4
|
||||
|
|
||||
LL | fn Cookie() {}
|
||||
| ^^^^^^ help: convert the identifier to snake case: `cookie`
|
||||
| ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `cookie`
|
||||
|
||||
error: function `bi_S_Cuit` should have a snake case name
|
||||
--> $DIR/lint-non-snake-case-functions.rs:41:8
|
||||
|
|
||||
LL | pub fn bi_S_Cuit() {}
|
||||
| ^^^^^^^^^ help: convert the identifier to snake case: `bi_s_cuit`
|
||||
| ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `bi_s_cuit`
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
||||
|
@ -2,7 +2,7 @@ error: associated constant `not_upper` should have an upper case name
|
||||
--> $DIR/lint-non-uppercase-associated-const.rs:7:11
|
||||
|
|
||||
LL | const not_upper: bool = true;
|
||||
| ^^^^^^^^^ help: convert the identifier to upper case: `NOT_UPPER`
|
||||
| ^^^^^^^^^ help: convert the identifier to upper case (notice the capitalization): `NOT_UPPER`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-non-uppercase-associated-const.rs:1:9
|
||||
|
@ -2,7 +2,7 @@ error: static variable `foo` should have an upper case name
|
||||
--> $DIR/lint-non-uppercase-statics.rs:4:8
|
||||
|
|
||||
LL | static foo: isize = 1;
|
||||
| ^^^ help: convert the identifier to upper case: `FOO`
|
||||
| ^^^ help: convert the identifier to upper case (notice the capitalization): `FOO`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-non-uppercase-statics.rs:1:11
|
||||
@ -14,7 +14,7 @@ error: static variable `bar` should have an upper case name
|
||||
--> $DIR/lint-non-uppercase-statics.rs:6:12
|
||||
|
|
||||
LL | static mut bar: isize = 1;
|
||||
| ^^^ help: convert the identifier to upper case: `BAR`
|
||||
| ^^^ help: convert the identifier to upper case (notice the capitalization): `BAR`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -21,7 +21,7 @@ error: structure field `X` should have a snake case name
|
||||
--> $DIR/lint-uppercase-variables.rs:10:5
|
||||
|
|
||||
LL | X: usize
|
||||
| ^ help: convert the identifier to snake case: `x`
|
||||
| ^ help: convert the identifier to snake case (notice the capitalization): `x`
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/lint-uppercase-variables.rs:3:9
|
||||
@ -33,19 +33,19 @@ error: variable `Xx` should have a snake case name
|
||||
--> $DIR/lint-uppercase-variables.rs:13:9
|
||||
|
|
||||
LL | fn test(Xx: usize) {
|
||||
| ^^ help: convert the identifier to snake case: `xx`
|
||||
| ^^ help: convert the identifier to snake case (notice the capitalization): `xx`
|
||||
|
||||
error: variable `Test` should have a snake case name
|
||||
--> $DIR/lint-uppercase-variables.rs:18:9
|
||||
|
|
||||
LL | let Test: usize = 0;
|
||||
| ^^^^ help: convert the identifier to snake case: `test`
|
||||
| ^^^^ help: convert the identifier to snake case (notice the capitalization): `test`
|
||||
|
||||
error: variable `Foo` should have a snake case name
|
||||
--> $DIR/lint-uppercase-variables.rs:22:9
|
||||
|
|
||||
LL | Foo => {}
|
||||
| ^^^ help: convert the identifier to snake case: `foo`
|
||||
| ^^^ help: convert the identifier to snake case (notice the capitalization): `foo`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -10,11 +10,11 @@ warning: unknown lint: `DEAD_CODE`
|
||||
--> $DIR/not_found.rs:8:8
|
||||
|
|
||||
LL | #[warn(DEAD_CODE)]
|
||||
| ^^^^^^^^^ help: did you mean: `dead_code`
|
||||
| ^^^^^^^^^ help: did you mean (notice the capitalization): `dead_code`
|
||||
|
||||
warning: unknown lint: `Warnings`
|
||||
--> $DIR/not_found.rs:10:8
|
||||
|
|
||||
LL | #[deny(Warnings)]
|
||||
| ^^^^^^^^ help: did you mean: `warnings`
|
||||
| ^^^^^^^^ help: did you mean (notice the capitalization): `warnings`
|
||||
|
||||
|
@ -15,7 +15,7 @@ warning: variable `Social_exchange_psychology` should have a snake case name
|
||||
--> $DIR/reasons.rs:30:9
|
||||
|
|
||||
LL | let Social_exchange_psychology = CheaterDetectionMechanism {};
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `social_exchange_psychology`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `social_exchange_psychology`
|
||||
|
|
||||
= note: people shouldn't have to change their usual style habits
|
||||
to contribute to our project
|
||||
|
@ -395,7 +395,7 @@ mod foo {
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0muse std::collections::hash_map::Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0mand 8 other candidates\u001b[0m
|
||||
\u001b[0m and 8 other candidates\u001b[0m
|
||||
|
||||
"
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ LL | use mul3::Mul;
|
||||
|
|
||||
LL | use mul4::Mul;
|
||||
|
|
||||
and 2 other candidates
|
||||
and 2 other candidates
|
||||
|
||||
error[E0405]: cannot find trait `ThisTraitReallyDoesntExistInAnyModuleReally` in this scope
|
||||
--> $DIR/issue-21221-1.rs:63:6
|
||||
|
@ -8,7 +8,7 @@ LL | handle: Handle
|
||||
| ^^^^^^
|
||||
| |
|
||||
| did you mean `Handle { /* fields */ }`?
|
||||
| help: a local variable with a similar name exists: `handle`
|
||||
| help: a local variable with a similar name exists (notice the capitalization): `handle`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -38,13 +38,13 @@ error[E0412]: cannot find type `first` in module `m`
|
||||
--> $DIR/levenshtein.rs:28:15
|
||||
|
|
||||
LL | let b: m::first = m::second; // Misspelled item in module.
|
||||
| ^^^^^ help: a struct with a similar name exists: `First`
|
||||
| ^^^^^ help: a struct with a similar name exists (notice the capitalization): `First`
|
||||
|
||||
error[E0425]: cannot find value `second` in module `m`
|
||||
--> $DIR/levenshtein.rs:28:26
|
||||
|
|
||||
LL | let b: m::first = m::second; // Misspelled item in module.
|
||||
| ^^^^^^ help: a unit struct with a similar name exists: `Second`
|
||||
| ^^^^^^ help: a unit struct with a similar name exists (notice the capitalization): `Second`
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
|
@ -13,7 +13,7 @@ LL | use std::collections::hash_map::Drain;
|
||||
|
|
||||
LL | use std::collections::hash_set::Drain;
|
||||
|
|
||||
and 3 other candidates
|
||||
and 3 other candidates
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -5,7 +5,7 @@ LL | use main as x;
|
||||
| ----^^^^^
|
||||
| |
|
||||
| no `main` in the root
|
||||
| help: a similar name exists in the module: `main`
|
||||
| help: a similar name exists in the module (notice the capitalization): `main`
|
||||
|
||||
error[E0432]: unresolved import `test`
|
||||
--> $DIR/inaccessible-test-modules.rs:6:5
|
||||
@ -14,7 +14,7 @@ LL | use test as y;
|
||||
| ----^^^^^
|
||||
| |
|
||||
| no `test` in the root
|
||||
| help: a similar name exists in the module: `test`
|
||||
| help: a similar name exists in the module (notice the capitalization): `test`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -2,7 +2,7 @@ error[E0573]: expected type, found module `a`
|
||||
--> $DIR/trait-impl-for-module.rs:7:12
|
||||
|
|
||||
LL | impl A for a {
|
||||
| ^ help: a trait with a similar name exists: `A`
|
||||
| ^ help: a trait with a similar name exists (notice the capitalization): `A`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -38,7 +38,7 @@ warning: type parameter `γ` should have an upper camel case name
|
||||
--> $DIR/utf8_idents.rs:3:5
|
||||
|
|
||||
LL | γ
|
||||
| ^ help: convert the identifier to upper camel case: `Γ`
|
||||
| ^ help: convert the identifier to upper camel case (notice the capitalization): `Γ`
|
||||
|
|
||||
= note: `#[warn(non_camel_case_types)]` on by default
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user