Conversation
use latest language version for Miscellaneous Files workspace
… kinds (#25893) * Partial methods implementation should match declaration parameter ref kinds * More tests
* Overload Resolution now fails with the correct error * PR Comments * Clean up
Disable flaky test WorkCoordinatorTests.FileFromSameProjectTogetherTest
The scenario listed in #22700 demonstrates the problem. The direct cause of the crash is that local lowering produces two instances of the lambda and lamda conversions in the resulting bound nodes. This crashes the closure conversion pass since the same lambda cannot appear in two places in the tree. However, even if that were allowed, this would violate the language specification. Placing a lambda inside an indexer which is nested in a compound assignment creates two calls which contain the delegate produced by the lambda expression. If the expression kind is marked as side-affecting it will be spilled into a temporary variable. However, the local lowering doesn't distinguish between whether an expression is side-affecting and whether or not it is referentially transparent. In this case, both matter. Since the delegate produced by the conversion can be compared by reference to any other delegate produced by the same lambda, the code must be referentially transparent -- it must produce the same result when evaluated repeatedly. The fix is small: mark lambda conversions as side-affecting. There are certain cases, like the creation of temporaries for out-of-order calls with named parameters, where the lambda conversion is only required to be non-side-affecting instead of referentially transparent, but it does not currently seem worth the implementation effort to split up the code path. Fixes #22700
* Produce errors on invalid pdbpath supplied to compiler * More tests
f8ee09a to
879b415
Compare
jmarolf
approved these changes
Apr 6, 2018
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.
This is an automatically generated pull request from dev15.7.x into master.
git fetch --all git checkout merges/dev15.7.x-to-master git reset --hard upstream/master git merge upstream/dev15.7.x # Fix merge conflicts git commit git push merges/dev15.7.x-to-master --forceOnce all conflicts are resolved and all the tests pass, you are free to merge the pull request.