Use pointer comparison for interned variables
087bce3649b307a615816476b25425caf486f95b584e034506ef68a98a0b8126
1 parent
ce3e5c39
lib/std/lang/lower.rad
+2 -1
| 2608 | 2608 | fn lookupVarByName(self: *FnLowerer, name: *[u8]) -> ?Var { |
|
| 2609 | 2609 | let mut id = self.vars.len; |
|
| 2610 | 2610 | while id > 0 { |
|
| 2611 | 2611 | id -= 1; |
|
| 2612 | 2612 | if let varName = self.vars[id].name { |
|
| 2613 | - | if mem::eq(varName, name) { |
|
| 2613 | + | // Names are interned strings, so pointer comparison suffices. |
|
| 2614 | + | if varName == name { |
|
| 2614 | 2615 | return Var { id }; |
|
| 2615 | 2616 | } |
|
| 2616 | 2617 | } |
|
| 2617 | 2618 | } |
|
| 2618 | 2619 | return nil; |