-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Description
Currently, struct methods that mutate self require mut in the receiver:
pub fn (mut self: Counter) increment() {
self.count = self.count + 1;
}
Without mut, mutation of self fields fails. This adds unnecessary ceremony — self in methods should always be mutable.
Proposal
Make self always mutable in method receivers. Remove the mut keyword from receiver syntax entirely.
Before: pub fn (mut self: Counter) increment()
After: pub fn (self: Counter) increment()
Affected Code
- Parser:
namlc/src/parser/items.rs—parse_receiver()checks forKeyword::Mutand setsReceiver.mutable - Type checker:
namlc/src/typechecker/mod.rs— usesrecv.mutablewhen definingselfin scope viaenv.define() - AST:
Receiverstruct has amutable: boolfield
Fix
- In
parse_receiver(): removemutkeyword check, always setmutable: true(or remove the field) - In typechecker: always define receiver as mutable
- Optionally emit a warning/error if
mutis still used, for a deprecation period
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels