-
Notifications
You must be signed in to change notification settings - Fork 789
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
Enable 4.7 by default #7204
Merged
KevinRansom
merged 2 commits into
dotnet:release/fsharp47
from
KevinRansom:enable47FeaturesByDefault
Jul 12, 2019
Merged
Enable 4.7 by default #7204
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,4 +3,5 @@ preview | |
default | ||
latest | ||
latestmajor | ||
4.6 (Default) | ||
4.6 | ||
4.7 (Default) |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,4 +3,5 @@ preview | |
default | ||
latest | ||
latestmajor | ||
4.6 (Default) | ||
4.6 | ||
4.7 (Default) |
22 changes: 11 additions & 11 deletions
22
tests/fsharpqa/Source/Conformance/Expressions/DataExpressions/NameOf/env.lst
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
SOURCE=E_NameOfIntConst.fs SCFLAGS="--langversion:preview" # E_NameOfIntConst.fs | ||
SOURCE=E_NameOfStringConst.fs SCFLAGS="--langversion:preview" # E_NameOfStringConst.fs | ||
SOURCE=E_NameOfAppliedFunction.fs SCFLAGS="--langversion:preview" # E_NameOfAppliedFunction.fs | ||
SOURCE=E_NameOfIntegerAppliedFunction.fs SCFLAGS="--langversion:preview" # E_NameOfIntegerAppliedFunction.fs | ||
SOURCE=E_NameOfPartiallyAppliedFunction.fs SCFLAGS="--langversion:preview" # E_NameOfPartiallyAppliedFunction.fs | ||
SOURCE=E_NameOfDictLookup.fs SCFLAGS="--langversion:preview" # E_NameOfDictLookup.fs | ||
SOURCE=E_NameOfAdditionExpr.fs SCFLAGS="--langversion:preview" # E_NameOfAdditionExpr.fs | ||
SOURCE=E_NameOfParameterAppliedFunction.fs SCFLAGS="--langversion:preview" # E_NameOfParameterAppliedFunction.fs | ||
SOURCE=E_NameOfAsAFunction.fs SCFLAGS="--langversion:preview" # E_NameOfAsAFunction.fs | ||
SOURCE=E_NameOfWithPipe.fs SCFLAGS="--langversion:preview" # E_NameOfWithPipe.fs | ||
SOURCE=E_NameOfUnresolvableName.fs SCFLAGS="--langversion:preview" # E_NameOfUnresolvableName.fs | ||
SOURCE=E_NameOfIntConst.fs # E_NameOfIntConst.fs | ||
SOURCE=E_NameOfStringConst.fs # E_NameOfStringConst.fs | ||
SOURCE=E_NameOfAppliedFunction.fs # E_NameOfAppliedFunction.fs | ||
SOURCE=E_NameOfIntegerAppliedFunction.fs # E_NameOfIntegerAppliedFunction.fs | ||
SOURCE=E_NameOfPartiallyAppliedFunction.fs # E_NameOfPartiallyAppliedFunction.fs | ||
SOURCE=E_NameOfDictLookup.fs # E_NameOfDictLookup.fs | ||
SOURCE=E_NameOfAdditionExpr.fs # E_NameOfAdditionExpr.fs | ||
SOURCE=E_NameOfParameterAppliedFunction.fs # E_NameOfParameterAppliedFunction.fs | ||
SOURCE=E_NameOfAsAFunction.fs # E_NameOfAsAFunction.fs | ||
SOURCE=E_NameOfWithPipe.fs # E_NameOfWithPipe.fs | ||
SOURCE=E_NameOfUnresolvableName.fs # E_NameOfUnresolvableName.fs |
6 changes: 3 additions & 3 deletions
6
tests/fsharpqa/Source/Conformance/Expressions/DataExpressions/SequenceExpressions/env.lst
This file contains 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
This file contains 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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't change these numbers in future.
And I still believe it'd be better to have separate enums for language versions and features.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@auduchinok.
They aren't public and shouldn't be relied on. In fact, I wouldn't mind deleting the individual feature ID's to remove the possibility that we try to add a --enablefeature:WildCardInForLoop option.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's probably reasonable to think they may become public in FCS at some point when tooling wants to see which features are available.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@auduchinok,
The smallest subdivision of the language is language version, from it one can infer the set of features available. If we choose to add or I suppose remove features, then we will release a new language version, similarly to how we release new nuget packages and assembly versions for FSharp.Core.
It is not our intention to make the information in these structures public. I can see a good argument for removing
from the LanguageFeature enumeration, given that it has so far not proven to be necessary to do a SupportsFeature.LanguageVersion4.7 call.
Anyway, my 2 cents, and probably not even worth that amount of coin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@KevinRansom Thanks for your reply. I don't, however, realise how it should be inferred by external tools using FCS given the whole module is currently internal (unless the whole logic is reimplemented in each tool). There may be situations where tooling behaviour can also change depending on whether some feature is supported in particular language version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@auduchinok Which situations? The way it works in Roslyn, which is the model we're adopting, is that tools assume
latest
. But because diagnostics will kick in if something doesn't actually compile, the only weird thing is displaying information when you're in an invalid state.Here's an example in C# 7.3 but using nullable:
I could believe two opposing arguments:
string?
, since it's not allowed in the first place.string?
, since it is what the programmer wroteSince this can be resolved either by turning
string?
tostring
or setting LangVersion ot 8.0 (or preview), it's unclear to me which is the correct behavior. But it's certainly easier from a tooling standpoint to not flow LangVersion into every tooling feature.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cartermp I don't have a particular example in mind but I can definitely imagine situations where an IDE could, for instance, produce different generated code or do code formatting differently depending on the language version in future.