Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 279e9e2

Browse filesBrowse files
authored
Merge pull request #19137 from github/redsun82/rust-renames
Rust: rename several entities to their more natural names
2 parents 01275aa + 87dc4cd commit 279e9e2
Copy full SHA for 279e9e2

File tree

141 files changed

+628
-703
lines changed
Filter options

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner

141 files changed

+628
-703
lines changed

‎.pre-commit-config.yaml

Copy file name to clipboardExpand all lines: .pre-commit-config.yaml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ repos:
7272

7373
- id: rust-codegen
7474
name: Run Rust checked in code generation
75-
files: ^misc/codegen/|^rust/(prefix\.dbscheme|schema/|codegen/|.*/generated/|ql/lib/(rust\.dbscheme$|codeql/rust/elements)|\.generated.list)
75+
files: ^misc/codegen/|^rust/(prefix\.dbscheme|schema/|codegen/|.*/generated/|ql/lib/(rust\.dbscheme$|codeql/rust/elements)|\.generated.list|ast-generator/)
7676
language: system
7777
entry: bazel run //rust/codegen -- --quiet
7878
pass_filenames: false

‎rust/ast-generator/src/main.rs

Copy file name to clipboardExpand all lines: rust/ast-generator/src/main.rs
+43-31Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ fn class_name(type_name: &str) -> String {
2323
"Literal" => "LiteralExpr".to_owned(),
2424
"ArrayExpr" => "ArrayExprInternal".to_owned(),
2525
"AsmOptions" => "AsmOptionsList".to_owned(),
26-
_ if type_name.starts_with("Record") && type_name != "RecordFieldList" => {
27-
type_name.replacen("Record", "Struct", 1)
28-
}
26+
_ if type_name.starts_with("Record") => type_name.replacen("Record", "Struct", 1),
2927
_ if type_name.ends_with("Type") => format!("{}Repr", type_name),
3028
_ => type_name.to_owned(),
3129
}
@@ -36,10 +34,14 @@ fn property_name(type_name: &str, field_name: &str) -> String {
3634
("CallExpr", "expr") => "function",
3735
("LetExpr", "expr") => "scrutinee",
3836
("MatchExpr", "expr") => "scrutinee",
37+
("Variant", "expr") => "discriminant",
38+
("FieldExpr", "expr") => "container",
39+
(_, "name_ref") => "identifier",
3940
(_, "then_branch") => "then",
4041
(_, "else_branch") => "else_",
41-
("ArrayType", "ty") => "element_type_repr",
42+
("ArrayTypeRepr", "ty") => "element_type_repr",
4243
("SelfParam", "is_amp") => "is_ref",
44+
("StructField", "expr") => "default",
4345
("UseTree", "is_star") => "is_glob",
4446
(_, "ty") => "type_repr",
4547
_ if field_name.contains("record") => &field_name.replacen("record", "struct", 1),
@@ -103,25 +105,27 @@ fn node_src_to_schema_class(
103105
node: &AstNodeSrc,
104106
super_types: &BTreeMap<String, BTreeSet<String>>,
105107
) -> SchemaClass {
108+
let name = class_name(&node.name);
109+
let fields = get_fields(node)
110+
.iter()
111+
.map(|f| {
112+
let (ty, child) = match &f.ty {
113+
FieldType::String => ("optional[string]".to_string(), false),
114+
FieldType::Predicate => ("predicate".to_string(), false),
115+
FieldType::Optional(ty) => (format!("optional[\"{}\"]", class_name(ty)), true),
116+
FieldType::List(ty) => (format!("list[\"{}\"]", class_name(ty)), true),
117+
};
118+
SchemaField {
119+
name: property_name(&name, &f.name),
120+
ty,
121+
child,
122+
}
123+
})
124+
.collect();
106125
SchemaClass {
107-
name: class_name(&node.name),
126+
name,
127+
fields,
108128
bases: get_bases(&node.name, super_types),
109-
fields: get_fields(node)
110-
.iter()
111-
.map(|f| {
112-
let (ty, child) = match &f.ty {
113-
FieldType::String => ("optional[string]".to_string(), false),
114-
FieldType::Predicate => ("predicate".to_string(), false),
115-
FieldType::Optional(ty) => (format!("optional[\"{}\"]", class_name(ty)), true),
116-
FieldType::List(ty) => (format!("list[\"{}\"]", class_name(ty)), true),
117-
};
118-
SchemaField {
119-
name: property_name(&node.name, &f.name),
120-
ty,
121-
child,
122-
}
123-
})
124-
.collect(),
125129
}
126130
}
127131

@@ -428,6 +432,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec<FieldInfo> {
428432
struct EnumVariantInfo {
429433
name: String,
430434
snake_case_name: String,
435+
variant_ast_name: String,
431436
}
432437

433438
#[derive(Serialize)]
@@ -476,16 +481,21 @@ fn enum_to_extractor_info(node: &AstEnumSrc) -> Option<ExtractorEnumInfo> {
476481
variants: node
477482
.variants
478483
.iter()
479-
.map(|v| EnumVariantInfo {
480-
name: v.clone(),
481-
snake_case_name: to_lower_snake_case(v),
484+
.map(|v| {
485+
let name = class_name(v);
486+
let snake_case_name = to_lower_snake_case(v);
487+
EnumVariantInfo {
488+
name,
489+
snake_case_name,
490+
variant_ast_name: v.clone(),
491+
}
482492
})
483493
.collect(),
484494
})
485495
}
486496

487-
fn field_info_to_extractor_info(node: &AstNodeSrc, field: &FieldInfo) -> ExtractorNodeFieldInfo {
488-
let name = property_name(&node.name, &field.name);
497+
fn field_info_to_extractor_info(name: &str, field: &FieldInfo) -> ExtractorNodeFieldInfo {
498+
let name = property_name(name, &field.name);
489499
match &field.ty {
490500
FieldType::String => ExtractorNodeFieldInfo {
491501
name,
@@ -517,14 +527,16 @@ fn field_info_to_extractor_info(node: &AstNodeSrc, field: &FieldInfo) -> Extract
517527
fn node_to_extractor_info(node: &AstNodeSrc) -> ExtractorNodeInfo {
518528
let fields = get_fields(node);
519529
let has_attrs = fields.iter().any(|f| f.name == "attrs");
530+
let name = class_name(&node.name);
531+
let fields = fields
532+
.iter()
533+
.map(|f| field_info_to_extractor_info(&name, f))
534+
.collect();
520535
ExtractorNodeInfo {
521-
name: class_name(&node.name),
536+
name,
522537
snake_case_name: to_lower_snake_case(&node.name),
523538
ast_name: node.name.clone(),
524-
fields: fields
525-
.iter()
526-
.map(|f| field_info_to_extractor_info(node, f))
527-
.collect(),
539+
fields,
528540
has_attrs,
529541
}
530542
}

‎rust/ast-generator/src/templates/extractor.mustache

Copy file name to clipboardExpand all lines: rust/ast-generator/src/templates/extractor.mustache
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ impl Translator<'_> {
2525
pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option<Label<generated::{{name}}>> {
2626
match node {
2727
{{#variants}}
28-
ast::{{ast_name}}::{{name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into),
28+
ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into),
2929
{{/variants}}
3030
}
3131
}

‎rust/extractor/src/crate_graph.rs

Copy file name to clipboardExpand all lines: rust/extractor/src/crate_graph.rs
+7-7Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ fn emit_adt(
476476
name,
477477
field_list,
478478
attrs: vec![],
479-
expr: None,
479+
discriminant: None,
480480
visibility,
481481
})
482482
})
@@ -1000,14 +1000,14 @@ fn make_qualified_path(
10001000
qualifier: Option<trap::Label<generated::Path>>,
10011001
name: String,
10021002
) -> trap::Label<generated::Path> {
1003-
let name_ref = Some(trap.emit(generated::NameRef {
1003+
let identifier = Some(trap.emit(generated::NameRef {
10041004
id: trap::TrapId::Star,
10051005
text: Some(name),
10061006
}));
10071007
let segment = Some(trap.emit(generated::PathSegment {
10081008
id: trap::TrapId::Star,
10091009
generic_arg_list: None,
1010-
name_ref,
1010+
identifier,
10111011
parenthesized_arg_list: None,
10121012
ret_type: None,
10131013
return_type_syntax: None,
@@ -1253,11 +1253,11 @@ fn emit_hir_ty(
12531253

12541254
enum Variant {
12551255
Unit,
1256-
Record(trap::Label<generated::RecordFieldList>),
1256+
Record(trap::Label<generated::StructFieldList>),
12571257
Tuple(trap::Label<generated::TupleFieldList>),
12581258
}
12591259

1260-
impl From<Variant> for Option<trap::Label<generated::RecordFieldList>> {
1260+
impl From<Variant> for Option<trap::Label<generated::StructFieldList>> {
12611261
fn from(val: Variant) -> Self {
12621262
match val {
12631263
Variant::Record(label) => Some(label),
@@ -1305,11 +1305,11 @@ fn emit_variant_data(trap: &mut TrapFile, db: &dyn HirDatabase, variant_id: Vari
13051305
name,
13061306
type_repr,
13071307
visibility,
1308-
expr: None,
1308+
default: None,
13091309
})
13101310
})
13111311
.collect();
1312-
Variant::Record(trap.emit(generated::RecordFieldList {
1312+
Variant::Record(trap.emit(generated::StructFieldList {
13131313
id: trap::TrapId::Star,
13141314
fields,
13151315
}))

‎rust/extractor/src/generated/.generated.list

Copy file name to clipboardExpand all lines: rust/extractor/src/generated/.generated.list
+1-1Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.