]> git.lizzy.rs Git - rust.git/commitdiff
Move incorrect case diagnostic things into their module
authorLukas Wirth <lukastw97@gmail.com>
Sat, 20 Nov 2021 16:19:19 +0000 (17:19 +0100)
committerLukas Wirth <lukastw97@gmail.com>
Sat, 20 Nov 2021 16:25:57 +0000 (17:25 +0100)
crates/hir/src/lib.rs
crates/hir_def/src/path/lower.rs
crates/hir_ty/src/diagnostics.rs
crates/hir_ty/src/diagnostics/decl_check.rs

index 964c791e48faf8a8ffda8e0d014854309e14eff1..3946f5164214ecd7862759fbeed1f50981ad2457 100644 (file)
@@ -359,7 +359,7 @@ pub fn diagnostics(self, db: &dyn HirDatabase) -> Vec<AnyDiagnostic> {
                 def.diagnostics(db, &mut acc);
             }
             None => {
-                for diag in hir_ty::diagnostics::validate_module_item(db, module.id.krate(), id) {
+                for diag in hir_ty::diagnostics::incorrect_case(db, module.id.krate(), id) {
                     acc.push(diag.into())
                 }
             }
@@ -1282,7 +1282,7 @@ pub fn diagnostics(self, db: &dyn HirDatabase, acc: &mut Vec<AnyDiagnostic>) {
             DefWithBody::Static(it) => it.into(),
             DefWithBody::Const(it) => it.into(),
         };
-        for diag in hir_ty::diagnostics::validate_module_item(db, krate, def.into()) {
+        for diag in hir_ty::diagnostics::incorrect_case(db, krate, def.into()) {
             acc.push(diag.into())
         }
     }
index c84cd50ce6e6c0424ec1a02f28a1574cdb9d370d..3abc48d95dfcf03fe54a3074784ec282759479dd 100644 (file)
@@ -76,7 +76,7 @@ pub(super) fn lower_path(mut path: ast::Path, ctx: &LowerCtx) -> Option<Path> {
                         kind = mod_path.kind;
 
                         segments.extend(mod_path.segments.iter().cloned().rev());
-                        generic_args.extend(path_generic_args.iter().cloned().rev());
+                        generic_args.extend(Vec::from(path_generic_args).into_iter().rev());
 
                         // Insert the type reference (T in the above example) as Self parameter for the trait
                         let last_segment =
index 6339c9687cd8f753d93cb9dda492eff75f1005c2..a4702715e5b3698b11441dc3dd8f235d2b883b32 100644 (file)
@@ -4,92 +4,10 @@
 mod unsafe_check;
 mod decl_check;
 
-use std::fmt;
-
-use base_db::CrateId;
-use hir_def::ModuleDefId;
-use hir_expand::HirFileId;
-use syntax::{ast, AstPtr};
-
-use crate::db::HirDatabase;
-
 pub use crate::diagnostics::{
+    decl_check::{incorrect_case, IncorrectCase},
     expr::{
         record_literal_missing_fields, record_pattern_missing_fields, BodyValidationDiagnostic,
     },
     unsafe_check::missing_unsafe,
 };
-
-pub fn validate_module_item(
-    db: &dyn HirDatabase,
-    krate: CrateId,
-    owner: ModuleDefId,
-) -> Vec<IncorrectCase> {
-    let _p = profile::span("validate_module_item");
-    let mut validator = decl_check::DeclValidator::new(db, krate);
-    validator.validate_item(owner);
-    validator.sink
-}
-
-#[derive(Debug)]
-pub enum CaseType {
-    // `some_var`
-    LowerSnakeCase,
-    // `SOME_CONST`
-    UpperSnakeCase,
-    // `SomeStruct`
-    UpperCamelCase,
-}
-
-impl fmt::Display for CaseType {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        let repr = match self {
-            CaseType::LowerSnakeCase => "snake_case",
-            CaseType::UpperSnakeCase => "UPPER_SNAKE_CASE",
-            CaseType::UpperCamelCase => "CamelCase",
-        };
-
-        write!(f, "{}", repr)
-    }
-}
-
-#[derive(Debug)]
-pub enum IdentType {
-    Constant,
-    Enum,
-    Field,
-    Function,
-    Parameter,
-    StaticVariable,
-    Structure,
-    Variable,
-    Variant,
-}
-
-impl fmt::Display for IdentType {
-    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        let repr = match self {
-            IdentType::Constant => "Constant",
-            IdentType::Enum => "Enum",
-            IdentType::Field => "Field",
-            IdentType::Function => "Function",
-            IdentType::Parameter => "Parameter",
-            IdentType::StaticVariable => "Static variable",
-            IdentType::Structure => "Structure",
-            IdentType::Variable => "Variable",
-            IdentType::Variant => "Variant",
-        };
-
-        write!(f, "{}", repr)
-    }
-}
-
-#[derive(Debug)]
-pub struct IncorrectCase {
-    pub file: HirFileId,
-    pub ident: AstPtr<ast::Name>,
-    pub expected_case: CaseType,
-    pub ident_type: IdentType,
-    pub ident_text: String,
-    pub suggested_text: String,
-}
index 4f4a92447fffee2196d9bc8da1249950b5368974..6a3588dc741a0cff736c4fc2ed2e2f93902f3518 100644 (file)
@@ -1,4 +1,4 @@
-//! Provides validators for the item declarations.
+//! Provides validators for names of declarations.
 //!
 //! This includes the following items:
 //!
@@ -12,6 +12,8 @@
 
 mod case_conv;
 
+use std::fmt;
+
 use base_db::CrateId;
 use hir_def::{
     adt::VariantData,
     src::HasSource,
     AdtId, AttrDefId, ConstId, EnumId, FunctionId, Lookup, ModuleDefId, StaticId, StructId,
 };
-use hir_expand::name::{AsName, Name};
+use hir_expand::{
+    name::{AsName, Name},
+    HirFileId,
+};
 use stdx::{always, never};
 use syntax::{
     ast::{self, HasName},
     AstNode, AstPtr,
 };
 
-use crate::{
-    db::HirDatabase,
-    diagnostics::{decl_check::case_conv::*, CaseType, IdentType, IncorrectCase},
-};
+use crate::db::HirDatabase;
+
+use self::case_conv::{to_camel_case, to_lower_snake_case, to_upper_snake_case};
 
 mod allow {
     pub(super) const BAD_STYLE: &str = "bad_style";
@@ -39,6 +43,80 @@ mod allow {
     pub(super) const NON_CAMEL_CASE_TYPES: &str = "non_camel_case_types";
 }
 
+pub fn incorrect_case(
+    db: &dyn HirDatabase,
+    krate: CrateId,
+    owner: ModuleDefId,
+) -> Vec<IncorrectCase> {
+    let _p = profile::span("validate_module_item");
+    let mut validator = DeclValidator::new(db, krate);
+    validator.validate_item(owner);
+    validator.sink
+}
+
+#[derive(Debug)]
+pub enum CaseType {
+    // `some_var`
+    LowerSnakeCase,
+    // `SOME_CONST`
+    UpperSnakeCase,
+    // `SomeStruct`
+    UpperCamelCase,
+}
+
+impl fmt::Display for CaseType {
+    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        let repr = match self {
+            CaseType::LowerSnakeCase => "snake_case",
+            CaseType::UpperSnakeCase => "UPPER_SNAKE_CASE",
+            CaseType::UpperCamelCase => "CamelCase",
+        };
+
+        write!(f, "{}", repr)
+    }
+}
+
+#[derive(Debug)]
+pub enum IdentType {
+    Constant,
+    Enum,
+    Field,
+    Function,
+    Parameter,
+    StaticVariable,
+    Structure,
+    Variable,
+    Variant,
+}
+
+impl fmt::Display for IdentType {
+    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        let repr = match self {
+            IdentType::Constant => "Constant",
+            IdentType::Enum => "Enum",
+            IdentType::Field => "Field",
+            IdentType::Function => "Function",
+            IdentType::Parameter => "Parameter",
+            IdentType::StaticVariable => "Static variable",
+            IdentType::Structure => "Structure",
+            IdentType::Variable => "Variable",
+            IdentType::Variant => "Variant",
+        };
+
+        write!(f, "{}", repr)
+    }
+}
+
+#[derive(Debug)]
+pub struct IncorrectCase {
+    pub file: HirFileId,
+    pub ident: AstPtr<ast::Name>,
+    pub expected_case: CaseType,
+    pub ident_type: IdentType,
+    pub ident_text: String,
+    pub suggested_text: String,
+}
+
 pub(super) struct DeclValidator<'a> {
     db: &'a dyn HirDatabase,
     krate: CrateId,