Fix HasValueX incorrectly returning true#676
Merged
Turnerj merged 4 commits intoRehanSaeed:mainfrom Dec 17, 2023
Merged
Conversation
added 4 commits
December 13, 2023 17:36
…n analysers that cause the build to fail
…> collection is empty, where T is a string - Added `AssertEx` class that exposes a `Empty()` method that takes a `OneOrMany<T>`. - Updated all `Assert.Empty(OneOrMany<string>!)` instances to use `AssertEx.Empty(OneOrMany<string>)`. Tests now pass!
…e to Values() constructors Presently failing, next commit addresses bug.
…o ValueX, from object collection, and correctly storing the state of HasValueX
Collaborator
|
Hey @SmithPlatts - thanks for this! I'll try and review it soon as what you described in this and corresponding issue make sense. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Overview
As per issue #675, when a whitespace string is passed to the
Values(params object[] items)orValues(IEnumerable<object?> items)constructors of any of theValues<>classes, theHasValueXproperty will returntrue, where the correspondingValueXwill be empty.Primary changes
this.HasValueXevaluation and assignment to afterthis.ValueXassignment.Ancillary changes
.editorconfigto redefine new Roslyn analysers, ensuring that newer warnings don't fail the build.Schema.NET.Test,AssertEx.Empty<T>(OneOrMany<T> collection), which addresses the instances where the compiler was implicitly usingstringforAssert.Empty(OneOrMany<string>), instead of treating the input as an enumerable.