Add beginnings of type infrastructure

This commit is contained in:
Florian Diebold 2018-12-20 21:56:28 +01:00
parent d77520fde3
commit 3ac605e687
11 changed files with 689 additions and 15 deletions

View file

@ -523,7 +523,15 @@ impl<R: TreeRoot<RaTypes>> CastExprNode<R> {
}
impl<'a> CastExpr<'a> {}
impl<'a> CastExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
pub fn type_ref(self) -> Option<TypeRef<'a>> {
super::child_opt(self)
}
}
// Char
#[derive(Debug, Clone, Copy,)]
@ -2312,6 +2320,10 @@ impl<'a> Param<'a> {
pub fn pat(self) -> Option<Pat<'a>> {
super::child_opt(self)
}
pub fn type_ref(self) -> Option<TypeRef<'a>> {
super::child_opt(self)
}
}
// ParamList
@ -2394,7 +2406,11 @@ impl<R: TreeRoot<RaTypes>> ParenExprNode<R> {
}
impl<'a> ParenExpr<'a> {}
impl<'a> ParenExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
}
// ParenType
#[derive(Debug, Clone, Copy,)]
@ -2829,7 +2845,11 @@ impl<R: TreeRoot<RaTypes>> PrefixExprNode<R> {
}
impl<'a> PrefixExpr<'a> {}
impl<'a> PrefixExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
}
// RangeExpr
#[derive(Debug, Clone, Copy,)]
@ -2940,7 +2960,11 @@ impl<R: TreeRoot<RaTypes>> RefExprNode<R> {
}
impl<'a> RefExpr<'a> {}
impl<'a> RefExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
}
// RefPat
#[derive(Debug, Clone, Copy,)]
@ -3088,7 +3112,11 @@ impl<R: TreeRoot<RaTypes>> ReturnExprNode<R> {
}
impl<'a> ReturnExpr<'a> {}
impl<'a> ReturnExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
}
// SelfParam
#[derive(Debug, Clone, Copy,)]
@ -3578,7 +3606,11 @@ impl<R: TreeRoot<RaTypes>> TryExprNode<R> {
}
impl<'a> TryExpr<'a> {}
impl<'a> TryExpr<'a> {
pub fn expr(self) -> Option<Expr<'a>> {
super::child_opt(self)
}
}
// TupleExpr
#[derive(Debug, Clone, Copy,)]