aboutsummaryrefslogtreecommitdiff
path: root/macros/src/syntax/parse/idle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/syntax/parse/idle.rs')
-rw-r--r--macros/src/syntax/parse/idle.rs42
1 files changed, 0 insertions, 42 deletions
diff --git a/macros/src/syntax/parse/idle.rs b/macros/src/syntax/parse/idle.rs
deleted file mode 100644
index 124c1366..00000000
--- a/macros/src/syntax/parse/idle.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-use proc_macro2::TokenStream as TokenStream2;
-use syn::{parse, ItemFn};
-
-use crate::syntax::{
- ast::{Idle, IdleArgs},
- parse::util,
-};
-
-impl IdleArgs {
- pub(crate) fn parse(tokens: TokenStream2) -> parse::Result<Self> {
- crate::syntax::parse::idle_args(tokens)
- }
-}
-
-impl Idle {
- pub(crate) fn parse(args: IdleArgs, item: ItemFn) -> parse::Result<Self> {
- let valid_signature = util::check_fn_signature(&item, false)
- && item.sig.inputs.len() == 1
- && util::type_is_bottom(&item.sig.output);
-
- let name = item.sig.ident.to_string();
-
- if valid_signature {
- if let Some((context, Ok(rest))) = util::parse_inputs(item.sig.inputs, &name) {
- if rest.is_empty() {
- return Ok(Idle {
- args,
- attrs: item.attrs,
- context,
- name: item.sig.ident,
- stmts: item.block.stmts,
- });
- }
- }
- }
-
- Err(parse::Error::new(
- item.sig.ident.span(),
- format!("this `#[idle]` function must have signature `fn({name}::Context) -> !`"),
- ))
- }
-}