diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-05-24 18:20:34 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-05-24 18:20:34 +0800 |
| commit | 979e881762a728661e72efd99bc2b35b3db8c71b (patch) | |
| tree | e4866204297693f9472de64288a693590114cce8 | |
| parent | 0d3639016ac89ca3c6d7a8d2c8aa3b7656069e4e (diff) | |
Require explicit import of `crate::Next` in chained functions
| -rw-r--r-- | CHANGELOG.md | 14 | ||||
| -rw-r--r-- | mingling_macros/src/chain.rs | 8 | ||||
| -rw-r--r-- | mling/src/cli/install.rs | 2 | ||||
| -rw-r--r-- | mling/src/cli/list.rs | 2 | ||||
| -rw-r--r-- | mling/src/cli/namespace_mgr.rs | 5 | ||||
| -rw-r--r-- | mling/src/cli/read.rs | 5 |
6 files changed, 31 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index a6bda6b..36806ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,6 +108,20 @@ fn render(prev: Previous) { // Implicitly introduces `__renderer_inner_result` 5. **\[macros\]** Moved the `entry!`, `route!`, `#[program_setup]` macros into the `extra_macros` feature +6. **\[macros\]** The `crate::Next` generated by `gen_program!()` now requires explicit import into the project + +```rust +use crate::Next; + +#[chain] +fn handle_cmd(args: EntryCmd) -> Next { + // ^^^^\_ requires explicit import + // ... +} + +gen_program!(); +``` + --- ### Release 0.1.8 (2026-05-18) diff --git a/mingling_macros/src/chain.rs b/mingling_macros/src/chain.rs index 9666c51..559468c 100644 --- a/mingling_macros/src/chain.rs +++ b/mingling_macros/src/chain.rs @@ -183,7 +183,13 @@ fn generate_original_fn( } } } else { - quote! { #fn_body } + quote! { + { + let _: crate::Next; + let _: Next; + #fn_body + } + } }; #[cfg(feature = "async")] diff --git a/mling/src/cli/install.rs b/mling/src/cli/install.rs index dd6dec4..cca7483 100644 --- a/mling/src/cli/install.rs +++ b/mling/src/cli/install.rs @@ -4,7 +4,7 @@ use mingling::{ parser::Picker, }; -use crate::project_installer::install_all; +use crate::{Next, project_installer::install_all}; dispatcher!("install", InstallCommand => InstallEntry); diff --git a/mling/src/cli/list.rs b/mling/src/cli/list.rs index c3e4c05..ac9a65f 100644 --- a/mling/src/cli/list.rs +++ b/mling/src/cli/list.rs @@ -6,7 +6,7 @@ use mingling::{ }; use serde::Serialize; -use crate::namespace_manager::list_namespaces; +use crate::{Next, namespace_manager::list_namespaces}; dispatcher!("ls-namespace", ListInstalledCommand => ListInstalledEntry); diff --git a/mling/src/cli/namespace_mgr.rs b/mling/src/cli/namespace_mgr.rs index 0f11332..4ea2229 100644 --- a/mling/src/cli/namespace_mgr.rs +++ b/mling/src/cli/namespace_mgr.rs @@ -4,7 +4,10 @@ use mingling::{ parser::{Picker, Yes}, }; -use crate::namespace_manager::{list_namespaces, remove_namespace, set_namespace_trusted}; +use crate::{ + Next, + namespace_manager::{list_namespaces, remove_namespace, set_namespace_trusted}, +}; dispatcher!("trust", TrustNamespaceCommand => TrustNamespaceEntry); dispatcher!("untrust", UntrustNamespaceCommand => UntrustNamespaceEntry); diff --git a/mling/src/cli/read.rs b/mling/src/cli/read.rs index 6352c94..82f8fd5 100644 --- a/mling/src/cli/read.rs +++ b/mling/src/cli/read.rs @@ -7,7 +7,10 @@ use mingling::{ }; use serde::Serialize; -use crate::project_solver::{BinaryItem, solve_current_dir}; +use crate::{ + Next, + project_solver::{BinaryItem, solve_current_dir}, +}; dispatcher!("show-target-dir", ReadTargetDirCommand => ReadTargetDirEntry); dispatcher!("show-workspace-root", ReadWorkspaceRootCommand => ReadWorkspaceRootEntry); |
