Fix the validation of incompatible options #138
Merged
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.
All clients must be validated, not only the first one (which was the case due to returning during the first iteration of the loop over clients).
The easiest way to handle it is to put the validation inside the prototype node, so that each client is validated separately. This also allows to have a better error message (as the error message will tell you which client is invalid as the error will be inside the client configuration node).
The error message is also fixed to talk about the third incompatible features.
I answered
not really
for BC breaks, because there is a small change. If someone configures incompatible features in a client other than the first one, the DI configuration layer was not rejecting it previously.But this is not a huge issue, because configuring both would not work properly today anyway (which is why features are marked as incompatible), as they would only get access to features of the last one (as other ones would be hidden inside the decorator stack)