summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hir/from_ast.cpp8
-rw-r--r--src/hir/type.hpp1
2 files changed, 7 insertions, 2 deletions
diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp
index 827ac973..177bc65c 100644
--- a/src/hir/from_ast.cpp
+++ b/src/hir/from_ast.cpp
@@ -428,7 +428,8 @@
{
TU_MATCH(::TypeData, (ty.m_data), (e),
(None,
- TODO(ty.span(), "TypeData::None");
+ // Aka diverging
+ return ::HIR::TypeRef( ::HIR::TypeRef::Data::make_Diverge({}) );
),
(Any,
return ::HIR::TypeRef();
@@ -527,7 +528,10 @@
::HIR::TypeAlias LowerHIR_TypeAlias(const ::AST::TypeAlias& ta)
{
- throw ::std::runtime_error("TODO: LowerHIR_TypeAlias");
+ return ::HIR::TypeAlias {
+ LowerHIR_GenericParams(ta.params()),
+ LowerHIR_Type(ta.type())
+ };
}
::HIR::Struct LowerHIR_Struct(const ::AST::Struct& ent)
diff --git a/src/hir/type.hpp b/src/hir/type.hpp
index dc1f204f..95a3cd1d 100644
--- a/src/hir/type.hpp
+++ b/src/hir/type.hpp
@@ -58,6 +58,7 @@ struct TypeRef
TAGGED_UNION(Data, Infer,
(Infer, struct {}),
+ (Diverge, struct {}),
(Primitive, ::HIR::CoreType),
(Path, ::HIR::Path),
(Generic, struct {