-
-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Description
Currently, Mun only allows functions to be defined independent from a struct. We want to be able to associate functions with a struct type, as such:
pub struct Foo {
x: f32,
y: f32
}
impl Foo {
pub fn new(x: f32, y: f32) -> Self {
Self { x, y }
}
pub fn set_x(&mut self, x: f32) {
self.x = x;
}
}
The above syntax is hypothetical. An important question to consider is whether we need to have a special case for struct(gc) vs struct(value).
Similar to Rust, impl blocks for member functions can be spread across multiple source files.
Definition of Done
- Parse
implblocks feat: parsing & hir of impl blocks #551 - Parse
selfin function signatures feat: infer self & Self HIR types #564 - Handle associated functions in HIR feat: infer associate functions #575
- Handle methods in HIR feat: implement method calls #577
- Support associated functions in LSP
- Support methods in LSP
- Code generation for method calls (an associated function is just a regular function)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
trackingTracking issue for an epicTracking issue for an epic