jfecher / ante

A safe, easy systems language
http://antelang.org
MIT License
1.89k stars 79 forks source link

Codegen crash when using a trait that defines multiple methods #159

Closed jfecher closed 1 year ago

jfecher commented 1 year ago
trait MultiTrait a with 
    one: Unit -> Unit
    two: Unit -> Unit

impl MultiTrait Unit with 
    one _ = ()
    two _ = ()

one ()

Crashes with:

thread 'main' panicked at 'internal error: entered unreachable code: No definition for 'one' found in trait impl 161', src\cache\mod.rs:503:9

because we clear all self.definitions_collected in the name resolver after resolving each definition individually in resolve_trait_impl_declarations. This lead to only the last definition properly being collected, since the others before it have been cleared.