We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent a07c1c4 commit 332f371Copy full SHA for 332f371
1 file changed
src/symbols.rs
@@ -365,7 +365,20 @@ impl StmtBox
365
366
// Class declaration
367
Stmt::ClassDecl { class_id } => {
368
- let class = prog.classes.get(class_id).unwrap();
+ let class = prog.classes.get_mut(class_id).unwrap();
369
+
370
+ // If this class has a parent, try to resolve its class id
371
+ if let Some(class_name) = &class.parent_name {
372
+ if let Some(Decl::Class { id, .. }) = env.lookup(class_name) {
373
+ class.parent_id = id;
374
+ } else {
375
+ return ParseError::with_pos(
376
+ &format!("could not resolve parent class name `{}`", class_name),
377
+ &self.pos
378
+ );
379
+ }
380
381
382
let method_ids: Vec<FunId> = class.methods.values().copied().collect();
383
384
for fun_id in method_ids {
0 commit comments