@@ -54,7 +54,7 @@ where fillCache : CoreM IRType := do
5454 -- `Int` is specified as an inductive type with two constructors that have relevant arguments,
5555 -- but it has the same runtime representation as `Nat` and thus needs to be special-cased here.
5656 | ``Int => return .tobject
57- | ``lcRealWorld => return .tagged
57+ | ``lcRealWorld => return .void
5858 | _ =>
5959 let env ← Lean.getEnv
6060 let some (.inductInfo inductiveVal) := env.find? name | return .tobject
@@ -110,12 +110,14 @@ inductive CtorFieldInfo where
110110 | object (i : Nat) (type : IRType)
111111 | usize (i : Nat)
112112 | scalar (sz : Nat) (offset : Nat) (type : IRType)
113+ | void
113114 deriving Inhabited
114115
115116namespace CtorFieldInfo
116117
117118def format : CtorFieldInfo → Format
118119 | erased => "◾"
120+ | void => "void"
119121 | object i type => f!"obj@{i}:{type}"
120122 | usize i => f!"usize@{i}"
121123 | scalar sz offset type => f!"scalar#{sz}@{offset}:{type}"
@@ -160,6 +162,7 @@ where fillCache := do
160162 pure <| .object i irFieldType
161163 | .usize => pure <| .usize 0
162164 | .erased => .pure <| .erased
165+ | .void => .pure <| .void
163166 | .uint8 =>
164167 has1BScalar := true
165168 .pure <| .scalar 1 0 .uint8
@@ -186,7 +189,7 @@ where fillCache := do
186189 | .usize _ => do
187190 let i ← modifyGet fun nextIdx => (nextIdx, nextIdx + 1 )
188191 return .usize i
189- | .object .. | .scalar .. | .erased => return field
192+ | .object .. | .scalar .. | .erased | .void => return field
190193 let numUSize := nextIdx - numObjs
191194 let adjustScalarsForSize (fields : Array CtorFieldInfo) (size : Nat) (nextOffset : Nat)
192195 : Array CtorFieldInfo × Nat :=
@@ -198,7 +201,7 @@ where fillCache := do
198201 return .scalar sz offset type
199202 else
200203 return field
201- | .object .. | .usize _ | .erased => return field
204+ | .object .. | .usize _ | .erased | .void => return field
202205 let mut nextOffset := 0
203206 if has8BScalar then
204207 ⟨fields, nextOffset⟩ := adjustScalarsForSize fields 8 nextOffset
0 commit comments