diff options
| author | Max Bernstein <ruby@bernsteinbear.com> | 2025-08-15 10:54:13 -0400 |
|---|---|---|
| committer | Max Bernstein <tekknolagi@gmail.com> | 2025-08-18 09:03:31 -0700 |
| commit | 33224236e1a2f813bfb7ca56322a44853310f1d6 (patch) | |
| tree | a2547a6dd6df5a9befbacc11fd6054f94d436c26 | |
| parent | c663fe1eed36fec59dc3359576a63d39bb484efe (diff) | |
ZJIT: Refine type of Defined
| -rw-r--r-- | zjit/src/hir.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index ecb5a37e1f..a2304e4cae 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -1330,7 +1330,7 @@ impl Function { Insn::SendWithoutBlockDirect { .. } => types::BasicObject, Insn::Send { .. } => types::BasicObject, Insn::InvokeBuiltin { return_type, .. } => return_type.unwrap_or(types::BasicObject), - Insn::Defined { .. } => types::BasicObject, + Insn::Defined { pushval, .. } => Type::from_value(*pushval).union(types::NilClass), Insn::DefinedIvar { .. } => types::BasicObject, Insn::GetConstantPath { .. } => types::BasicObject, Insn::ArrayMax { .. } => types::BasicObject, @@ -4204,10 +4204,10 @@ mod tests { fn test@<compiled>:2: bb0(v0:BasicObject): v2:NilClass = Const Value(nil) - v4:BasicObject = Defined constant, v2 - v6:BasicObject = Defined func, v0 + v4:StringExact|NilClass = Defined constant, v2 + v6:StringExact|NilClass = Defined func, v0 v7:NilClass = Const Value(nil) - v9:BasicObject = Defined global-variable, v7 + v9:StringExact|NilClass = Defined global-variable, v7 v11:ArrayExact = NewArray v4, v6, v9 Return v11 "#]]); |
