Virtual functions

This commit is contained in:
2026-07-09 06:30:11 +02:00
parent 0d2199ee3a
commit 08771fe5be
2 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -51,7 +51,7 @@ impl ClassProcessedData {
if matches!(method.item.visibility, Visibility::Public) {
match &method.item.is_override {
None => {
if method.item.self_param.is_some() {
if method.item.is_virtual && method.item.self_param.is_some() {
v_table.push(method.item.name.clone());
}
}
@@ -397,7 +397,7 @@ impl ClassProcessedData {
for method in &self.methods {
match method.item.visibility {
Visibility::Public => {
if method.item.self_param.is_some() {
if method.item.is_virtual && method.item.self_param.is_some() {
if method.item.is_override.is_none() {
gen_method_point(&method.item, ctx, cg);
}
+2 -2
View File
@@ -9,7 +9,7 @@ pub class Animal
self.name = "Rex".to_string();
}
pub String speak(&self)
pub virtual String speak(&self)
{
"Unknown".to_string()
}
@@ -45,7 +45,7 @@ pub class Dog : Mammal
super = Super::new();
}
pub String speak(&self) override(Animal)
pub virtual String speak(&self) override(Animal)
{
"Woof!".to_string()
}