diff --git a/crates/ide_diagnostics/src/handlers/missing_fields.rs b/crates/ide_diagnostics/src/handlers/missing_fields.rs index 8aca6ab375..186bfc3d58 100644 --- a/crates/ide_diagnostics/src/handlers/missing_fields.rs +++ b/crates/ide_diagnostics/src/handlers/missing_fields.rs @@ -73,7 +73,7 @@ fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::MissingFields) -> Option Some(make::ext::expr_todo()), - crate::ExprFillDefaultMode::DefaultImpl => { + crate::ExprFillDefaultMode::Default => { let default_constr = get_default_constructor(ctx, d, ty); match default_constr { Some(default_constr) => Some(default_constr), @@ -159,7 +159,6 @@ fn get_default_constructor( if let AssocItem::Function(func) = assoc_item { if func.name(ctx.sema.db) == known::new && func.assoc_fn_params(ctx.sema.db).is_empty() - && func.self_param(ctx.sema.db).is_none() { return Some(()); } diff --git a/crates/ide_diagnostics/src/lib.rs b/crates/ide_diagnostics/src/lib.rs index f4c613840e..86d76751ad 100644 --- a/crates/ide_diagnostics/src/lib.rs +++ b/crates/ide_diagnostics/src/lib.rs @@ -132,7 +132,7 @@ pub enum Severity { #[derive(Clone, Debug, PartialEq, Eq)] pub enum ExprFillDefaultMode { Todo, - DefaultImpl, + Default, } impl Default for ExprFillDefaultMode { fn default() -> Self { diff --git a/crates/ide_diagnostics/src/tests.rs b/crates/ide_diagnostics/src/tests.rs index 479a121c68..7d06e9d36f 100644 --- a/crates/ide_diagnostics/src/tests.rs +++ b/crates/ide_diagnostics/src/tests.rs @@ -37,7 +37,7 @@ fn check_nth_fix(nth: usize, ra_fixture_before: &str, ra_fixture_after: &str) { let (db, file_position) = RootDatabase::with_position(ra_fixture_before); let mut conf = DiagnosticsConfig::default(); - conf.expr_fill_default = ExprFillDefaultMode::DefaultImpl; + conf.expr_fill_default = ExprFillDefaultMode::Default; let diagnostic = super::diagnostics(&db, &conf, &AssistResolveStrategy::All, file_position.file_id) .pop() diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 86fcff01ba..6be889df67 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -698,7 +698,7 @@ impl Config { disabled: self.data.diagnostics_disabled.clone(), expr_fill_default: match self.data.assist_exprFillDefault { ExprFillDefaultDef::Todo => ExprFillDefaultMode::Todo, - ExprFillDefaultDef::DefaultImpl => ExprFillDefaultMode::DefaultImpl, + ExprFillDefaultDef::Default => ExprFillDefaultMode::Default, }, } } @@ -1070,8 +1070,8 @@ enum ManifestOrProjectJson { pub enum ExprFillDefaultDef { #[serde(alias = "todo")] Todo, - #[serde(alias = "defaultImpl")] - DefaultImpl, + #[serde(alias = "default")] + Default, } #[derive(Deserialize, Debug, Clone)] @@ -1270,9 +1270,9 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json }, "ExprFillDefaultDef" => set! { "type": "string", - "enum": ["todo", "defaultImpl"], + "enum": ["todo", "default"], "enumDescriptions": [ - "Fill missing elements with 'todo' macro", + "Fill missing expressions with the 'todo' macro", "Fill missing expressions with reasonable defaults, `new` or `default` constructors." ], }, diff --git a/crates/syntax/src/ast/make.rs b/crates/syntax/src/ast/make.rs index 12d5b7decc..3575020975 100644 --- a/crates/syntax/src/ast/make.rs +++ b/crates/syntax/src/ast/make.rs @@ -76,7 +76,7 @@ pub mod ext { expr_from_text(r#""""#) } pub fn empty_char() -> ast::Expr { - expr_from_text("''") + expr_from_text("'\x00'") } pub fn default_bool() -> ast::Expr { expr_from_text("false") diff --git a/editors/code/package.json b/editors/code/package.json index 6bc62fc9d7..c81fd0b3d2 100644 --- a/editors/code/package.json +++ b/editors/code/package.json @@ -384,11 +384,11 @@ "type": "string", "enum": [ "todo", - "defaultImpl" + "default" ], "enumDescriptions": [ - "Fill missing elements with 'todo' macro", - "Fill missing elements with T::default()" + "Fill missing expressions with the 'todo' macro", + "Fill missing expressions with reasonable defaults, `new` or `default` constructors." ] }, "rust-analyzer.assist.importGranularity": {