Skip to content

Commit 588f8d6

Browse files
authored
Merge pull request #17437 from dotnet/merges/main-to-release/dev17.12
Merge main to release/dev17.12
2 parents 172ffdd + 1c07568 commit 588f8d6

21 files changed

+48
-64
lines changed

src/Compiler/FSComp.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1615,7 +1615,7 @@ featureBooleanReturningAndReturnTypeDirectedPartialActivePattern,"Boolean-return
16151615
featureEnforceAttributeTargets,"Enforce AttributeTargets"
16161616
featureLowerInterpolatedStringToConcat,"Optimizes interpolated strings in certain cases, by lowering to concatenation"
16171617
featureLowerIntegralRangesToFastLoops,"Optimizes certain uses of the integral range (..) and range-step (.. ..) operators to fast while-loops."
1618-
featureLowerSimpleMappingsInComprehensionsToDirectCallsToMap,"Lowers [for x in xs -> f x] and [|for x in xs -> f x|] to calls to List.map and Array.map when xs is a list or an array, respectively."
1618+
featureLowerSimpleMappingsInComprehensionsToFastLoops,"Lowers [for x in xs -> f x] and [|for x in xs -> f x|] to fast loops when xs is a list or an array, respectively."
16191619
3354,tcNotAFunctionButIndexerNamedIndexingNotYetEnabled,"This value supports indexing, e.g. '%s.[index]'. The syntax '%s[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation."
16201620
3354,tcNotAFunctionButIndexerIndexingNotYetEnabled,"This expression supports indexing, e.g. 'expr.[index]'. The syntax 'expr[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation."
16211621
3355,tcNotAnIndexerNamedIndexingNotYetEnabled,"The value '%s' is not a function and does not support index notation."

src/Compiler/Facilities/LanguageFeatures.fs

+4-4
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ type LanguageFeature =
8989
| EnforceAttributeTargets
9090
| LowerInterpolatedStringToConcat
9191
| LowerIntegralRangesToFastLoops
92-
| LowerSimpleMappingsInComprehensionsToDirectCallsToMap
92+
| LowerSimpleMappingsInComprehensionsToFastLoops
9393
| ParsedHashDirectiveArgumentNonQuotes
9494
| EmptyBodiedComputationExpressions
9595

@@ -208,7 +208,7 @@ type LanguageVersion(versionText) =
208208
LanguageFeature.EnforceAttributeTargets, previewVersion
209209
LanguageFeature.LowerInterpolatedStringToConcat, previewVersion
210210
LanguageFeature.LowerIntegralRangesToFastLoops, previewVersion
211-
LanguageFeature.LowerSimpleMappingsInComprehensionsToDirectCallsToMap, previewVersion
211+
LanguageFeature.LowerSimpleMappingsInComprehensionsToFastLoops, previewVersion
212212
LanguageFeature.ParsedHashDirectiveArgumentNonQuotes, previewVersion
213213
LanguageFeature.EmptyBodiedComputationExpressions, previewVersion
214214
]
@@ -358,8 +358,8 @@ type LanguageVersion(versionText) =
358358
| LanguageFeature.EnforceAttributeTargets -> FSComp.SR.featureEnforceAttributeTargets ()
359359
| LanguageFeature.LowerInterpolatedStringToConcat -> FSComp.SR.featureLowerInterpolatedStringToConcat ()
360360
| LanguageFeature.LowerIntegralRangesToFastLoops -> FSComp.SR.featureLowerIntegralRangesToFastLoops ()
361-
| LanguageFeature.LowerSimpleMappingsInComprehensionsToDirectCallsToMap ->
362-
FSComp.SR.featureLowerSimpleMappingsInComprehensionsToDirectCallsToMap ()
361+
| LanguageFeature.LowerSimpleMappingsInComprehensionsToFastLoops ->
362+
FSComp.SR.featureLowerSimpleMappingsInComprehensionsToFastLoops ()
363363
| LanguageFeature.ParsedHashDirectiveArgumentNonQuotes -> FSComp.SR.featureParsedHashDirectiveArgumentNonString ()
364364
| LanguageFeature.EmptyBodiedComputationExpressions -> FSComp.SR.featureEmptyBodiedComputationExpressions ()
365365

src/Compiler/Facilities/LanguageFeatures.fsi

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ type LanguageFeature =
8080
| EnforceAttributeTargets
8181
| LowerInterpolatedStringToConcat
8282
| LowerIntegralRangesToFastLoops
83-
| LowerSimpleMappingsInComprehensionsToDirectCallsToMap
83+
| LowerSimpleMappingsInComprehensionsToFastLoops
8484
| ParsedHashDirectiveArgumentNonQuotes
8585
| EmptyBodiedComputationExpressions
8686

src/Compiler/Optimize/LowerComputedCollections.fs

+2-2
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ let LowerComputedListOrArrayExpr tcVal (g: TcGlobals) amap ilTyForTy overallExpr
640640
match overallSeqExpr with
641641
// [for … in xs -> …] (* When xs is a list. *)
642642
| SimpleMapping g (cont, (_, _, List g list, _, loopVal, body, ranges)) when
643-
g.langVersion.SupportsFeature LanguageFeature.LowerSimpleMappingsInComprehensionsToDirectCallsToMap
643+
g.langVersion.SupportsFeature LanguageFeature.LowerSimpleMappingsInComprehensionsToFastLoops
644644
->
645645
Some (cont (List.mkMap tcVal g amap m ranges list overallElemTy loopVal body))
646646

@@ -669,7 +669,7 @@ let LowerComputedListOrArrayExpr tcVal (g: TcGlobals) amap ilTyForTy overallExpr
669669
match overallSeqExpr with
670670
// [|for … in xs -> …|] (* When xs is an array. *)
671671
| SimpleMapping g (cont, (ty1, ty2, Array g array, _, loopVal, body, ranges)) when
672-
g.langVersion.SupportsFeature LanguageFeature.LowerSimpleMappingsInComprehensionsToDirectCallsToMap
672+
g.langVersion.SupportsFeature LanguageFeature.LowerSimpleMappingsInComprehensionsToFastLoops
673673
->
674674
Some (cont (Array.mkMap g m ranges array (ilTyForTy ty1) (ilTyForTy ty2) overallElemTy loopVal body))
675675

src/Compiler/TypedTree/TcGlobals.fs

-8
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,6 @@ type TcGlobals(
837837
let v_range_step_generic_op_info = makeIntrinsicValRef(fslib_MFOperatorIntrinsics_nleref, "RangeStepGeneric" , None , None , [vara;varb], ([[varaTy];[varbTy];[varaTy]], mkSeqTy varaTy))
838838

839839
let v_array_length_info = makeIntrinsicValRef(fslib_MFArrayModule_nleref, "length" , None , Some "Length" , [vara], ([[mkArrayType 1 varaTy]], v_int_ty))
840-
let v_array_map_info = makeIntrinsicValRef(fslib_MFArrayModule_nleref, "map" , None , Some "Map" , [vara; varb], ([[varaTy --> varbTy]; [mkArrayType 1 varaTy]], mkArrayType 1 varbTy))
841840
let v_array_get_info = makeIntrinsicValRef(fslib_MFIntrinsicFunctions_nleref, "GetArray" , None , None , [vara], ([[mkArrayType 1 varaTy]; [v_int_ty]], varaTy))
842841
let v_array2D_get_info = makeIntrinsicValRef(fslib_MFIntrinsicFunctions_nleref, "GetArray2D" , None , None , [vara], ([[mkArrayType 2 varaTy];[v_int_ty]; [v_int_ty]], varaTy))
843842
let v_array3D_get_info = makeIntrinsicValRef(fslib_MFIntrinsicFunctions_nleref, "GetArray3D" , None , None , [vara], ([[mkArrayType 3 varaTy];[v_int_ty]; [v_int_ty]; [v_int_ty]], varaTy))
@@ -847,8 +846,6 @@ type TcGlobals(
847846
let v_array3D_set_info = makeIntrinsicValRef(fslib_MFIntrinsicFunctions_nleref, "SetArray3D" , None , None , [vara], ([[mkArrayType 3 varaTy];[v_int_ty]; [v_int_ty]; [v_int_ty]; [varaTy]], v_unit_ty))
848847
let v_array4D_set_info = makeIntrinsicValRef(fslib_MFIntrinsicFunctions_nleref, "SetArray4D" , None , None , [vara], ([[mkArrayType 4 varaTy];[v_int_ty]; [v_int_ty]; [v_int_ty]; [v_int_ty]; [varaTy]], v_unit_ty))
849848

850-
let v_list_map_info = makeIntrinsicValRef(fslib_MFListModule_nleref, "map" , None , Some "Map" , [vara; varb], ([[varaTy --> varbTy]; [mkListTy varaTy]], mkListTy varbTy))
851-
852849
let v_option_toNullable_info = makeIntrinsicValRef(fslib_MFOptionModule_nleref, "toNullable" , None , Some "ToNullable" , [vara], ([[mkOptionTy varaTy]], mkNullableTy varaTy))
853850
let v_option_defaultValue_info = makeIntrinsicValRef(fslib_MFOptionModule_nleref, "defaultValue" , None , Some "DefaultValue" , [vara], ([[varaTy]; [mkOptionTy varaTy]], varaTy))
854851

@@ -1750,11 +1747,9 @@ type TcGlobals(
17501747
member val range_generic_op_vref = ValRefForIntrinsic v_range_generic_op_info
17511748
member val range_step_generic_op_vref = ValRefForIntrinsic v_range_step_generic_op_info
17521749
member val array_get_vref = ValRefForIntrinsic v_array_get_info
1753-
member val array_map_vref = ValRefForIntrinsic v_array_map_info
17541750
member val array2D_get_vref = ValRefForIntrinsic v_array2D_get_info
17551751
member val array3D_get_vref = ValRefForIntrinsic v_array3D_get_info
17561752
member val array4D_get_vref = ValRefForIntrinsic v_array4D_get_info
1757-
member val list_map_vref = ValRefForIntrinsic v_list_map_info
17581753
member val seq_singleton_vref = ValRefForIntrinsic v_seq_singleton_info
17591754
member val seq_collect_vref = ValRefForIntrinsic v_seq_collect_info
17601755
member val nativeptr_tobyref_vref = ValRefForIntrinsic v_nativeptr_tobyref_info
@@ -1815,7 +1810,6 @@ type TcGlobals(
18151810
member _.seq_to_array_info = v_seq_to_array_info
18161811

18171812
member _.array_length_info = v_array_length_info
1818-
member _.array_map_info = v_array_map_info
18191813
member _.array_get_info = v_array_get_info
18201814
member _.array2D_get_info = v_array2D_get_info
18211815
member _.array3D_get_info = v_array3D_get_info
@@ -1825,8 +1819,6 @@ type TcGlobals(
18251819
member _.array3D_set_info = v_array3D_set_info
18261820
member _.array4D_set_info = v_array4D_set_info
18271821

1828-
member _.list_map_info = v_list_map_info
1829-
18301822
member val option_toNullable_info = v_option_toNullable_info
18311823
member val option_defaultValue_info = v_option_defaultValue_info
18321824

src/Compiler/TypedTree/TypedTreeOps.fs

-4
Original file line numberDiff line numberDiff line change
@@ -7920,8 +7920,6 @@ let mkCallArrayLength (g: TcGlobals) m ty e1 = mkApps g (typedExprForIntrinsic g
79207920

79217921
let mkCallArrayGet (g: TcGlobals) m ty e1 idx1 = mkApps g (typedExprForIntrinsic g m g.array_get_info, [[ty]], [ e1 ; idx1 ], m)
79227922

7923-
let mkCallArrayMap (g: TcGlobals) m ty1 ty2 e1 e2 = mkApps g (typedExprForIntrinsic g m g.array_map_info, [[ty1; ty2]], [ e1 ; e2 ], m)
7924-
79257923
let mkCallArray2DGet (g: TcGlobals) m ty e1 idx1 idx2 = mkApps g (typedExprForIntrinsic g m g.array2D_get_info, [[ty]], [ e1 ; idx1; idx2 ], m)
79267924

79277925
let mkCallArray3DGet (g: TcGlobals) m ty e1 idx1 idx2 idx3 = mkApps g (typedExprForIntrinsic g m g.array3D_get_info, [[ty]], [ e1 ; idx1; idx2; idx3 ], m)
@@ -7936,8 +7934,6 @@ let mkCallArray3DSet (g: TcGlobals) m ty e1 idx1 idx2 idx3 v = mkApps g (typedEx
79367934

79377935
let mkCallArray4DSet (g: TcGlobals) m ty e1 idx1 idx2 idx3 idx4 v = mkApps g (typedExprForIntrinsic g m g.array4D_set_info, [[ty]], [ e1 ; idx1; idx2; idx3; idx4; v ], m)
79387936

7939-
let mkCallListMap (g: TcGlobals) m ty1 ty2 e1 e2 = mkApps g (typedExprForIntrinsic g m g.list_map_info, [[ty1; ty2]], [ e1 ; e2 ], m)
7940-
79417937
let mkCallHash (g: TcGlobals) m ty e1 = mkApps g (typedExprForIntrinsic g m g.hash_info, [[ty]], [ e1 ], m)
79427938

79437939
let mkCallBox (g: TcGlobals) m ty e1 = mkApps g (typedExprForIntrinsic g m g.box_info, [[ty]], [ e1 ], m)

src/Compiler/TypedTree/TypedTreeOps.fsi

-4
Original file line numberDiff line numberDiff line change
@@ -2059,8 +2059,6 @@ val mkCallArrayLength: TcGlobals -> range -> TType -> Expr -> Expr
20592059

20602060
val mkCallArrayGet: TcGlobals -> range -> TType -> Expr -> Expr -> Expr
20612061

2062-
val mkCallArrayMap: g: TcGlobals -> m: range -> ty1: TType -> ty2: TType -> e1: Expr -> e2: Expr -> Expr
2063-
20642062
val mkCallArray2DGet: TcGlobals -> range -> TType -> Expr -> Expr -> Expr -> Expr
20652063

20662064
val mkCallArray3DGet: TcGlobals -> range -> TType -> Expr -> Expr -> Expr -> Expr -> Expr
@@ -2075,8 +2073,6 @@ val mkCallArray3DSet: TcGlobals -> range -> TType -> Expr -> Expr -> Expr -> Exp
20752073

20762074
val mkCallArray4DSet: TcGlobals -> range -> TType -> Expr -> Expr -> Expr -> Expr -> Expr -> Expr -> Expr
20772075

2078-
val mkCallListMap: g: TcGlobals -> m: range -> ty1: TType -> ty2: TType -> e1: Expr -> e2: Expr -> Expr
2079-
20802076
val mkCallHash: TcGlobals -> range -> TType -> Expr -> Expr
20812077

20822078
val mkCallBox: TcGlobals -> range -> TType -> Expr -> Expr

src/Compiler/xlf/FSComp.txt.cs.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.de.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.es.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.fr.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.it.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.ja.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Compiler/xlf/FSComp.txt.ko.xlf

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)