Skip to content

Commit a922eca

Browse files
committed
cpp generator: Simplify user struct generation
1 parent 34f087e commit a922eca

File tree

1 file changed

+6
-9
lines changed
  • internal/compiler/generator

1 file changed

+6
-9
lines changed

internal/compiler/generator/cpp.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,6 @@ use crate::llr::{
468468
TypeResolutionContext as _,
469469
};
470470
use crate::object_tree::Document;
471-
use crate::parser::syntax_nodes;
472471
use cpp_ast::*;
473472
use itertools::{Either, Itertools};
474473
use std::cell::Cell;
@@ -922,7 +921,7 @@ pub fn generate_types(used_types: &[Type], config: &Config) -> File {
922921
for ty in used_types {
923922
match ty {
924923
Type::Struct(s) if s.node().is_some() => {
925-
generate_struct(&mut file, &s.name, &s.fields, s.node().unwrap());
924+
generate_struct(&mut file, &s.name, &s.fields);
926925
}
927926
Type::Enumeration(en) => {
928927
generate_enum(&mut file, en);
@@ -1157,13 +1156,11 @@ fn embed_resource(
11571156
}
11581157
}
11591158

1160-
fn generate_struct(
1161-
file: &mut File,
1162-
name: &StructName,
1163-
fields: &BTreeMap<SmolStr, Type>,
1164-
node: &syntax_nodes::ObjectType,
1165-
) {
1166-
let name = name.cpp_type().expect("internal error: Cannot generate anonymous struct");
1159+
fn generate_struct(file: &mut File, name: &StructName, fields: &BTreeMap<SmolStr, Type>) {
1160+
let StructName::User { name: user_name, node } = name else {
1161+
panic!("internal error: Cannot generate anonymous struct");
1162+
};
1163+
let name = ident(user_name);
11671164
let mut members = node
11681165
.ObjectTypeMember()
11691166
.map(|n| crate::parser::identifier_text(&n).unwrap())

0 commit comments

Comments
 (0)