Add compile-time validation for Storage parameter conflicts #1158
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Implement validation rules for component `Storage`` parameters that follow normal Rust borrowing semantics:
&Storageparameters (multiple immutable references)&mut Storageparameter (exclusive mutable reference)&Storagewith&mut Storage&mut StorageparametersAdds macro unit tests and UI compilation failure message tests.
Note: This was not clearly handled in the past (since component inception). An error would have been thrown but it would have misrepresented the problem to a conflicting
ConfigMut<T>instead of the real issue which is a conflicting&mut Storageparameter.How This Was Tested
cargo make allIntegration Instructions