Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main to release/dev17.8 #15611

Merged
merged 7 commits into from
Jul 17, 2023

Conversation

dotnet-bot
Copy link
Contributor

This is an automatically generated pull request from main into release/dev17.8.

Once all conflicts are resolved and all the tests pass, you are free to merge the pull request. 🐯

Troubleshooting conflicts

Identify authors of changes which introduced merge conflicts

Scroll to the bottom, then for each file containing conflicts copy its path into the following searches:

Usually the most recent change to a file between the two branches is considered to have introduced the conflicts, but sometimes it will be necessary to look for the conflicting lines and check the blame in each branch. Generally the author whose change introduced the conflicts should pull down this PR, fix the conflicts locally, then push up a commit resolving the conflicts.

Resolve merge conflicts using your local repo

Sometimes merge conflicts may be present on GitHub but merging locally will work without conflicts. This is due to differences between the merge algorithm used in local git versus the one used by GitHub.

git fetch --all
git checkout -t upstream/merges/main-to-release/dev17.8
git reset --hard upstream/release/dev17.8
git merge upstream/main
# Fix merge conflicts
git commit
git push upstream merges/main-to-release/dev17.8 --force

nojaf and others added 5 commits July 17, 2023 14:10
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
…5503)

* Add TailCall attribute
Move work of Avi Avni to current sources but use a field in cenv instead of a function parameter to pass around

* Adjust error number after merge

* add two test cases for type members

* Don't try to split empty CurriedArgInfos

* Add more member tests

* seems like we need to build up the env.mustTailCall set earlier in the traversal to have the content ready when checking members which call each other

* Fix an error from migrating the old PR to current sources.

* As cenv is mutated in loops, doing "with" copies isn't that great as the failing CI shows.
Making isTailCall also mutable is error prone as one has to switch back to orig values in many places.
So refactor to use a flag like Avi did.
This should fix the side effects (shown by the failing CI) and more tailrec specific tests

* update baselines for FSharp.Core to include TailCallAttribute

* warn for rec call in binding, still very WIP

* - improve check for problematic bindings to tailcall attributed functions
- add tests

* improve seq support

* add language version flag

* improve tests a bit

* add tests for async expressions

* add tests for module rec

* Improve handling of ModuleOrNamespaceContents.TMDefDo and extend testing

* suppress some invalid warnings by keeping track of ranges that are annotated with [<TailRec>]

* fix build

* use Stamp instead of LogicalName as the Map key

* fix error number after merge

* remove TailCall check code from PostInferenceChecks.fs

* Add new file TailCallChecks.fs to focus on tail call checks

* first steps to remove limits calculations

* remove last bits of limits

* don't bother with attribute checking here

* remove more unneeded code

* small optimization

* Adjust error number after main merge

* add TailCallChecks.fs to .fantomasignore

* remove last non-tailrec error reporting from dedicated file

* - add fsi file
- trim down some more

* simplify

* Remove resumable checks

* remove external handling

* remove isInAppExpr

* remove returnScope

* remove boundTyparNames

* remove argVals from env

* let's drop quote and reflect, too, for now

* remove usesQuotations

* get rid of range-based approach, collect TailRec-attributed bindings upfront and just traverse these

* fold instead of mutate

* format

* make tests more challenging

* do the TailCall checks during the main traversal

* WIP: move TailCallChecks into main3 after optimization

* format

* let TailCallChecks.fs be formatted

* bring over support for TyLambda bodies from other branch

* adjust expected errors

* fix the doubled error messages

* fix seq analysis

* cleanup

* cover some more rec constructs

* remove commented code from tests

* Rename the type "IsTailCall" to "TailCall"

* model boolean as dedicated type "TailCallReturnType"

* remove unused members of type "PermitByRefExpr"

* remove unused mustTailCallExprs from env

* add comment to explain origin of PermitByRefExpr

* First stab at support for continuation-passing-style

* - refactor approach for CPS support to be much simpler
- more CPS tests

* one env ought to be enough for everyone

* report time for "TailCall Checks"

* clean up unused function args

* improve some comments and names

* add API docs for TailCall attribute

* add xml comment for TailCallChecks.CheckImplFile

* Update src/FSharp.Core/prim-types.fsi

Co-authored-by: Petr <psfinaki@users.noreply.github.com>

* remove some superfluous stuff from CheckLambdas

* More detailed comment

* extend test with an inner class type

* optimize

* update xlf

* adjust error messages after xlf update

* revert white space changes that sneaked in during rebase

---------

Co-authored-by: Petr <psfinaki@users.noreply.github.com>
* internalerror with MakeValueAssign fixed?

* Add in optional setting for solution-wide background analysis

* fix

* telementry - lang service started will report background analysis flag
@dotnet-bot dotnet-bot requested a review from a team as a code owner July 17, 2023 18:09
@dotnet-bot dotnet-bot force-pushed the merges/main-to-release/dev17.8 branch from 201851d to a8d2a9c Compare July 17, 2023 18:09
@KevinRansom KevinRansom enabled auto-merge July 17, 2023 20:12
@KevinRansom KevinRansom merged commit 2f4b862 into release/dev17.8 Jul 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

6 participants