feat: no VoidValue, just Void type

This commit is contained in:
2026-01-02 14:54:44 +01:00
parent 0b9cb7e7d9
commit a453603b9b
3 changed files with 3 additions and 29 deletions

View File

@@ -54,7 +54,7 @@ namespace IR
argRegs.Push(arg); argRegs.Push(arg);
} }
// TODO: gather return type of the function // TODO: gather return type of the function
auto dst = VoidValue(); auto dst = AllocateNamed<Instruction>(new ValueHandle::Type {ValueHandle::Type::Kind::Void});
m_ops->Push(new CallOp(dst, fn->name(), argRegs.view())); m_ops->Push(new CallOp(dst, fn->name(), argRegs.view()));
return dst; return dst;
} }
@@ -75,7 +75,7 @@ namespace IR
} }
assert(0 && "unreachable"); assert(0 && "unreachable");
return reinterpret_cast<ValueHandle *>(new Void()); return nullptr;
} }
ValueHandle *ParseExpression(const Node *expression) ValueHandle *ParseExpression(const Node *expression)
@@ -187,11 +187,6 @@ namespace IR
return new V(ValueHandle::kNoId, std::forward<Args>(args)...); return new V(ValueHandle::kNoId, std::forward<Args>(args)...);
} }
ValueHandle *VoidValue()
{
return new Void();
}
private: private:
const Node *m_root = nullptr; const Node *m_root = nullptr;

View File

@@ -99,7 +99,7 @@ namespace IR
{ {
StringBuilder sb; StringBuilder sb;
sb.AppendIndent(indent); sb.AppendIndent(indent);
sb << result()->Format() << " = load " << m_ptr->Format(); sb << result()->Format() << " = load " << result()->GetType()->Format() << ", " << m_ptr->Format();
return sb.view(); return sb.view();
} }

View File

@@ -129,27 +129,6 @@ namespace IR
Type *m_value_typ; Type *m_value_typ;
}; };
class Void : public ValueHandle
{
public:
Void()
: ValueHandle()
{
m_type = new Type{Type::Kind::Void};
}
const Type *GetType() const override { return m_type; }
public:
virtual StringView Format() const override
{
return m_type->Format();
}
private:
Type *m_type;
};
class Instruction : public ValueHandle class Instruction : public ValueHandle
{ {
public: public: