Explain the purpose of ast::make module more clearly

This commit is contained in:
Aleksey Kladov 2020-05-20 01:28:11 +02:00
parent 28f6b5b849
commit 4de2749db8
2 changed files with 8 additions and 5 deletions

View file

@ -1,5 +1,9 @@
//! This module contains free-standing functions for creating AST fragments out
//! of smaller pieces.
//!
//! Note that all functions here intended to be stupid constructors, which just
//! assemble a finish node from immediate children. If you want to do something
//! smarter than that, it probably doesn't belong in this module.
use itertools::Itertools;
use stdx::format_to;
@ -95,6 +99,9 @@ pub fn expr_empty_block() -> ast::Expr {
pub fn expr_unimplemented() -> ast::Expr {
expr_from_text("unimplemented!()")
}
pub fn expr_unreachable() -> ast::Expr {
expr_from_text("unreachable!()")
}
pub fn expr_todo() -> ast::Expr {
expr_from_text("todo!()")
}
@ -264,10 +271,6 @@ pub fn token(kind: SyntaxKind) -> SyntaxToken {
.unwrap_or_else(|| panic!("unhandled token: {:?}", kind))
}
pub fn unreachable_macro_call() -> ast::MacroCall {
ast_from_text(&format!("unreachable!()"))
}
pub fn param(name: String, ty: String) -> ast::Param {
ast_from_text(&format!("fn f({}: {}) {{ }}", name, ty))
}