Fix generator error on command line (#63347) #64011
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.
The latest compiler was throwing when generators took advantage of the new API
ForAttributeWithMetadataNamewith an exception trying to compareCompilationOptionvalues. The reason is that we didn't plumbReferenceEqualityComparerin both the places it was needed. Doing that fixed the bug.The reason this was never caught during testing is that we create
CompilationOptionsdifferently in testing vs. the command line. The command line inserts aLoggingMetadataFileReferenceResolverinstance which throws on all equality methods. The reasons for this are unknown but it is the behavior we have. TheCompilationOptionsused in testing do normal value based equality checks. This created a significant test gap for us.This change introduces a new
CompilationOptionshelper that throws on equality checks. Once that was introduced into the generator tests we saw everything fail as expected. After fixing the bug the tests all moved back to passing.closes #63318