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

[Do not merge] Ref returns #6747

Closed
wants to merge 545 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
545 commits
Select commit Hold shift + click to select a range
c29d222
Merge remote-tracking branch 'upstream/master' into future
tannergooding Sep 23, 2015
299362a
Merge pull request #5405 from tannergooding/future
tannergooding Sep 23, 2015
f202b1b
Removed "Position" concept from ProjectTreeParser - too hard to plumb…
davkean Sep 23, 2015
4968f3b
Change it so that we read the property name before consuming followin…
davkean Sep 23, 2015
670d7c6
Added additional coverage for the ProjectTreeParser
davkean Sep 23, 2015
6d7a902
Add support for parsing more than one project item
davkean Sep 23, 2015
fc6ee4a
Moved structural delimiters
davkean Sep 23, 2015
e4875b4
Added negative tests to PropertiesFolderProjectTreeModifier
davkean Sep 24, 2015
257b2fc
Add positive tests for PropertiesFolderProjectTreeModifier
davkean Sep 24, 2015
f2ed4a3
Merge pull request #5483 from dotnet/master
tannergooding Sep 28, 2015
952ee91
More
msJohnHamby Feb 17, 2015
0c5acc7
More
msJohnHamby Feb 17, 2015
00effd5
Still more
msJohnHamby Feb 17, 2015
b1027ce
Completion of IOperation snapshot
msJohnHamby Feb 18, 2015
b7f4517
Added a comment.
msJohnHamby May 5, 2015
f8fea1e
Cleaning up after merge
msJohnHamby Jun 20, 2015
3d59bbc
Compiles again, and existing tests run correctly
msJohnHamby Jun 20, 2015
f298d64
Remove a couple of unnecessary Imports
msJohnHamby Jun 20, 2015
4d046ec
Introduce ConditionalWeakTable usage instead of repeated object creat…
msJohnHamby Jun 23, 2015
e4463e4
Removed explicit qualification by Semantics. where possible.
msJohnHamby Jun 23, 2015
36c67d1
Added a few more statement and expression kinds
msJohnHamby Jun 24, 2015
21e892b
Progress
msJohnHamby Jun 25, 2015
6d062e1
BigFor tests now pass
msJohnHamby Jun 29, 2015
11633d8
Added switch statement tests
msJohnHamby Jul 24, 2015
0bf8a59
Correct treatment of values in Select cases
msJohnHamby Jul 24, 2015
f5c75e4
Added doc comments to most IStatement types.
msJohnHamby Jul 25, 2015
46e8b8f
Added some more doc comments.
msJohnHamby Jul 29, 2015
301d86a
More doc comments
msJohnHamby Jul 30, 2015
b567819
Make arguments work (at least in C#)
msJohnHamby Jul 31, 2015
6b907c6
Added some copyright notices and replaced "get { return " constructs …
msJohnHamby Aug 11, 2015
6a1f029
Some code review fixes
msJohnHamby Aug 11, 2015
551766a
Restricted the accessibility of some property setters.
msJohnHamby Aug 12, 2015
6ee8e9c
Trying to get back to a state where Roslyn builds and runs analyzer t…
msJohnHamby Aug 13, 2015
8f7a639
Addressed some, but not all, code review feedback
msJohnHamby Aug 19, 2015
e518bbd
Some more work on review feedback--partial state due to failing computer
msJohnHamby Aug 24, 2015
ead75a8
Working on overhauling IInvocation
msJohnHamby Aug 27, 2015
ee103b8
Treatment of arguments in invocations moves closer to correctness.
msJohnHamby Sep 1, 2015
59d907b
Nearing the end of the first round of review feedback.
msJohnHamby Sep 2, 2015
5a08367
Finally recover from moving analyzers out of Roslyn.
msJohnHamby Sep 24, 2015
796ae65
Add "Expression" and "Statement" suffixes to names of various IOperat…
msJohnHamby Sep 25, 2015
1f376b0
Maybe the last wave of responses to code review feedback before initi…
msJohnHamby Sep 25, 2015
724d270
Recovering from rebase
msJohnHamby Sep 28, 2015
2d349d3
More rebase noise
msJohnHamby Sep 28, 2015
04066cd
One more rebase merge issue
msJohnHamby Sep 28, 2015
ead0163
Still rebasing
msJohnHamby Sep 28, 2015
b36535c
Grumble.
msJohnHamby Sep 28, 2015
59d760b
Rebase seems to have missed a few edits.
msJohnHamby Sep 28, 2015
a3a2d6e
Couple more bits of Rebase fallout
msJohnHamby Sep 28, 2015
6938a31
Added new Moq overloads that enable us to Moq out parameters.
davkean Sep 29, 2015
797a60d
Finally builds after rebase.
msJohnHamby Sep 29, 2015
43f2789
Added additional tests for PropertiesFolderProjectTreeModifier
davkean Sep 29, 2015
6444082
Added tests for MyProjectFolderProjectTreeModifier
davkean Sep 29, 2015
d17ec76
Added tests for ProjectRootImageProjectTreeModifier
davkean Sep 29, 2015
fdafcdf
Added "Expression" suffix to expression OperationKind values.
msJohnHamby Sep 29, 2015
5fcc500
Add two properties to IUnconfiguredProjectCommonServices for returnin…
davkean Sep 29, 2015
df96c4f
Respond to review feedback.
msJohnHamby Sep 30, 2015
d3bd32d
Added the ability to read/respect <AppDesignerFolder> property to mim…
davkean Oct 1, 2015
1caaefb
Removed dead code
davkean Oct 1, 2015
32ad9a2
Added tests for UnconfiguredProjectVsServices
davkean Oct 1, 2015
ed6d8c9
Merge remote-tracking branch 'origin/master' into future
agocke Oct 1, 2015
61077e5
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 1, 2015
f0ab607
Added tests for CSharpProjectImageProvider/VisualBasicProjectImagePro…
davkean Oct 2, 2015
1e6b51c
Remove unnecessary usings
davkean Oct 5, 2015
3d0b0ec
Marked capability providers with exclude from code coverage
davkean Oct 5, 2015
eeec804
Added runsettings to cut down code coverage to just product binaries
davkean Oct 5, 2015
bdc79b0
More responses to review feedback.
msJohnHamby Oct 5, 2015
a33e321
Fix merge conflict
msJohnHamby Oct 5, 2015
31cb6ff
Merge pull request #5699 from dotnet/master
tannergooding Oct 5, 2015
2ebc8a5
First initial test class for OpenProjectDesignerCommand.
davkean Oct 5, 2015
e711c88
Recover from merge
msJohnHamby Oct 5, 2015
07fd887
Merge remote-tracking branch 'upstream/future' into IOperation2
msJohnHamby Oct 5, 2015
fcc1128
Added tests for OpenProjectDesignerXXXCommand objects
davkean Oct 6, 2015
a476a80
Restore executable attribute to csc
msJohnHamby Oct 7, 2015
93e974f
Restore executable attribute to vbc
msJohnHamby Oct 7, 2015
9a7e3e9
Added tests for ProjectDesignerService.
davkean Oct 7, 2015
a4bd0ce
Exclude Microsoft.VisualStudio.Threading from code coverage.
davkean Oct 7, 2015
4d49e8b
Updated copyrights in rules to match source files.
davkean Oct 7, 2015
aa4f962
Removed unneeded // from copyright
davkean Oct 7, 2015
aa8647e
Merge pull request #5521 from JohnHamby/IOperation2
msJohnHamby Oct 7, 2015
7a20047
Merge remote-tracking branch 'upstream/master' into future
jmarolf Oct 7, 2015
29e41c6
Merged template guid/project type providers into same classes and add…
davkean Oct 7, 2015
862a6b4
Merge pull request #5763 from jmarolf/future
jmarolf Oct 7, 2015
1f6a528
Added tests for ProjectImageProviderAggregator.
davkean Oct 8, 2015
4de8992
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 8, 2015
c8fe534
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 9, 2015
9ea8ba2
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 9, 2015
f853b4a
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 9, 2015
a24e2dd
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 9, 2015
1d7795f
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 9, 2015
30db78c
Starting work on system analyzers.
msJohnHamby Oct 13, 2015
34b778a
Adding OperationBlock actions.
msJohnHamby Oct 13, 2015
f2670d5
Further progress on operation block actions.
msJohnHamby Oct 13, 2015
c56619e
Clarify comments inside tests
davkean Oct 14, 2015
175629f
Close to having operation block start actions working.
msJohnHamby Oct 15, 2015
3dfbd33
Operation block start actions now appear to work.
msJohnHamby Oct 16, 2015
b6f039b
Operation block start actions now work, and the FieldCouldBeReadonly …
msJohnHamby Oct 17, 2015
c46cb4c
Merge remote-tracking branch 'origin/master' into future
agocke Oct 19, 2015
0de62e7
Removing a bad entry in PublicAPI.Unshipped.txt from previous merge.
Oct 19, 2015
e43d0f8
Merge remote-tracking branch 'origin/master' into future
agocke Oct 19, 2015
959c2de
Merge remote-tracking branch 'origin/master' into future
Oct 19, 2015
0257213
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 20, 2015
6f0f1b0
Updating ProvideRoslynBindingRedirection.cs to use v2.0.0.0 in future
tannergooding Oct 20, 2015
d58e2c1
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 20, 2015
32a6db2
Merge remote-tracking branch 'origin/master' into future
tannergooding Oct 20, 2015
4db64f7
Use version 2.0.0.0 in future
amcasey Oct 20, 2015
066af63
Delete Version.props
amcasey Oct 20, 2015
5088843
Merge pull request #6185 from amcasey/FutureVersion
amcasey Oct 20, 2015
c4cb241
Now operation block start actions really work. FieldCouldBeReadOnly a…
msJohnHamby Oct 20, 2015
d942923
Merge remote-tracking branch 'upstream/future' into SystemAnalyzers
msJohnHamby Oct 20, 2015
ee2eeed
Respond to review feedback.
msJohnHamby Oct 22, 2015
1fb42e2
Reverting unintended changes to Roslyn.sln
msJohnHamby Oct 22, 2015
ccaf269
Merge pull request #6193 from JohnHamby/SystemAnalyzers
msJohnHamby Oct 22, 2015
b9d27a7
Started LocalCouldBeConstAnalyzer.
msJohnHamby Oct 23, 2015
6fd828f
FieldCoundBeConst analyzer now works.
msJohnHamby Oct 24, 2015
d70a522
Require const locals to have constant initializers and appropriate ty…
msJohnHamby Oct 24, 2015
c8d684d
Moved system language analyzers to separate files.
msJohnHamby Oct 26, 2015
cc38119
Merge pull request #6290 from JohnHamby/MoreSystemAnalyzers
msJohnHamby Oct 26, 2015
0845b4f
Progress on CouldHaveMoreSpecificTypeAnalyzer.
msJohnHamby Oct 28, 2015
2dc9d90
CouldHaveMoreSpecificTypeAnalyzer is at least sort of working. More t…
msJohnHamby Oct 28, 2015
989eb92
Merge remote-tracking branch 'origin/master' into future
Oct 29, 2015
19fa24f
Analyzer now has C# testing but still needs VB testing.
msJohnHamby Oct 29, 2015
38909a2
Merge remote-tracking branch 'origin/master' into future
Oct 29, 2015
21dd053
VB test now works.
msJohnHamby Oct 30, 2015
ce473e4
Merge remote-tracking branch 'upstream/future' into CouldBeMoreSpecif…
msJohnHamby Oct 30, 2015
e73ee3f
Merge branch 'master' into future
brettfo Nov 3, 2015
4d2ada2
Introduce C# bound nodes for field and property initialization instea…
msJohnHamby Nov 3, 2015
8130d81
Merge remote-tracking branch 'origin/master' into future
tannergooding Nov 3, 2015
c492825
Merge remote-tracking branch 'origin/master' into future
tannergooding Nov 3, 2015
930dea3
Add a draft specification for pattern-matching so it is version contr…
gafter Nov 4, 2015
94e19a1
Update the draft spec for patterns to include overloaded `operator is`.
gafter Nov 4, 2015
4ed7918
Revamped treatment of EqualValue syntax in the C# semantic models. Ga…
msJohnHamby Nov 5, 2015
8f95983
Removed an experiment accidently left in the code.
msJohnHamby Nov 5, 2015
9a7cd5f
Fixed typos in a couple of comments.
msJohnHamby Nov 5, 2015
5f7a9b8
Minor formatting issues.
msJohnHamby Nov 5, 2015
1020a29
Get a clean test run.
msJohnHamby Nov 5, 2015
ed6fef1
Merge remote-tracking branch 'upstream/master' into integration
tannergooding Nov 5, 2015
a415f49
Clarify DA rules for let
gafter Nov 5, 2015
7402ffd
Use ANTLR syntax for grammar rules
gafter Nov 5, 2015
d13feca
Merge pull request #6570 from gafter/pattern-spec
gafter Nov 5, 2015
84cb65d
The the ANTLR syntax for repetition.
gafter Nov 5, 2015
9c663d5
Merge pull request #6584 from tannergooding/integration
tannergooding Nov 5, 2015
a6fd067
More robust treatment of expressions in VB initializers.
msJohnHamby Nov 6, 2015
4b0647a
Merge remote-tracking branch 'origin/master' into future
tannergooding Nov 6, 2015
bcc9848
Handle BoundEqualsValue nodes in flow analysis.
msJohnHamby Nov 7, 2015
2317d96
Removed an extraneous blank line.
msJohnHamby Nov 7, 2015
a43fd45
Moved the point of testing for BoundEqualsValue nodes in flow analysis.
msJohnHamby Nov 7, 2015
0a1adc0
Removed an extraneous space character.
msJohnHamby Nov 7, 2015
7c513cf
Replaced ad hoc code with overriding Visit methods.
msJohnHamby Nov 9, 2015
4f6564d
Merge remote-tracking branch 'upstream/master' into integration
tannergooding Nov 9, 2015
4b19404
Merge pull request #6652 from tannergooding/integration
tannergooding Nov 9, 2015
9afd28e
Merge remote-tracking branch 'upstream/master' into integration
tannergooding Nov 9, 2015
58a122e
Merge branch 'future' into feature/cps
davkean Nov 9, 2015
bf4f77f
Merge pull request #6656 from tannergooding/integration
tannergooding Nov 9, 2015
3ec78fa
Merge pull request #6480 from JohnHamby/CouldBeMoreSpecificTypeAnalyzer
msJohnHamby Nov 10, 2015
821c0bb
Skip flaky test
agocke Nov 10, 2015
4cef2bc
Merge remote-tracking branch 'upstream/master' into merge
tannergooding Nov 10, 2015
416f021
Merge pull request #6688 from tannergooding/merge
tannergooding Nov 10, 2015
ed3b9c1
Added project system projects to Roslyn.sln.
davkean Nov 10, 2015
f2d98c8
Moved ProjectSystem.sln outside of root to reduce no of solutions
davkean Nov 10, 2015
1874c30
Merge remote-tracking branch 'upstream/master' into merge
tannergooding Nov 11, 2015
e05ccaf
Merge pull request #6711 from tannergooding/merge
tannergooding Nov 11, 2015
d9e1b96
Modify patterns.md: Add a when clause to the let-statement and add a …
gafter Nov 12, 2015
49615c9
Update patterns.md to restore the `,` between match sections.
gafter Nov 12, 2015
9ee1b98
Update patterns.md to disallow chained case expressions
gafter Nov 12, 2015
55e54b7
Move ProjectSystem from packages.config -> project.json
davkean Nov 12, 2015
64db885
Fix for flaky test TestAnalyzerLoading.
mavasani Nov 12, 2015
15ee80e
Removed commented msbuild code from project.
davkean Nov 12, 2015
01bca64
Added new project for deploying test dependencies
davkean Nov 13, 2015
dfea697
Fixed grammer in deploy project readme.txt
davkean Nov 13, 2015
375ef04
Fixed VS binaries were not being included in VSIX.
davkean Nov 13, 2015
292c2d8
Fixed comment in deploy project readme.txt
davkean Nov 13, 2015
b75242b
Merge feature -> features/cps
davkean Nov 13, 2015
2ea2f2a
Added: DeployTestDependencies to Roslyn.sln
davkean Nov 13, 2015
85df79e
Added project system's project.lock.json
davkean Nov 13, 2015
cba7445
Added ProjectSystemSetup to Roslyn.sln.
davkean Nov 13, 2015
4555842
Merge pull request #6745 from mavasani/Issue6665_future
mavasani Nov 13, 2015
4e11185
Removed unused target
davkean Nov 13, 2015
c8108c6
Suppressed RS0003 (missing ConfigureAwait) until we fix 6770
davkean Nov 13, 2015
707f7d6
Marked project system tests with [UnitTestTrait]
davkean Nov 13, 2015
eb524aa
Rename UnitTestTraitAttribute -> ProjectSystemTraitAttribute
davkean Nov 13, 2015
55f54ad
Merge remote-tracking branch 'upstream/master' into future
agocke Nov 16, 2015
20edb3c
Merge pull request #6808 from davkean/dev/davkean/nuget
davkean Nov 17, 2015
902ad8d
Merge pull request #6807 from agocke/MergeMasterToFuture
agocke Nov 17, 2015
8ad4f3e
Merge remote-tracking branch 'upstream/master' into future
agocke Nov 18, 2015
cdef925
Add an MSBuild log to output on Windows
davkean Nov 17, 2015
0447bff
Add an MSBuild log to output on Mac/Linux
davkean Nov 18, 2015
121ea80
Merge pull request #6854 from davkean/feature_msbuildlog
davkean Nov 19, 2015
c401e87
Merge remote-tracking branch 'upstream/future' into feature/cps
davkean Nov 19, 2015
2f72e95
Commit XXX.nuget.props and XXX.nuget.targets
davkean Nov 19, 2015
08202dc
Merge pull request #6756 from davkean/feature/cps
davkean Nov 23, 2015
3d801ac
Merge branch 'future'
davkean Nov 23, 2015
8ae7333
Renamed SingeNodeProjectCommandBase -> SingleNodeProjectCommandBase
davkean Nov 23, 2015
4a860a0
Rename XXXBase -> AbstractXXX to match Roslyn guidelines
davkean Nov 23, 2015
b094120
Update ProjectRootImageProjectTreeModifier's doc comment
davkean Nov 23, 2015
7c0b304
Removed unused usings
davkean Nov 23, 2015
27d3efd
Turned async void in tests -> async Task
davkean Nov 23, 2015
bd97fbf
Merge pull request #6973 from davkean/feature/cps_feedback
davkean Nov 24, 2015
8dbff2e
Merge remote-tracking branch 'upstream/master' into merge_master_into…
jmarolf Dec 3, 2015
07639d8
Use Concord interfaces for formatting
cston Oct 28, 2015
f968154
Merge pull request #6926 from cston/6899
cston Dec 4, 2015
a0bb177
Merge remote-tracking branch 'upstream/master' into merge_master_into…
jmarolf Dec 7, 2015
40994cb
updating cibuild to use new nuget dependencies
jmarolf Dec 7, 2015
a46b6a5
Merge pull request #7307 from jmarolf/merge_master_into_future_12_7_2015
jmarolf Dec 8, 2015
5e99b04
Merge branch 'future' of github.com:dotnet/roslyn into master-future2…
TyOverby Dec 8, 2015
7990229
Merge remote-tracking branch 'upstream/master' into roslyn-bot-master…
jmarolf Dec 9, 2015
9c9f9a0
Merge pull request #7341 from roslyn-bot/master-future2015-12-08-23-1…
jmarolf Dec 9, 2015
8952b52
Merge remote-tracking branch 'upstream/master' into master-future2015…
jmarolf Dec 9, 2015
faf8e0f
Merge pull request #7378 from jmarolf/master-future2015-12-09
jmarolf Dec 10, 2015
fe577fb
Merge remote-tracking branch 'upstream/master' into master-future2015…
jmarolf Dec 10, 2015
584abf0
Merge pull request #7412 from jmarolf/master-future2015-12-10
jmarolf Dec 11, 2015
b153924
Merge pull request #7425 from roslyn-bot/master-future2015-12-11-16-0…
jmarolf Dec 11, 2015
c98f480
Merge pull request #7452 from roslyn-bot/master-future2015-12-12-16-0…
jmarolf Dec 12, 2015
6a554bc
Merge branch 'future' of https://github.com/dotnet/roslyn into master…
jmarolf Dec 16, 2015
c4d18ea
Merge pull request #7525 from roslyn-bot/master-future2015-12-16-16-0…
jmarolf Dec 17, 2015
e581254
Merge remote-tracking branch 'upstream/master' into master-to-future-…
jmarolf Dec 17, 2015
a373365
Merge pull request #7562 from roslyn-bot/master-future2015-12-17-16-0…
jmarolf Dec 17, 2015
36f050f
Merge remote-tracking branch 'dotnet/master' into future
tannergooding Dec 18, 2015
71cf866
Merge pull request #7598 from tannergooding/future
tannergooding Dec 18, 2015
3c65a56
Merge pull request #7579 from jmarolf/master-to-future-12-17-2015
jmarolf Dec 18, 2015
d7c2010
Merge branch 'future' of https://github.com/dotnet/roslyn into master…
jmarolf Dec 20, 2015
0134114
Merge pull request #7622 from roslyn-bot/master-future2015-12-19-16-0…
jmarolf Dec 20, 2015
efea189
Merge pull request #7635 from roslyn-bot/master-future2015-12-21-16-0…
jmarolf Dec 21, 2015
defffff
Merge pull request #7664 from roslyn-bot/master-future2015-12-22-16-0…
jmarolf Dec 23, 2015
e05cb78
Merge remote-tracking branch 'dotnet/master' into master-future2015-1…
brettfo Dec 23, 2015
3d729de
Merge pull request #7679 from roslyn-bot/master-future2015-12-23-16-0…
brettfo Dec 24, 2015
4b2b59d
Merge remote-tracking branch 'dotnet/master' into future
tannergooding Dec 28, 2015
0dd7054
Remove extraneous call to DkmWorkList.Execute...
KevinH-MS Dec 28, 2015
4d0a505
Merge pull request #2 from KevinH-MS/future
tannergooding Dec 31, 2015
fff195d
Merge remote-tracking branch 'dotnet/master' into future
tannergooding Dec 31, 2015
4f74f37
Merge pull request #7713 from tannergooding/future
tannergooding Dec 31, 2015
8b95439
Merge pull request #7754 from roslyn-bot/merge-master-into-future2016…
jmarolf Jan 4, 2016
9da3809
Merge remote-tracking branch 'upstream/master' into merge-master-into…
brettfo Jan 6, 2016
509ba90
Merge pull request #7800 from roslyn-bot/merge-master-into-future2016…
tannergooding Jan 6, 2016
cef9b9c
Merge remote-tracking branch 'dotnet/master' into merge-master-into-f…
brettfo Jan 8, 2016
9436e33
Merge pull request #7853 from roslyn-bot/merge-master-into-future2016…
brettfo Jan 9, 2016
68e0695
Merge remote-tracking branch 'upstream/master' into merge-master-into…
TyOverby Jan 12, 2016
9fdc7d9
Remove support for inferring the return type of a local function.
gafter Jan 13, 2016
b94e2cd
Merge pull request #7916 from gafter/fix7832
gafter Jan 14, 2016
8bcce9c
Merge pull request #7910 from vslsnap/merge-master-into-future2016011…
davkean Jan 14, 2016
97d3240
Merge remote-tracking branch 'upstream/master' into merge-master-into…
TyOverby Jan 14, 2016
5793142
Merge pull request #7949 from vslsnap/merge-master-into-future2016011…
TyOverby Jan 14, 2016
4821f6a
Merge pull request #7982 from vslsnap/merge-master-into-future2016011…
davkean Jan 15, 2016
e13e9ad
Ported the old implementation of ref locals and ref returns on top of…
VSadov Apr 22, 2015
efafcf6
Made the rest of the codebase build and existing tests to pass.
VSadov May 5, 2015
2293d38
Removed syntax for Ref Assignments and added compat API bridges
VSadov Nov 5, 2015
589382a
add error tests
VSadov Nov 13, 2015
0811845
updated error messages
VSadov Nov 17, 2015
b3c7913
add error tests for not returnable ref locals
VSadov Nov 19, 2015
16991b4
Made ref locals and returns conditional on a features flag
VSadov Nov 24, 2015
44435bd
Rebase onto recent bits and related fixes.
VSadov Jan 16, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SHELL = /bin/bash
OS_NAME = $(shell uname -s)
NUGET_PACKAGE_NAME = nuget.45
NUGET_PACKAGE_NAME = nuget.future.5
BUILD_CONFIGURATION = Debug
BOOTSTRAP_PATH = $(shell pwd)/Binaries/Bootstrap
BUILD_LOG_PATH =
Expand Down
331 changes: 328 additions & 3 deletions Roslyn.sln

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion build/Targets/GenerateInternalsVisibleTo.targets
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
<PropertyGroup Condition="'$(PublicKey)' != '' and '$(SignAssembly)' == 'True'">
<InternalsVisibleToSuffix>, PublicKey=$(PublicKey)</InternalsVisibleToSuffix>
<InternalsVisibleToTestSuffix>, PublicKey=$(RoslynInternalKey)</InternalsVisibleToTestSuffix>
<InternalsVisibleToMoqSuffix>, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7</InternalsVisibleToMoqSuffix>
</PropertyGroup>

<!-- Dependency on PrepareForBuild is necessary so that we don't accidentally get ordered before it.
Expand Down Expand Up @@ -67,7 +68,7 @@
<Output TaskParameter="Include" ItemName="InternalsVisibleToAttribute" />
</CreateItem>
<CreateItem Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute"
AdditionalMetadata="_Parameter1=%(InternalsVisibleToMoq.Identity), PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7"
AdditionalMetadata="_Parameter1=%(InternalsVisibleToMoq.Identity)$(InternalsVisibleToMoqSuffix)"
Condition="'@(InternalsVisibleToMoq)' != ''">
<Output TaskParameter="Include" ItemName="InternalsVisibleToAttribute" />
</CreateItem>
Expand Down
14 changes: 14 additions & 0 deletions build/Targets/VSL.Imports.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->

<!-- Turn off implict binary and project reference copying to prevent projects
from racing to copy the same files to the shared build directory -->
<ItemDefinitionGroup Condition="'$(CopyReferencesByDefault)' == 'false'">

<Reference>
<Private>false</Private>
</Reference>

<ProjectReference>
<Private>false</Private>
</ProjectReference>

</ItemDefinitionGroup>

<!-- This file is imported by all projects at the end of the project files -->
<!-- Update common properties -->
<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion build/Targets/VSL.Versions.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RoslynSemanticVersion Condition="'$(RoslynSemanticVersion)' == ''">1.2.0</RoslynSemanticVersion>
<RoslynSemanticVersion Condition="'$(RoslynSemanticVersion)' == ''">2.0.0</RoslynSemanticVersion>
<SystemReflectionMetadataAssemblyVersion Condition="'$(SystemReflectionMetadataAssemblyVersion)' == ''">1.2.0</SystemReflectionMetadataAssemblyVersion>
<SystemCollectionsImmutableAssemblyVersion Condition="'$(SystemCollectionsImmutableAssemblyVersion)' == ''">1.1.37</SystemCollectionsImmutableAssemblyVersion>
<NuGetCommandLineAssemblyVersion Condition="'$(NuGetCommandLineAssemblyVersion)' == ''">2.8.5</NuGetCommandLineAssemblyVersion>
Expand Down
6 changes: 3 additions & 3 deletions build/scripts/VBCSCompiler.exe.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
Expand Down
6 changes: 3 additions & 3 deletions build/scripts/csc.exe.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
Expand Down
6 changes: 3 additions & 3 deletions build/scripts/vbc.exe.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CodeAnalysis.VisualBasic" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="1.2.0.0" />
<bindingRedirect oldVersion="1.0.0.0-1.1.65535.65535" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
Expand Down
2 changes: 1 addition & 1 deletion cibuild.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
REM Parse Arguments.

set NugetZipUrlRoot=https://dotnetci.blob.core.windows.net/roslyn
set NugetZipUrl=%NuGetZipUrlRoot%/nuget.45.zip
set NugetZipUrl=%NuGetZipUrlRoot%/nuget.future.5.zip
set RoslynRoot=%~dp0
set BuildConfiguration=Debug
set BuildRestore=false
Expand Down
58 changes: 58 additions & 0 deletions docs/features/local-functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
Local Functions
===============

This feature is to support the definition of functions in block scope.

Local functions may use variables defined in the enclosing scope. The current implementation requires that every variable read inside a local function be definitely assigned, as if executing the local function at its point of definition. Also, the local function definition must have been "executed" at any use point.

After experimenting with that a bit (for example, it is not possible to define two mutually recursive local functions), we've since revised how we want the definite assignment to work. The revision (not yet implemented) is that all local variables read in a local function must be definitely assigned at each invocation of the local function. That's actually more subtle than it sounds, and there is a bunch of work remaining to make it work. Once it is done you'll be able to move your local functions to the end of its enclosing block.

The new definite assignment rules are incompatible with inferring the return type of a local function, so we'll likely be removing support for inferring the return type.

Unless you convert a local function to a delegate, capturing is done into frames that are value types. That means you don't get any GC pressure from using local functions with capturing.

We don't have a spec yet, but the feature is fairly straightforward.

--------------------

Below is a checklist of work on the feature
- [ ] Parser ambiguity research
- Some thought done, not complete
- Currently thought to be unambiguous past the parameter list (starting at `{` or `=>`), but that requires lots of lookahead.
- See LanguageParser.cs for comments on both ambiguity in standard parsing, and ambiguity in error recovery.
- [x] N-level nested local functions
- [x] Capture
- Works alongside lambdas and behaves very similarly in fallback cases
- Has zero-allocation closures (struct frames by ref) on functions never converted to a delegate and are not an iterator/async
- [x] Standard parameter features
- params
- ref/out
- named/optional
- [x] Visibility
- May revisit design (currently shadows, may do overloads)
- [x] Generics
- Nongeneric local functions in generic methods (same as lambdas).
- Generic local functions in nongeneric methods.
- Generic local functions in generic methods.
- Arbitrary nesting of generic local functions.
- Generic local functions with constraints.
- [x] Inferred return type
- [x] Iterators
- [x] Async
- [ ] API
- [ ] Editor
- [x] Basic features (variable highlight, rename, etc.)
- [ ] Advanced features (refactorings, analyzers)

Intentionally disabled features that might eventually be in the end result:
- Calling a local function with a dynamic argument (due to name mangling and potential conflicts with closures and possibly overloads/shadows)
- Referring to a local function in an expression tree (note that defining a local function itself in an expression tree is impossible)
- Definite assignment rules: Currently, all captured variables must be assigned at point of local function declaration. Might change to requiring assignment at point of local function use, not declaration (would allow mutually recursive local functions without nesting, etc.). Related to "Visibility" point in main list.

TODO:

- Update error messages.
- `LocalScopeBinder.ReportConflictWithLocal()` (twice)
- `LocalScopeBinder.EnsureSingleDefinition()`, handle case where 'name' exists in both `localsMap` and `localFunctionsMap`. Might be related to `LocalFunctionTests.NameConflictLocalVarLast()`
- Defining a local function with a dynamic parameter doesn't work at runtime.
- Return type of `var` is broken - see LocalFunctionSymbol.cs for an explanation. Fixing it will require a large rewrite of much of return type analysis, as the current system assumes that all return types are known (mostly) without examining the method body.
Loading