Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix workspace inheritance bug #53

Merged
merged 1 commit into from
Oct 15, 2022

Conversation

dyerti
Copy link

@dyerti dyerti commented Oct 14, 2022

Need to call complete_from_path after inherit_workspace otherwise inherited fields are accessed before they have been defined.

Bug is reproducible by inheriting edition or readme from the workspace. For edition you need either a lib.rs or main.rs (or both) in the package (empty files are sufficient).

I have a minimal test for cargo_toml, but it seems to be expected behavior based on the function descriptions.

Triggered by edition with lib.rs:
https://gitlab.com/crates.rs/cargo_toml/-/blob/3c9c20e07638dba7f7ba462f6d5f9247146cd93b/src/cargo_toml.rs#L366
Triggered by edition with main.rs:
https://gitlab.com/crates.rs/cargo_toml/-/blob/3c9c20e07638dba7f7ba462f6d5f9247146cd93b/src/cargo_toml.rs#L388
Triggered by readme:
https://gitlab.com/crates.rs/cargo_toml/-/blob/3c9c20e07638dba7f7ba462f6d5f9247146cd93b/src/cargo_toml.rs#L428
Potentially problematic, but I didn't get around to triggering them:
https://gitlab.com/crates.rs/cargo_toml/-/blob/3c9c20e07638dba7f7ba462f6d5f9247146cd93b/src/cargo_toml.rs#L482
https://gitlab.com/crates.rs/cargo_toml/-/blob/3c9c20e07638dba7f7ba462f6d5f9247146cd93b/src/cargo_toml.rs#L499

Need to call `complete_from_path` after `inherit_workspace` otherwise
inherited fields are accessed before they have been defined.
@kornelski kornelski merged commit a792f4a into kornelski:main Oct 15, 2022
@kornelski
Copy link
Owner

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants