mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 16:21:11 +00:00
Account for ability specialization in reuse_symbol
This commit is contained in:
parent
5a5fc0162d
commit
8bff2875b0
1 changed files with 31 additions and 24 deletions
|
@ -7000,10 +7000,20 @@ fn can_reuse_symbol<'a>(
|
|||
procs: &Procs<'a>,
|
||||
expr: &roc_can::expr::Expr,
|
||||
) -> ReuseSymbol {
|
||||
use roc_can::expr::Expr::*;
|
||||
use ReuseSymbol::*;
|
||||
|
||||
if let roc_can::expr::Expr::Var(symbol) = expr {
|
||||
let symbol = *symbol;
|
||||
let symbol = match expr {
|
||||
AbilityMember(_, specialization) => {
|
||||
let specialization_symbol = specialization
|
||||
.read()
|
||||
.unwrap()
|
||||
.expect("Specialization must be known!");
|
||||
specialization_symbol
|
||||
}
|
||||
Var(symbol) => *symbol,
|
||||
_ => return NotASymbol,
|
||||
};
|
||||
|
||||
let arguments = [
|
||||
Symbol::ARG_1,
|
||||
|
@ -7026,9 +7036,6 @@ fn can_reuse_symbol<'a>(
|
|||
} else {
|
||||
Value(symbol)
|
||||
}
|
||||
} else {
|
||||
NotASymbol
|
||||
}
|
||||
}
|
||||
|
||||
fn possible_reuse_symbol_or_specialize<'a>(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue