Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge main and preserve all obsolete feature removals
Retain sibling removals alongside the qualified-access flag removal, remove restored resource accessors and keys, and regenerate compiler XLF files with UpdateXlf.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • Loading branch information
Copilot and Copilot committed Oct 8, 2026
commit 5a414d9932d1ca27a0a32aa8dd0447e1524efb91
7 changes: 0 additions & 7 deletions src/Compiler/FSComp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1532,7 +1532,6 @@ csTypeHasNullAsTrueValue,"The type '%s' uses 'null' as a representation value bu
csTypeHasNullAsExtraValue,"The type '%s' supports 'null' but a non-null type is expected"
3300,chkInvalidFunctionParameterType,"The parameter '%s' has an invalid type '%s'. This is not permitted by the rules of Common IL."
3301,chkInvalidFunctionReturnType,"The function or method has an invalid return type '%s'. This is not permitted by the rules of Common IL."
3302,packageManagementRequiresVFive,"The 'package management' feature requires language version 5.0 or above"
3303,fromEndSlicingRequiresVFive,"The 'from the end slicing' feature requires language version 'preview'."
3304,poundiNotSupportedByRegisteredDependencyManagers,"#i is not supported by the registered PackageManagers"
3343,tcRequireMergeSourcesOrBindN,"The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '%s' method or appropriate 'MergeSources' and 'Bind' methods"
Expand All @@ -1554,20 +1553,16 @@ optsAlwaysInline,"Always inline 'inline' functions"
nativeResourceFormatError,"Stream does not begin with a null resource and is not in '.RES' format."
nativeResourceHeaderMalformed,"Resource header beginning at offset %s is malformed."
formatDashItem," - %s"
featurePackageManagement,"package management"
featureFromEndSlicing,"from-end slicing"
featureNullnessChecking,"nullness checking"
featureResumableStateMachines,"resumable state machines"
featureRuntimeAsync,"runtime async"
featureStringInterpolation,"string interpolation"
featureWitnessPassing,"witness passing for trait constraints in F# quotations"
featureReallyLongList,"list literals of any size"
featureSelfTypeConstraints,"self type constraints"
featureMatchNotAllowedForUnionCaseWithNoData,"Pattern match discard is not allowed for union case that takes no data."
featureCSharpExtensionAttributeNotRequired,"Allow implicit Extension attribute on declaring types, modules"
featureErrorForNonVirtualMembersOverrides,"Raises errors for non-virtual members overrides"
featureWarningWhenCopyAndUpdateRecordChangesAllFields,"Raises warnings when an copy-and-update record expression changes all fields of a record."
featureNonInlineLiteralsAsPrintfFormat,"String values marked as literals and IL constants as printf format"
featureWarningWhenMultipleRecdTypeChoice,"Raises warnings when multiple record type matches were found during name resolution because of overlapping field names."
featureConstraintIntersectionOnFlexibleTypes,"Constraint intersection on flexible types"
featureChkNotTailRecursive,"Raises warnings if a member or function has the 'TailCall' attribute, but is not being used in a tail recursive way."
Expand Down Expand Up @@ -1638,8 +1633,6 @@ forFormatInvalidForInterpolated4,"Interpolated strings used as type IFormattable
3501,tcResumableCodeArgMustHaveRightName,"Invalid resumable code. Resumable code parameter must have name beginning with '__expand'"
3501,tcResumableCodeArgMustHaveRightKind,"Invalid resumable code. A resumable code parameter must be of delegate or function type"
3501,tcResumableCodeContainsLetRec,"Invalid resumable code. A 'let rec' occurred in the resumable code specification"
3510,tcResumableCodeNotSupported,"Using resumable code or resumable state machines requires /langversion:preview"
3510,tcNoEagerConstraintApplicationAttribute,"Using methods with 'NoEagerConstraintApplicationAttribute' requires /langversion:6.0 or later"
3511,reprStateMachineNotCompilable,"This state machine is not statically compilable. %s. An alternative dynamic implementation will be used, which may be slower. Consider adjusting your code to ensure this state machine is statically compilable, or else suppress this warning."
3512,reprStateMachineNotCompilableNoAlternative,"This state machine is not statically compilable and no alternative is available. %s. Use an 'if __useResumableCode then <state-machine> else <alternative>' to give an alternative."
3513,tcResumableCodeInvocation,"Resumable code invocation. Suppress this warning if you are defining new low-level resumable code in terms of existing resumable code."
Expand Down
12 changes: 0 additions & 12 deletions src/Compiler/Facilities/LanguageFeatures.fs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@ module internal FSharp.Compiler.Features

[<RequireQualifiedAccess>]
type LanguageFeature =
| PackageManagement
| FromEndSlicing
| ResumableStateMachines
| RuntimeAsync
| WitnessPassing
| StringInterpolation
Expand All @@ -27,12 +25,10 @@ type LanguageFeature =
| UnionIsPropertiesVisible
| AttributesToRightOfModuleKeyword
| ReallyLongLists
| SelfTypeConstraints
| MatchNotAllowedForUnionCaseWithNoData
| CSharpExtensionAttributeNotRequired
| ErrorForNonVirtualMembersOverrides
| WarningWhenCopyAndUpdateRecordChangesAllFields
| NonInlineLiteralsAsPrintfFormat
| WarningWhenMultipleRecdTypeChoice
| ConstraintIntersectionOnFlexibleTypes
| WarningWhenTailRecAttributeButNonTailRecUsage
Expand Down Expand Up @@ -122,25 +118,21 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array)
dict
[
// F# 5.0
LanguageFeature.PackageManagement, languageVersion50
LanguageFeature.WitnessPassing, languageVersion50
LanguageFeature.StringInterpolation, languageVersion50

// F# 6.0
LanguageFeature.ExpandedMeasurables, languageVersion60
LanguageFeature.ResumableStateMachines, languageVersion60
LanguageFeature.AttributesToRightOfModuleKeyword, languageVersion60

// F# 7.0
LanguageFeature.ReallyLongLists, languageVersion70
LanguageFeature.SelfTypeConstraints, languageVersion70

// F# 8.0
LanguageFeature.MatchNotAllowedForUnionCaseWithNoData, languageVersion80
LanguageFeature.CSharpExtensionAttributeNotRequired, languageVersion80
LanguageFeature.ErrorForNonVirtualMembersOverrides, languageVersion80
LanguageFeature.WarningWhenCopyAndUpdateRecordChangesAllFields, languageVersion80
LanguageFeature.NonInlineLiteralsAsPrintfFormat, languageVersion80
LanguageFeature.WarningWhenMultipleRecdTypeChoice, languageVersion80
LanguageFeature.WarningWhenTailRecAttributeButNonTailRecUsage, languageVersion80
LanguageFeature.ConstraintIntersectionOnFlexibleTypes, languageVersion80
Expand Down Expand Up @@ -294,24 +286,20 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array)
/// Get a string name for the given feature.
static member GetFeatureString feature =
match feature with
| LanguageFeature.PackageManagement -> FSComp.SR.featurePackageManagement ()
| LanguageFeature.FromEndSlicing -> FSComp.SR.featureFromEndSlicing ()
| LanguageFeature.NullnessChecking -> FSComp.SR.featureNullnessChecking ()
| LanguageFeature.ResumableStateMachines -> FSComp.SR.featureResumableStateMachines ()
| LanguageFeature.RuntimeAsync -> FSComp.SR.featureRuntimeAsync ()
| LanguageFeature.WitnessPassing -> FSComp.SR.featureWitnessPassing ()
| LanguageFeature.StringInterpolation -> FSComp.SR.featureStringInterpolation ()
| LanguageFeature.ExpandedMeasurables -> FSComp.SR.featureExpandedMeasurables ()
| LanguageFeature.UnionIsPropertiesVisible -> FSComp.SR.featureUnionIsPropertiesVisible ()
| LanguageFeature.AttributesToRightOfModuleKeyword -> FSComp.SR.featureAttributesToRightOfModuleKeyword ()
| LanguageFeature.ReallyLongLists -> FSComp.SR.featureReallyLongList ()
| LanguageFeature.SelfTypeConstraints -> FSComp.SR.featureSelfTypeConstraints ()
| LanguageFeature.MatchNotAllowedForUnionCaseWithNoData -> FSComp.SR.featureMatchNotAllowedForUnionCaseWithNoData ()
| LanguageFeature.CSharpExtensionAttributeNotRequired -> FSComp.SR.featureCSharpExtensionAttributeNotRequired ()
| LanguageFeature.ErrorForNonVirtualMembersOverrides -> FSComp.SR.featureErrorForNonVirtualMembersOverrides ()
| LanguageFeature.WarningWhenCopyAndUpdateRecordChangesAllFields ->
FSComp.SR.featureWarningWhenCopyAndUpdateRecordChangesAllFields ()
| LanguageFeature.NonInlineLiteralsAsPrintfFormat -> FSComp.SR.featureNonInlineLiteralsAsPrintfFormat ()
| LanguageFeature.WarningWhenMultipleRecdTypeChoice -> FSComp.SR.featureWarningWhenMultipleRecdTypeChoice ()
| LanguageFeature.ConstraintIntersectionOnFlexibleTypes -> FSComp.SR.featureConstraintIntersectionOnFlexibleTypes ()
| LanguageFeature.WarningWhenTailRecAttributeButNonTailRecUsage -> FSComp.SR.featureChkNotTailRecursive ()
Expand Down
4 changes: 0 additions & 4 deletions src/Compiler/Facilities/LanguageFeatures.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ module internal FSharp.Compiler.Features
/// LanguageFeature enumeration
[<RequireQualifiedAccess>]
type LanguageFeature =
| PackageManagement
| FromEndSlicing
| ResumableStateMachines
| RuntimeAsync
| WitnessPassing
| StringInterpolation
Expand All @@ -17,12 +15,10 @@ type LanguageFeature =
| UnionIsPropertiesVisible
| AttributesToRightOfModuleKeyword
| ReallyLongLists
| SelfTypeConstraints
| MatchNotAllowedForUnionCaseWithNoData
| CSharpExtensionAttributeNotRequired
| ErrorForNonVirtualMembersOverrides
| WarningWhenCopyAndUpdateRecordChangesAllFields
| NonInlineLiteralsAsPrintfFormat
| WarningWhenMultipleRecdTypeChoice
| ConstraintIntersectionOnFlexibleTypes
| WarningWhenTailRecAttributeButNonTailRecUsage
Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.