From 3d53078e2767c0f4196138aef041ca771848e20b Mon Sep 17 00:00:00 2001 From: Copilot Date: Thu, 6 Aug 2026 12:29:23 +0200 Subject: [PATCH] Remove always-on UseBindingValueDiscard language feature flag (#20162) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Compiler/Checking/Expressions/CheckExpressions.fs | 8 +++----- src/Compiler/FSComp.txt | 1 - src/Compiler/Facilities/LanguageFeatures.fs | 3 --- src/Compiler/Facilities/LanguageFeatures.fsi | 1 - src/Compiler/xlf/FSComp.txt.cs.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.de.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.es.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.fr.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.it.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.ja.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.ko.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.pl.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.ru.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.tr.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 5 ----- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 5 ----- 17 files changed, 3 insertions(+), 75 deletions(-) diff --git a/src/Compiler/Checking/Expressions/CheckExpressions.fs b/src/Compiler/Checking/Expressions/CheckExpressions.fs index e4b3e755841..0a09561332a 100644 --- a/src/Compiler/Checking/Expressions/CheckExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs @@ -12210,11 +12210,9 @@ and TcLetBinding (cenv: cenv) isUse env containerInfo declKind tpenv (synBinds, let tmp, _ = mkCompGenLocal m "patternInput" (generalizedTypars +-> tauTy) if isUse then - let isDiscarded = match checkedPat with TPat_wild _ -> true | _ -> false - if not isDiscarded then - errorR(Error(FSComp.SR.tcInvalidUseBinding(), m)) - else - checkLanguageFeatureAndRecover g.langVersion LanguageFeature.UseBindingValueDiscard checkedPat.Range + match checkedPat with + | TPat_wild _ -> () + | _ -> errorR(Error(FSComp.SR.tcInvalidUseBinding(), m)) elif isFixed then errorR(Error(FSComp.SR.tcInvalidUseBinding(), m)) diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index 26699fa4d9b..56bff9a75e7 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1248,7 +1248,6 @@ featureOverloadsForCustomOperations,"overloads for custom operations" featureExpandedMeasurables,"more types support units of measure" featureIndexerNotationWithoutDot,"expr[idx] notation for indexing and slicing" featureRefCellNotationInformationals,"informational messages related to reference cells" -featureDiscardUseValue,"discard pattern in use binding" featureNonVariablePatternsToRightOfAsPatterns,"non-variable patterns to the right of 'as' patterns" featureAttributesToRightOfModuleKeyword,"attributes to the right of the 'module' keyword" featureBetterExceptionPrinting,"automatic generation of 'Message' property for 'exception' declarations" diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index ad170712e4a..26772dfeea6 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -41,7 +41,6 @@ type LanguageFeature = | StructActivePattern | IndexerNotationWithoutDot | RefCellNotationInformationals - | UseBindingValueDiscard | UnionIsPropertiesVisible | NonVariablePatternsToRightOfAsPatterns | AttributesToRightOfModuleKeyword @@ -179,7 +178,6 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) LanguageFeature.StructActivePattern, languageVersion60 LanguageFeature.IndexerNotationWithoutDot, languageVersion60 LanguageFeature.RefCellNotationInformationals, languageVersion60 - LanguageFeature.UseBindingValueDiscard, languageVersion60 LanguageFeature.NonVariablePatternsToRightOfAsPatterns, languageVersion60 LanguageFeature.AttributesToRightOfModuleKeyword, languageVersion60 LanguageFeature.DelegateTypeNameResolutionFix, languageVersion60 @@ -389,7 +387,6 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) | LanguageFeature.StructActivePattern -> FSComp.SR.featureStructActivePattern () | LanguageFeature.IndexerNotationWithoutDot -> FSComp.SR.featureIndexerNotationWithoutDot () | LanguageFeature.RefCellNotationInformationals -> FSComp.SR.featureRefCellNotationInformationals () - | LanguageFeature.UseBindingValueDiscard -> FSComp.SR.featureDiscardUseValue () | LanguageFeature.UnionIsPropertiesVisible -> FSComp.SR.featureUnionIsPropertiesVisible () | LanguageFeature.NonVariablePatternsToRightOfAsPatterns -> FSComp.SR.featureNonVariablePatternsToRightOfAsPatterns () | LanguageFeature.AttributesToRightOfModuleKeyword -> FSComp.SR.featureAttributesToRightOfModuleKeyword () diff --git a/src/Compiler/Facilities/LanguageFeatures.fsi b/src/Compiler/Facilities/LanguageFeatures.fsi index 8c7ebd7e3c3..c34cdecd7b5 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fsi +++ b/src/Compiler/Facilities/LanguageFeatures.fsi @@ -31,7 +31,6 @@ type LanguageFeature = | StructActivePattern | IndexerNotationWithoutDot | RefCellNotationInformationals - | UseBindingValueDiscard | UnionIsPropertiesVisible | NonVariablePatternsToRightOfAsPatterns | AttributesToRightOfModuleKeyword diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 8cb70b4c49e..1e60a2ae58e 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - vzor discard ve vazbě použití - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 5686312be6b..649994a1ad5 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - Das Verwerfen des verwendeten Musters ist verbindlich. - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index a3b4cfce50b..39a0aea8534 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - descartar enlace de patrón en uso - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index bf46f5ee12b..f7f4e6603e9 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - annuler le modèle dans la liaison d’utilisation - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 6d705cdc2d1..80803e66d3c 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - rimuovi criterio nell'utilizzo dell'associazione - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 0b35b8e6dac..4cdface77f7 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - 使用バインドでパターンを破棄する - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index b00f54bfa76..dc6a82abc27 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - 사용 중인 패턴 바인딩 무시 - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index b6d4b78a2d8..235ae38cfb3 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - odrzuć wzorzec w powiązaniu użycia - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index ba46752a529..64b56d9b028 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - descartar o padrão em uso de associação - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 4a13225bc33..9264b290be3 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - шаблон отмены в привязке использования - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 0d880a3f23a..2a860c2d746 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - kullanım bağlamasında deseni at - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index ce2c173e893..83b0aed89d2 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - 放弃使用绑定模式 - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 09d5f37bea9..137cf8bfcff 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -372,11 +372,6 @@ construct delegates that point directly at the target method, avoiding an intermediate closure - - discard pattern in use binding - 捨棄使用繫結中的模式 - - Don't warn on uppercase identifiers in binding patterns Don't warn on uppercase identifiers in binding patterns