Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
678a435
strs_tools
Wandalen Jul 6, 2025
10d662c
variadic_from
Wandalen Jul 6, 2025
82c46ac
chore(variadic_from): Clean up test directory and refactor lib structure
wanguardd Jul 6, 2025
f597108
refactor(variadic_from_meta): Use macro_tools::struct_like for input …
wanguardd Jul 6, 2025
68588eb
feat(variadic_from_meta): Implement FromN and From<Tuple> generation
wanguardd Jul 6, 2025
8a98994
feat(variadic_from_meta): Implement conditional convenience FromN impls
wanguardd Jul 6, 2025
9fabf44
feat(variadic_from): Implement and validate new test suite for derive…
wanguardd Jul 6, 2025
6f551a9
test(variadic_from): Implement compile-fail tests for derive macro
wanguardd Jul 6, 2025
174a9ec
chore(variadic_from): Complete refactor of variadic_from derive macro
wanguardd Jul 6, 2025
764be81
clean
Wandalen Jul 6, 2025
10c5ebf
macro_tools-v0.57.0
Wandalen Jul 6, 2025
01d6e69
former_meta-v2.19.0
Wandalen Jul 6, 2025
85f9216
former-v2.19.0
Wandalen Jul 6, 2025
f1df95e
derive_tools_meta-v0.37.0
Wandalen Jul 6, 2025
a320923
variadic_from_meta-v0.2.0
Wandalen Jul 6, 2025
6d4a9cb
planning
Wandalen Jul 6, 2025
f4e64f9
variadic_from_meta-v0.3.0
Wandalen Jul 6, 2025
afdedec
publishing
Wandalen Jul 6, 2025
054542c
variadic_from-v0.32.0
Wandalen Jul 6, 2025
3dbd9df
derive_tools-v0.37.0
Wandalen Jul 6, 2025
140a4c3
mod_interface_meta-v0.33.0
Wandalen Jul 6, 2025
c6027d5
mod_interface-v0.35.0
Wandalen Jul 6, 2025
4fa7b36
wca-v0.26.0
Wandalen Jul 6, 2025
f706acc
task
Wandalen Jul 6, 2025
eaac238
test(parser): Add failing test for incorrect command path parsing
wanguardd Jul 6, 2025
dbdafeb
fix(parser): Correctly distinguish command paths from arguments
wanguardd Jul 6, 2025
04ac518
tasks
Wandalen Jul 6, 2025
46f2c89
unilang_instruction_parser : fixing
wanguardd Jul 7, 2025
e114ab3
Merge branch 'cleaning_2' of github.com:Wandalen/wTools into cleaning_2
wanguardd Jul 7, 2025
7edb581
chore(unilang_instruction_parser): Complete 'Fix Command Path Parsing…
wanguardd Jul 7, 2025
6b87c38
unilang : clarification of spec
wanguardd Jul 7, 2025
6f666c9
unilang : spec
Wandalen Jul 7, 2025
957e3a4
unilang : task
Wandalen Jul 7, 2025
3391702
unilang wip
wanguardd Jul 8, 2025
0f06a1e
test(strs_tools): Add failing test for Iterator on SplitOptions<Vec<&…
wanguardd Jul 8, 2025
917234f
fix(strs_tools): Correct Iterator impl for SplitOptions with Vec<&str…
wanguardd Jul 8, 2025
45bd33d
chore(task): Complete task and update status
wanguardd Jul 8, 2025
149f4ef
unilang : evolution
wanguardd Jul 8, 2025
aad5833
feat(strs_tools): Change Split.string to Cow to support unescaping
wanguardd Jul 10, 2025
b8ddc22
feat(strs_tools): Implement unescaping logic for string splitting
wanguardd Jul 12, 2025
aae2330
feat(strs_tools): Make split iterator consume full quoted strings and…
wanguardd Jul 12, 2025
5b5ba01
strs_tools : unescaping
wanguardd Jul 12, 2025
6c8c686
strs_tools : unescaping wip
wanguardd Jul 12, 2025
c9d783f
strs_tools : unescaping wip
wanguardd Jul 12, 2025
13034ee
strs_tools
wanguardd Jul 12, 2025
c621e0e
strs_tools
wanguardd Jul 12, 2025
6b56017
.
wanguardd Jul 12, 2025
63d6045
.
wanguardd Jul 12, 2025
5f86770
.
wanguardd Jul 12, 2025
6332fb3
.
wanguardd Jul 12, 2025
5354d24
.
wanguardd Jul 12, 2025
326d1ea
strs_tools
wanguardd Jul 12, 2025
f8b9ef6
test(strs_tools): Correct flawed expectation in escape sequence test
wanguardd Jul 12, 2025
9cdf369
test(strs_tools): Add granular tests for escaped backslash handling
wanguardd Jul 12, 2025
340f97a
revert: Revert failed attempts to fix lifetime errors
wanguardd Jul 12, 2025
169d54b
wip
wanguardd Jul 12, 2025
5f19732
fix
wanguardd Jul 12, 2025
edd46f3
cleaning
wanguardd Jul 12, 2025
0612cc9
test(strs_tools): Add MRE for quoting and unescaping
wanguardd Jul 12, 2025
074c9c3
refactor(tests): Rename MRE test for clarity
wanguardd Jul 12, 2025
f3ca9af
test(strs_tools): Correct MRE test to expect unescaped string
wanguardd Jul 12, 2025
39662e8
fix
wanguardd Jul 13, 2025
e409663
new
wanguardd Jul 13, 2025
0621164
feat(strs_tools): Implement custom flag type for SplitBehavior
wanguardd Jul 13, 2025
d477cc9
unilang
wanguardd Jul 13, 2025
164bb1d
cleaning
wanguardd Jul 13, 2025
5fee37d
refactor(strs_tools): Replace bitflags usage in split.rs
wanguardd Jul 13, 2025
29c4853
chore(strs_tools): Remove bitflags dependency
wanguardd Jul 13, 2025
39d458a
chore(strs_tools): Finalize bitflags removal task
wanguardd Jul 13, 2025
4082063
chore(task): Complete task and update status
wanguardd Jul 13, 2025
4819e59
.
wanguardd Jul 13, 2025
285085f
Merge remote-tracking branch 'origin/cleaning_3' into cleaning_4
wanguardd Jul 13, 2025
4355631
.
wanguardd Jul 13, 2025
e10fd18
fix(strs_tools): Resolve clippy::std-instead-of-alloc warning
wanguardd Jul 13, 2025
701399c
wip
wanguardd Jul 13, 2025
9094bca
wip
wanguardd Jul 13, 2025
8d78e17
wip
wanguardd Jul 13, 2025
f833289
wip
wanguardd Jul 13, 2025
babbe95
wip
wanguardd Jul 13, 2025
c470694
cleaning
wanguardd Jul 19, 2025
1e48cf8
wip
wanguardd Jul 19, 2025
ecbb8b0
strs_tools
wanguardd Jul 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -121,13 +121,13 @@ default-features = false
## derive

[workspace.dependencies.derive_tools]
version = "~0.36.0"
version = "~0.37.0"
path = "module/core/derive_tools"
default-features = false
# features = [ "enabled" ]

[workspace.dependencies.derive_tools_meta]
version = "~0.36.0"
version = "~0.37.0"
path = "module/core/derive_tools_meta"
default-features = false
# features = [ "enabled" ]
Expand Down Expand Up @@ -169,11 +169,17 @@ path = "module/alias/fundamental_data_type"
default-features = false

[workspace.dependencies.variadic_from]
version = "~0.31.0"
version = "~0.32.0"
path = "module/core/variadic_from"
default-features = false
# features = [ "enabled" ]

[workspace.dependencies.variadic_from_meta]
version = "~0.3.0"
path = "module/core/variadic_from_meta"
default-features = false
# features = [ "enabled" ]

[workspace.dependencies.clone_dyn]
version = "~0.34.0"
path = "module/core/clone_dyn"
Expand Down Expand Up @@ -229,12 +235,12 @@ path = "module/core/for_each"
default-features = false

[workspace.dependencies.former]
version = "~2.18.0"
version = "~2.19.0"
path = "module/core/former"
default-features = false

[workspace.dependencies.former_meta]
version = "~2.18.0"
version = "~2.19.0"
path = "module/core/former_meta"
default-features = false

Expand Down Expand Up @@ -268,12 +274,12 @@ version = "~0.13.0"
path = "module/core/impls_index_meta"

[workspace.dependencies.mod_interface]
version = "~0.34.0"
version = "~0.35.0"
path = "module/core/mod_interface"
default-features = false

[workspace.dependencies.mod_interface_meta]
version = "~0.32.0"
version = "~0.33.0"
path = "module/core/mod_interface_meta"
default-features = false

Expand All @@ -299,7 +305,7 @@ default-features = false
## macro tools

[workspace.dependencies.macro_tools]
version = "~0.56.0"
version = "~0.57.0"
path = "module/core/macro_tools"
default-features = false

Expand Down Expand Up @@ -466,7 +472,7 @@ default-features = false
## ca

[workspace.dependencies.wca]
version = "~0.25.0"
version = "~0.26.0"
path = "module/move/wca"

## censor
Expand Down Expand Up @@ -657,3 +663,12 @@ default-features = false
# quote = { version = "~1.0.35", default-features = false, features = [] }
# syn = { version = "~2.0.52", default-features = false, features = [ "full", "extra-traits" ] } # qqq : xxx : optimize set of features
# const_format = { version = "0.2.32", default-features = false, features = [] }

# [replace]
# "macro_tools:0.56.0" = { path = "temp_crates/macro_tools_patched" }






2 changes: 1 addition & 1 deletion module/core/derive_tools/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "derive_tools"
version = "0.36.0"
version = "0.37.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion module/core/derive_tools_meta/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "derive_tools_meta"
version = "0.36.0"
version = "0.37.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion module/core/former/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "former"
version = "2.18.0"
version = "2.19.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion module/core/former_meta/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "former_meta"
version = "2.18.0"
version = "2.19.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
4 changes: 2 additions & 2 deletions module/core/macro_tools/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "macro_tools"
version = "0.56.0"
version = "0.57.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down Expand Up @@ -34,7 +34,7 @@ default = [
"ct",
"container_kind",
"derive",
"diag",
# "diag", # Reverted: Removed diag from default features
"equation",
"generic_args",
"generic_params",
Expand Down
54 changes: 22 additions & 32 deletions module/core/macro_tools/task.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,40 @@
# Change Proposal for macro_tools
# Change Proposal for `macro_tools`

### Task ID
* TASK-20250705-110800-MacroToolsFixes
* `TASK-20250706-155700-FixMacroToolsCompile`

### Requesting Context
* **Requesting Crate/Project:** derive_tools
* **Driving Feature/Task:** Restoration and validation of derive_tools test suite (V4 plan)
* **Link to Requester's Plan:** ../derive_tools/task_plan.md
* **Date Proposed:** 2025-07-05
* **Requesting Crate/Project:** `variadic_from_meta`
* **Driving Feature/Task:** Refactoring `variadic_from_meta` to use `macro_tools` utilities, specifically `syn_err!` and `return_syn_err!`.
* **Link to Requester's Plan:** `module/core/variadic_from/task_plan.md`
* **Date Proposed:** 2025-07-06

### Overall Goal of Proposed Change
* To resolve compilation errors and ambiguous name conflicts within the `macro_tools` crate, specifically related to module imports and `derive` attribute usage, and to properly expose necessary types for external consumption.
* To enable the `macro_tools` crate to compile successfully when its internal modules (like `item_struct` and `typ`) attempt to use the `syn_err!` macro, which appears to be gated behind a feature.

### Problem Statement / Justification
* During the restoration and validation of the `derive_tools` test suite, `macro_tools` (a dependency) failed to compile due to several issues:
* `E0432: unresolved import prelude` in `src/lib.rs` because `pub use prelude::*;` was attempting to import `prelude` from the current crate's root, not `std::prelude`.
* `E0659: derive is ambiguous` errors across multiple files (e.g., `src/attr.rs`, `src/attr_prop/singletone.rs`, `src/generic_params.rs`). This occurs because `use crate::*;` glob imports conflict with the `derive` attribute macro from the standard prelude.
* `E0412: cannot find type GenericsWithWhere` in `src/generic_params.rs` tests, indicating that `GenericsWithWhere` was not properly exposed for use in tests or by dependent crates.
* A stray doc comment in `src/generic_params.rs` caused a "expected item after doc comment" error.
* **NEW:** `mismatched closing delimiter: `]` in `src/lib.rs` at line 24, indicating a syntax error in a `#[cfg]` attribute.
* These issues prevent `derive_tools` from compiling and testing successfully, as `macro_tools` is a core dependency. Temporary workarounds were applied in `derive_tools`'s context (e.g., `#[allow(ambiguous_glob_reexports)]`), but these are not sustainable or proper fixes for an external crate.
* The `variadic_from_meta` crate depends on `macro_tools` and attempts to use its `struct_like`, `generic_params`, and `typ` modules. During compilation, `macro_tools` itself fails with "cannot find macro `syn_err` in this scope" errors originating from its own source files (`src/item_struct.rs`, `src/typ.rs`). This indicates that a necessary feature for `macro_tools`'s internal compilation, likely related to diagnostics or error handling, is not enabled by default or through the current dependency configuration. This prevents `variadic_from_meta` (and any other crate depending on these `macro_tools` features) from compiling.

### Proposed Solution / Specific Changes
* **API Changes:**
* **`src/lib.rs`:** Change `pub use prelude::*;` to `pub use crate::prelude::*;` to correctly reference the crate's own prelude module.
* **`src/generic_params.rs`:** Ensure `GenericsWithWhere` is publicly exposed (e.g., `pub use own::GenericsWithWhere;` in `src/generic_params/mod.rs` or similar mechanism if `mod_interface!` is used).
* **Behavioral Changes:**
* The `derive` ambiguity issue (E0659) should be addressed by refactoring the `use crate::*;` glob imports in affected files (e.g., `src/attr.rs`, `src/attr_prop/singletone.rs`, etc.) to be more specific, or by explicitly importing `derive` where needed (e.g., `use proc_macro::TokenStream; use syn::DeriveInput;` and then `#[proc_macro_derive(...)]` or `#[derive(...)]`). The current `#[allow(ambiguous_glob_reexports)]` is a temporary workaround and should be removed.
* **Internal Changes:**
* **`src/generic_params.rs`:** Remove the stray doc comment that caused compilation errors.
* **`src/lib.rs`:** Correct the mismatched closing delimiter in the `#[cfg]` attribute at line 24.
* **Enable `diagnostics` feature:** Add the `diagnostics` feature to the `macro_tools` crate's `Cargo.toml`. This feature is commonly used for error reporting and diagnostic utilities in procedural macro helper crates.

### Expected Behavior & Usage Examples (from Requester's Perspective)
* The `macro_tools` crate should compile without errors or warnings.
* `derive_tools` should be able to compile and run its tests successfully without needing `#[allow(ambiguous_glob_reexports)]` or other workarounds related to `macro_tools`.
* `GenericsWithWhere` should be accessible from `derive_tools_meta` for its internal logic and tests.
* The `macro_tools` crate should compile successfully, allowing `variadic_from_meta` to compile and proceed with its refactoring.
* The `syn_err!` and `return_syn_err!` macros should be available for use within `macro_tools`'s internal modules and potentially for re-export.

### Acceptance Criteria (for this proposed change)
* `macro_tools` compiles successfully with `cargo build -p macro_tools --all-targets` and `cargo clippy -p macro_tools -- -D warnings`.
* `derive_tools` compiles and passes all its tests (`cargo test -p derive_tools --all-targets`) without any temporary `#[allow]` attributes related to `macro_tools` issues.
* `cargo build -p macro_tools` (with the `diagnostics` feature enabled) must exit with code 0 and no compilation errors.
* `cargo build -p variadic_from_meta` (which depends on the patched `macro_tools`) must compile successfully.

### Potential Impact & Considerations
* **Breaking Changes:** The proposed changes are primarily fixes and clarifications; they should not introduce breaking changes to `macro_tools`'s public API.
* **Dependencies:** No new dependencies are introduced.
* **Performance:** No significant performance implications are expected.
* **Testing:** Existing tests in `macro_tools` should continue to pass. New tests might be beneficial to cover the `GenericsWithWhere` exposure.
* **Breaking Changes:** No breaking changes are anticipated for `macro_tools`'s public API, as this change primarily affects its internal compilation.
* **Dependencies:** No new external dependencies are expected.
* **Performance:** No significant performance impact is anticipated.
* **Security:** No security implications are anticipated.
* **Testing:** The `macro_tools` crate's existing test suite should continue to pass. New tests specifically for the `diagnostics` feature might be beneficial but are out of scope for this proposal.

### Alternatives Considered (Optional)
* None, as the error message directly points to a missing macro within `macro_tools`'s own compilation, suggesting a feature-gating issue.

### Notes & Open Questions
* The `derive` ambiguity is a common issue with glob imports and attribute macros. A systematic review of `use crate::*;` in `macro_tools` might be beneficial.
* Confirm if `diagnostics` is indeed the correct feature name for enabling `syn_err!` and `return_syn_err!`. If not, further investigation into `macro_tools`'s internal structure would be required by its maintainers.
2 changes: 1 addition & 1 deletion module/core/mod_interface/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mod_interface"
version = "0.34.0"
version = "0.35.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion module/core/mod_interface_meta/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mod_interface_meta"
version = "0.32.0"
version = "0.33.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <[email protected]>",
Expand Down
3 changes: 0 additions & 3 deletions module/core/strs_tools/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ workspace = true
features = [ "full" ]
all-features = false



[features]
default = [
"enabled",
Expand Down Expand Up @@ -59,7 +57,6 @@ string_parse = []
[dependencies]
lexical = { version = "7.0.4", optional = true }
component_model_types = { workspace = true, features = ["enabled"] }
bitflags = "2.5.0"

[dev-dependencies]
test_tools = { workspace = true }
6 changes: 6 additions & 0 deletions module/core/strs_tools/changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* [Increment 1 | 2025-07-08 09:58 UTC] Added a failing test case to `strs_tools` to reproduce the iterator compilation error.
* [Increment 2 | 2025-07-08 10:01 UTC] Corrected the `IntoIterator` implementation for `SplitOptions` and fixed the test case.
* [Increment 2 | 2025-07-13 12:18 UTC] Implemented custom flag type for `SplitBehavior` and added tests.
* [Increment 3 | 2025-07-13 12:34 UTC] Confirmed `bitflags` usage was already replaced by custom type in `split.rs` and verified compilation and tests.
* [Increment 4 | 2025-07-13 12:35 UTC] Removed `bitflags` dependency from `Cargo.toml` and verified compilation and tests.
* [Increment 5 | 2025-07-13 12:36 UTC] Finalized `bitflags` removal task, performed holistic review and verification.
Loading