diff --git a/lib/fcs/FSharp.Compiler.Service.deps.json b/lib/fcs/FSharp.Compiler.Service.deps.json
index e2dc824d5e..49a7841fb4 100644
--- a/lib/fcs/FSharp.Compiler.Service.deps.json
+++ b/lib/fcs/FSharp.Compiler.Service.deps.json
@@ -7,10 +7,10 @@
"targets": {
".NETStandard,Version=v2.0": {},
".NETStandard,Version=v2.0/": {
- "FSharp.Compiler.Service/43.8.100-dev": {
+ "FSharp.Compiler.Service/43.8.200-dev": {
"dependencies": {
- "FSharp.Core": "8.0.100-dev",
- "FSharp.DependencyManager.Nuget": "8.0.100-dev",
+ "FSharp.Core": "8.0.200-dev",
+ "FSharp.DependencyManager.Nuget": "8.0.200-dev",
"Microsoft.DotNet.XliffTasks": "1.0.0-beta.23426.1",
"NETStandard.Library": "2.0.3",
"System.Buffers": "4.5.1",
@@ -164,7 +164,7 @@
}
}
},
- "FSharp.Core/8.0.100-dev": {
+ "FSharp.Core/8.0.200-dev": {
"runtime": {
"FSharp.Core.dll": {}
},
@@ -210,9 +210,9 @@
}
}
},
- "FSharp.DependencyManager.Nuget/8.0.100-dev": {
+ "FSharp.DependencyManager.Nuget/8.0.200-dev": {
"dependencies": {
- "FSharp.Core": "8.0.100-dev",
+ "FSharp.Core": "8.0.200-dev",
"System.Reflection.Emit": "4.7.0",
"System.Reflection.Metadata": "6.0.1",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
@@ -265,7 +265,7 @@
}
},
"libraries": {
- "FSharp.Compiler.Service/43.8.100-dev": {
+ "FSharp.Compiler.Service/43.8.200-dev": {
"type": "project",
"serviceable": false,
"sha512": ""
@@ -354,12 +354,12 @@
"path": "system.runtime.compilerservices.unsafe/6.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
},
- "FSharp.Core/8.0.100-dev": {
+ "FSharp.Core/8.0.200-dev": {
"type": "project",
"serviceable": false,
"sha512": ""
},
- "FSharp.DependencyManager.Nuget/8.0.100-dev": {
+ "FSharp.DependencyManager.Nuget/8.0.200-dev": {
"type": "project",
"serviceable": false,
"sha512": ""
diff --git a/lib/fcs/FSharp.Compiler.Service.dll b/lib/fcs/FSharp.Compiler.Service.dll
index 30bc2de9fd..b761c2894d 100644
Binary files a/lib/fcs/FSharp.Compiler.Service.dll and b/lib/fcs/FSharp.Compiler.Service.dll differ
diff --git a/lib/fcs/FSharp.Compiler.Service.xml b/lib/fcs/FSharp.Compiler.Service.xml
index cb18fa91a5..36daa418be 100644
--- a/lib/fcs/FSharp.Compiler.Service.xml
+++ b/lib/fcs/FSharp.Compiler.Service.xml
@@ -11,43 +11,43 @@
This XML comment is invalid: unresolved cross-reference '%s'
- (Originally from FSComp.txt:1642)
+ (Originally from FSComp.txt:1646)
This XML comment is invalid: missing 'name' attribute for parameter or parameter reference
- (Originally from FSComp.txt:1638)
+ (Originally from FSComp.txt:1642)
This XML comment is incomplete: no documentation for parameter '%s'
- (Originally from FSComp.txt:1643)
+ (Originally from FSComp.txt:1647)
This XML comment is invalid: missing 'cref' attribute for cross-reference
- (Originally from FSComp.txt:1639)
+ (Originally from FSComp.txt:1643)
This XML comment is invalid: unknown parameter '%s'
- (Originally from FSComp.txt:1640)
+ (Originally from FSComp.txt:1644)
This XML comment is invalid: multiple documentation entries for parameter '%s'
- (Originally from FSComp.txt:1641)
+ (Originally from FSComp.txt:1645)
This XML comment is invalid: '%s'
- (Originally from FSComp.txt:1637)
+ (Originally from FSComp.txt:1641)
@@ -74,6 +74,12 @@
(Originally from FSComp.txt:42)
+
+
+ Parentheses can be removed.
+ (Originally from FSComp.txt:1732)
+
+
The union cases or fields of the type '%s' are not accessible from this code location
@@ -269,7 +275,7 @@
A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'.
- (Originally from FSComp.txt:1703)
+ (Originally from FSComp.txt:1707)
@@ -347,13 +353,13 @@
You cannot implement the interface '%s' with the two instantiations '%s' and '%s' because they may unify.
- (Originally from FSComp.txt:1596)
+ (Originally from FSComp.txt:1600)
'%s' cannot implement the interface '%s' with the two instantiations '%s' and '%s' because they may unify.
- (Originally from FSComp.txt:1595)
+ (Originally from FSComp.txt:1599)
@@ -593,13 +599,13 @@
Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'.
- (Originally from FSComp.txt:1685)
+ (Originally from FSComp.txt:1689)
'%s' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'.
- (Originally from FSComp.txt:1686)
+ (Originally from FSComp.txt:1690)
@@ -749,7 +755,7 @@
Unexpected function type in union case field definition. If you intend the field to be a function, consider wrapping the function signature with parens, e.g. | Case of a -> b into | Case of (a -> b).
- (Originally from FSComp.txt:1726)
+ (Originally from FSComp.txt:1729)
@@ -791,7 +797,7 @@
Invalid interpolated string. %s
- (Originally from FSComp.txt:1622)
+ (Originally from FSComp.txt:1626)
@@ -1055,31 +1061,31 @@
A trait may not specify optional, in, out, ParamArray, CallerInfo or Quote arguments
- (Originally from FSComp.txt:1682)
+ (Originally from FSComp.txt:1686)
Trait '%s' is static
- (Originally from FSComp.txt:1680)
+ (Originally from FSComp.txt:1684)
Trait '%s' is not static
- (Originally from FSComp.txt:1681)
+ (Originally from FSComp.txt:1685)
Invocation of a static constraint should use \"'T.Ident\" and not \"^T.Ident\", even for statically resolved type parameters.
- (Originally from FSComp.txt:1684)
+ (Originally from FSComp.txt:1688)
The trait '%s' invoked by this call has multiple support types. This invocation syntax is not permitted for such traits. See https://aka.ms/fsharp-srtp for guidance.
- (Originally from FSComp.txt:1687)
+ (Originally from FSComp.txt:1691)
@@ -1127,13 +1133,13 @@
SynType.Or is not permitted in this declaration
- (Originally from FSComp.txt:1692)
+ (Originally from FSComp.txt:1696)
This expression implicitly converts type '%s' to type '%s'. See https://aka.ms/fsharp-implicit-convs.
- (Originally from FSComp.txt:1635)
+ (Originally from FSComp.txt:1639)
@@ -1196,6 +1202,12 @@
(Originally from FSComp.txt:514)
+
+
+ If a multicase union type is a struct, then all fields with the same name must be of the same type. This rule applies also to the generated 'Item' name in case of unnamed fields.
+ (Originally from FSComp.txt:1734)
+
+
If a multicase union type is a struct, then all union cases must have unique names. For example: 'type A = B of b: int | C of c: int'.
@@ -1228,7 +1240,7 @@
- For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'.
+ For F#7 and lower, static 'let','do' and 'member val' definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version '8' or higher.
(Originally from FSComp.txt:753)
@@ -1253,7 +1265,7 @@
Static bindings cannot be added to extrinsic augmentations. Consider using a 'static member' instead.
- (Originally from FSComp.txt:1720)
+ (Originally from FSComp.txt:1723)
@@ -1301,37 +1313,37 @@
Using resumable code or resumable state machines requires /langversion:preview
- (Originally from FSComp.txt:1656)
+ (Originally from FSComp.txt:1660)
Resumable code invocation. Suppress this warning if you are defining new low-level resumable code in terms of existing resumable code.
- (Originally from FSComp.txt:1660)
+ (Originally from FSComp.txt:1664)
Invalid resumable code. Any method of function accepting or returning resumable code must be marked 'inline'
- (Originally from FSComp.txt:1652)
+ (Originally from FSComp.txt:1656)
Invalid resumable code. A 'let rec' occured in the resumable code specification
- (Originally from FSComp.txt:1655)
+ (Originally from FSComp.txt:1659)
Invalid resumable code. Resumable code parameter must have name beginning with '__expand'
- (Originally from FSComp.txt:1653)
+ (Originally from FSComp.txt:1657)
Invalid resumable code. A resumable code parameter must be of delegate or function type
- (Originally from FSComp.txt:1654)
+ (Originally from FSComp.txt:1658)
@@ -1445,13 +1457,13 @@
The syntax '(expr1)[expr2]' is now reserved for indexing and is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction (expr1) [expr2]'.
- (Originally from FSComp.txt:1604)
+ (Originally from FSComp.txt:1608)
The syntax '(expr1)[expr2]' is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If you intend indexing or slicing then you must use '(expr1).[expr2]' in argument position. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction (expr1) [expr2]'.
- (Originally from FSComp.txt:1607)
+ (Originally from FSComp.txt:1611)
@@ -1481,7 +1493,7 @@
This override takes a tuple instead of multiple arguments. Try to add an additional layer of parentheses at the method definition (e.g. 'member _.Foo((x, y))'), or remove parentheses at the abstract method declaration (e.g. 'abstract member Foo: 'a * 'b -> 'c').
- (Originally from FSComp.txt:1722)
+ (Originally from FSComp.txt:1725)
@@ -1499,13 +1511,13 @@
The syntax 'expr1[expr2]' is now reserved for indexing and is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction expr1 [expr2]'.
- (Originally from FSComp.txt:1606)
+ (Originally from FSComp.txt:1610)
The syntax 'expr1[expr2]' is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If you intend indexing or slicing then you must use 'expr1.[expr2]' in argument position. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction expr1 [expr2]'.
- (Originally from FSComp.txt:1609)
+ (Originally from FSComp.txt:1613)
@@ -1673,13 +1685,13 @@
The value '%s' is not a function and does not support index notation.
- (Originally from FSComp.txt:1593)
+ (Originally from FSComp.txt:1597)
This expression is not a function and does not support index notation.
- (Originally from FSComp.txt:1594)
+ (Originally from FSComp.txt:1598)
@@ -1691,13 +1703,13 @@
This value supports indexing, e.g. '%s.[index]'. The syntax '%s[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation.
- (Originally from FSComp.txt:1591)
+ (Originally from FSComp.txt:1595)
This expression supports indexing, e.g. 'expr.[index]'. The syntax 'expr[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation.
- (Originally from FSComp.txt:1592)
+ (Originally from FSComp.txt:1596)
@@ -1736,6 +1748,18 @@
(Originally from FSComp.txt:1312)
+
+
+ No static abstract property was found that corresponds to this override
+ (Originally from FSComp.txt:1737)
+
+
+
+
+ No static abstract member was found that corresponds to this override
+ (Originally from FSComp.txt:1736)
+
+
No abstract property was found that corresponds to this override
@@ -1775,7 +1799,7 @@
Using methods with 'NoEagerConstraintApplicationAttribute' requires /langversion:6.0 or later
- (Originally from FSComp.txt:1657)
+ (Originally from FSComp.txt:1661)
@@ -1913,7 +1937,7 @@
Multiple type matches were found:\n%s\nThe type '%s' was used. Due to the overlapping field names\n%s\nconsider using type annotations or change the order of open statements.
- (Originally from FSComp.txt:1712)
+ (Originally from FSComp.txt:1716)
@@ -1943,7 +1967,7 @@
The following required properties have to be initalized:%s
- (Originally from FSComp.txt:1688)
+ (Originally from FSComp.txt:1692)
@@ -2057,13 +2081,13 @@
Cannot assign '%s' to a value marked literal
- (Originally from FSComp.txt:1598)
+ (Originally from FSComp.txt:1602)
Cannot assign a value to another value marked literal
- (Originally from FSComp.txt:1599)
+ (Originally from FSComp.txt:1603)
@@ -2099,19 +2123,19 @@
A [<Literal>] declaration cannot use an active pattern for its identifier
- (Originally from FSComp.txt:1649)
+ (Originally from FSComp.txt:1653)
The syntax '[expr1][expr2]' is now reserved for indexing and is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction [expr1] [expr2]'.
- (Originally from FSComp.txt:1605)
+ (Originally from FSComp.txt:1609)
The syntax '[expr1][expr2]' is ambiguous when used as an argument. See https://aka.ms/fsharp-index-notation. If you intend indexing or slicing then you must use '(expr1).[expr2]' in argument position. If calling a function with multiple curried arguments, add a space between them, e.g. 'someFunction [expr1] [expr2]'.
- (Originally from FSComp.txt:1608)
+ (Originally from FSComp.txt:1612)
@@ -2159,7 +2183,7 @@
Invalid use of reverse index in list expression.
- (Originally from FSComp.txt:1600)
+ (Originally from FSComp.txt:1604)
@@ -2237,7 +2261,7 @@
The use of '[<Struct>]' on values, functions and methods is only allowed on partial active pattern definitions
- (Originally from FSComp.txt:1633)
+ (Originally from FSComp.txt:1637)
@@ -2255,13 +2279,13 @@
Invalid constraint. Valid constraint forms include \"'T :> ISomeInterface\" for interface constraints and \"SomeConstrainingType<'T>\" for self-constraints. See https://aka.ms/fsharp-type-constraints.
- (Originally from FSComp.txt:1683)
+ (Originally from FSComp.txt:1687)
The construct '%s' may only be used in valid resumable code.
- (Originally from FSComp.txt:1651)
+ (Originally from FSComp.txt:1655)
@@ -2393,7 +2417,7 @@
Invalid member declaration. The name of the member is missing or has parentheses.
- (Originally from FSComp.txt:1676)
+ (Originally from FSComp.txt:1680)
@@ -2477,7 +2501,7 @@
Invalid alignment in interpolated string
- (Originally from FSComp.txt:1619)
+ (Originally from FSComp.txt:1623)
@@ -2495,7 +2519,7 @@
Mismatch in interpolated string. Interpolated strings may not use '%%' format specifiers unless each is given an expression, e.g. '%%d{1+1}'
- (Originally from FSComp.txt:1618)
+ (Originally from FSComp.txt:1622)
@@ -2525,7 +2549,7 @@
The 'InlineIfLambda' attribute may only be used on parameters of inlined functions of methods whose type is a function or F# delegate type.
- (Originally from FSComp.txt:1674)
+ (Originally from FSComp.txt:1678)
@@ -2567,7 +2591,7 @@
This is a function definition that shadows a union case. If this is what you want, ignore or suppress this warning. If you want it to be a union case deconstruction, add parentheses.
- (Originally from FSComp.txt:1727)
+ (Originally from FSComp.txt:1731)
@@ -2579,7 +2603,7 @@
The syntax 'arr.[idx]' is now revised to 'arr[idx]'. Please update your code.
- (Originally from FSComp.txt:1602)
+ (Originally from FSComp.txt:1606)
@@ -2591,13 +2615,13 @@
This expression uses the implicit conversion '%s' to convert type '%s' to type '%s'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\".
- (Originally from FSComp.txt:1644)
+ (Originally from FSComp.txt:1648)
This expression uses the implicit conversion '%s' to convert type '%s' to type '%s'.
- (Originally from FSComp.txt:1648)
+ (Originally from FSComp.txt:1652)
@@ -2681,13 +2705,13 @@
The syntax 'expr1[expr2]' is now reserved for indexing. See https://aka.ms/fsharp-index-notation. If calling a function, add a space between the function and argument, e.g. 'someFunction [expr]'.
- (Originally from FSComp.txt:1603)
+ (Originally from FSComp.txt:1607)
The syntax 'expr1[expr2]' is used for indexing. Consider adding a type annotation to enable indexing, or if calling a function add a space, e.g. 'expr1 [expr2]'.
- (Originally from FSComp.txt:1601)
+ (Originally from FSComp.txt:1605)
@@ -2978,6 +3002,12 @@
(Originally from FSComp.txt:741)
+
+
+ Shorthand lambda syntax is only supported for atomic expressions, such as method, property, field or indexer on the implied '_' argument. For example: 'let f = _.Length'.
+ (Originally from FSComp.txt:1733)
+
+
The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly
@@ -3131,7 +3161,7 @@
This copy-and-update record expression changes all fields of record type '%s'. Consider using the record construction syntax instead.
- (Originally from FSComp.txt:1704)
+ (Originally from FSComp.txt:1708)
@@ -3347,7 +3377,7 @@
This expression uses a built-in implicit conversion to convert type '%s' to type '%s'. See https://aka.ms/fsharp-implicit-convs.
- (Originally from FSComp.txt:1636)
+ (Originally from FSComp.txt:1640)
@@ -3467,7 +3497,7 @@
The field '%s' appears multiple times in this anonymous record type.
- (Originally from FSComp.txt:1678)
+ (Originally from FSComp.txt:1682)
@@ -3533,7 +3563,7 @@
The field '%s' appears multiple times in this record expression.
- (Originally from FSComp.txt:1677)
+ (Originally from FSComp.txt:1681)
@@ -3551,13 +3581,13 @@
This expression has type '%s' and is only made compatible with type '%s' through an ambiguous implicit conversion. Consider using an explicit call to 'op_Implicit'. The applicable implicit conversions are:%s
- (Originally from FSComp.txt:1634)
+ (Originally from FSComp.txt:1638)
The meaning of _ is ambiguous here. It cannot be used for a discarded variable and a function shorthand in the same scope.
- (Originally from FSComp.txt:1716)
+ (Originally from FSComp.txt:1720)
@@ -3820,19 +3850,19 @@
The .NET SDK for this script could not be determined. If the script is in a directory using a 'global.json' then ensure the relevant .NET SDK is installed. Unexpected error '%s'.
- (Originally from FSComp.txt:1631)
+ (Originally from FSComp.txt:1635)
The .NET SDK for this script could not be determined. dotnet.exe could not be found ensure a .NET SDK is installed.
- (Originally from FSComp.txt:1632)
+ (Originally from FSComp.txt:1636)
The .NET SDK for this script could not be determined. If the script is in a directory using a 'global.json' then ensure the relevant .NET SDK is installed. The output from '%s --version' in the directory '%s' was: '%s' and the exit code was '%d'.
- (Originally from FSComp.txt:1630)
+ (Originally from FSComp.txt:1634)
@@ -3844,73 +3874,73 @@
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.
- (Originally from FSComp.txt:1659)
+ (Originally from FSComp.txt:1663)
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.
- (Originally from FSComp.txt:1658)
+ (Originally from FSComp.txt:1662)
The state machine has an unexpected form
- (Originally from FSComp.txt:1671)
+ (Originally from FSComp.txt:1675)
The resumable code value(s) '%s' does not have a definition
- (Originally from FSComp.txt:1669)
+ (Originally from FSComp.txt:1673)
A resumable code invocation at '%s' could not be reduced
- (Originally from FSComp.txt:1662)
+ (Originally from FSComp.txt:1666)
A delegate or function producing resumable code in a state machine has type parameters
- (Originally from FSComp.txt:1670)
+ (Originally from FSComp.txt:1674)
A try/finally may not contain resumption points
- (Originally from FSComp.txt:1666)
+ (Originally from FSComp.txt:1670)
The 'with' block of a try/with may not contain resumption points
- (Originally from FSComp.txt:1667)
+ (Originally from FSComp.txt:1671)
A 'let rec' occured in the resumable code specification
- (Originally from FSComp.txt:1663)
+ (Originally from FSComp.txt:1667)
A fast integer for loop may not contain resumption points
- (Originally from FSComp.txt:1668)
+ (Originally from FSComp.txt:1672)
A target label for __resumeAt was not statically determined. A __resumeAt with a non-static target label may only appear at the start of a resumable code method
- (Originally from FSComp.txt:1665)
+ (Originally from FSComp.txt:1669)
A constrained generic construct occured in the resumable code specification
- (Originally from FSComp.txt:1664)
+ (Originally from FSComp.txt:1668)
@@ -3982,7 +4012,7 @@
Newly added pickle state cannot be used in FSharp.Core, since it must be working in older compilers+tooling as well. The time window is at least 3 years after feature introduction. Violation: %s . Context: \n %s
- (Originally from FSComp.txt:1721)
+ (Originally from FSComp.txt:1724)
@@ -4282,7 +4312,7 @@
Unexpected end of input in 'else if' or 'elif' branch of conditional expression. Expected 'elif <expr> then <expr>' or 'else if <expr> then <expr>'.
- (Originally from FSComp.txt:1706)
+ (Originally from FSComp.txt:1710)
@@ -4309,12 +4339,6 @@
(Originally from FSComp.txt:1343)
-
-
- _. shorthand syntax for lambda functions can only be used with atomic expressions. That means expressions with no whitespace unless enclosed in parentheses.
- (Originally from FSComp.txt:1717)
-
-
Unclosed block
@@ -4375,6 +4399,12 @@
(Originally from FSComp.txt:456)
+
+
+ Incomplete declaration of a static construct. Use 'static let','static do','static member' or 'static val' for declaration.
+ (Originally from FSComp.txt:1740)
+
+
A setter property may have at most two argument groups
@@ -4456,7 +4486,7 @@
This member access is ambiguous. Please use parentheses around the object creation, e.g. '(new SomeType(args)).MemberName'
- (Originally from FSComp.txt:1647)
+ (Originally from FSComp.txt:1651)
@@ -4504,7 +4534,7 @@
Missing union case name
- (Originally from FSComp.txt:1708)
+ (Originally from FSComp.txt:1712)
@@ -4522,13 +4552,13 @@
Expecting member body
- (Originally from FSComp.txt:1713)
+ (Originally from FSComp.txt:1717)
Missing keyword '%s'
- (Originally from FSComp.txt:1714)
+ (Originally from FSComp.txt:1718)
@@ -4744,19 +4774,25 @@
Expecting type
- (Originally from FSComp.txt:1709)
+ (Originally from FSComp.txt:1713)
Expecting pattern
- (Originally from FSComp.txt:1689)
+ (Originally from FSComp.txt:1693)
+
+
+
+
+ Expecting record field
+ (Originally from FSComp.txt:1741)
Expecting expression
- (Originally from FSComp.txt:1679)
+ (Originally from FSComp.txt:1683)
@@ -4768,7 +4804,7 @@
Expected a pattern after this point
- (Originally from FSComp.txt:1690)
+ (Originally from FSComp.txt:1694)
@@ -4840,25 +4876,25 @@
Incomplete interpolated verbatim string begun at or before here
- (Originally from FSComp.txt:1626)
+ (Originally from FSComp.txt:1630)
Incomplete interpolated triple-quote string begun at or before here
- (Originally from FSComp.txt:1627)
+ (Originally from FSComp.txt:1631)
Incomplete interpolated string expression fill begun at or before here
- (Originally from FSComp.txt:1624)
+ (Originally from FSComp.txt:1628)
Incomplete interpolated string begun at or before here
- (Originally from FSComp.txt:1625)
+ (Originally from FSComp.txt:1629)
@@ -4906,7 +4942,7 @@
Invalid interpolated string. This interpolated string expression fill is empty, an expression was expected.
- (Originally from FSComp.txt:1628)
+ (Originally from FSComp.txt:1632)
@@ -4918,7 +4954,7 @@
Constraint intersection syntax may only be used with flexible types, e.g. '#IDisposable & #ISomeInterface'.
- (Originally from FSComp.txt:1719)
+ (Originally from FSComp.txt:1722)
@@ -5007,7 +5043,7 @@
- Package manager key '%s' was not registered in %s. Currently registered: %s. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager
+ Package manager key '%s' was not registered in %s. Currently registered: %s. You can provide extra path(s) by passing '--compilertool:<extensionsfolder>' to the command line. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager
(Originally from FSComp.txt:842)
@@ -5734,7 +5770,7 @@
The value '%s' was marked 'InlineIfLambda' but was not determined to have a lambda value. This warning is for informational purposes only.
- (Originally from FSComp.txt:1672)
+ (Originally from FSComp.txt:1676)
@@ -5979,7 +6015,7 @@
Pattern discard is not allowed for union case that takes no data.
- (Originally from FSComp.txt:1691)
+ (Originally from FSComp.txt:1695)
@@ -6051,7 +6087,7 @@
Invalid interpolated string. Triple quote string literals may not be used in interpolated expressions. Consider using an explicit 'let' binding for the interpolation expression.
- (Originally from FSComp.txt:1621)
+ (Originally from FSComp.txt:1625)
@@ -6087,13 +6123,13 @@
Invalid interpolated string. Single quote or verbatim string literals may not be used in interpolated expressions in single quote or verbatim strings. Consider using an explicit 'let' binding for the interpolation expression or use a triple quote string as the outer string literal.
- (Originally from FSComp.txt:1620)
+ (Originally from FSComp.txt:1624)
A '}' character must be escaped (by doubling) in an interpolated string.
- (Originally from FSComp.txt:1629)
+ (Originally from FSComp.txt:1633)
@@ -6201,7 +6237,7 @@
This is not a valid identifier
- (Originally from FSComp.txt:1707)
+ (Originally from FSComp.txt:1711)
@@ -6303,7 +6339,7 @@
a byte string may not be interpolated
- (Originally from FSComp.txt:1623)
+ (Originally from FSComp.txt:1627)
@@ -6795,7 +6831,7 @@
XML comment is not placed on a valid language element.
- (Originally from FSComp.txt:1675)
+ (Originally from FSComp.txt:1679)
@@ -6837,7 +6873,7 @@
The 'InlineIfLambda' attribute is present in the signature but not the implementation.
- (Originally from FSComp.txt:1673)
+ (Originally from FSComp.txt:1677)
@@ -6897,13 +6933,13 @@
The resumable code construct '%s' may only be used in inlined code protected by 'if __useResumableCode then ...' and the overall composition must form valid resumable code.
- (Originally from FSComp.txt:1650)
+ (Originally from FSComp.txt:1654)
Unknown debug point '%s'. The available debug points are '%s'.
- (Originally from FSComp.txt:1661)
+ (Originally from FSComp.txt:1665)
@@ -7352,25 +7388,25 @@
Interpolated strings used as type IFormattable or type FormattableString may not use '%%' specifiers, only .NET-style interpolands such as '{expr}', '{expr,3}' or '{expr:N5}' may be used.
- (Originally from FSComp.txt:1617)
+ (Originally from FSComp.txt:1621)
The '%%P' specifier may not be used explicitly.
- (Originally from FSComp.txt:1616)
+ (Originally from FSComp.txt:1620)
.NET-style format specifiers such as '{x,3}' or '{x:N5}' may not be mixed with '%%' format specifiers.
- (Originally from FSComp.txt:1615)
+ (Originally from FSComp.txt:1619)
Interpolated strings may not use '%%' format specifiers unless each is given an expression, e.g. '%%d{1+1}'.
- (Originally from FSComp.txt:1614)
+ (Originally from FSComp.txt:1618)
@@ -7475,10 +7511,22 @@
(Originally from FSComp.txt:1578)
+
+
+ Indexed properties getter and setter must have the same type
+ (Originally from FSComp.txt:1592)
+
+
Interop between C#'s and F#'s unmanaged generic constraint (emit additional modreq)
- (Originally from FSComp.txt:1723)
+ (Originally from FSComp.txt:1726)
+
+
+
+
+ Union case test properties
+ (Originally from FSComp.txt:1594)
@@ -7514,7 +7562,7 @@
Allow static let bindings in union, record, struct, non-incremental-class types
- (Originally from FSComp.txt:1711)
+ (Originally from FSComp.txt:1715)
@@ -7529,6 +7577,12 @@
(Originally from FSComp.txt:1567)
+
+
+ Share underlying fields in a [<Struct>] discriminated union as long as they have same name and type
+ (Originally from FSComp.txt:1735)
+
+
resumable state machines
@@ -7577,6 +7631,12 @@
(Originally from FSComp.txt:1590)
+
+
+ prefer extension method over plain property
+ (Originally from FSComp.txt:1591)
+
+
package management
@@ -7646,7 +7706,7 @@
interfaces with multiple generic instantiation
- (Originally from FSComp.txt:1597)
+ (Originally from FSComp.txt:1601)
@@ -7664,7 +7724,7 @@
Diagnostic 3559 (warn when obj inferred) at informational level, off by default
- (Originally from FSComp.txt:1710)
+ (Originally from FSComp.txt:1714)
@@ -7718,7 +7778,7 @@
Escapes curly braces before calling FormattableStringFactory.Create when interpolated string literal is typed as FormattableString
- (Originally from FSComp.txt:1694)
+ (Originally from FSComp.txt:1698)
@@ -7769,6 +7829,12 @@
(Originally from FSComp.txt:1586)
+
+
+ Raises warnings if the 'TailCall' attribute is used on non-recursive functions.
+ (Originally from FSComp.txt:1593)
+
+
Raises warnings if a member or function has the 'TailCall' attribute, but is not being used in a tail recursive way.
@@ -7814,7 +7880,7 @@
underscore dot shorthand for accessor only function
- (Originally from FSComp.txt:1718)
+ (Originally from FSComp.txt:1721)
@@ -8870,13 +8936,13 @@
Key container signing is not supported on this platform.
- (Originally from FSComp.txt:1646)
+ (Originally from FSComp.txt:1650)
The 'AssemblyKeyNameAttribute' has been deprecated. Use 'AssemblyKeyFileAttribute' instead.
- (Originally from FSComp.txt:1645)
+ (Originally from FSComp.txt:1649)
@@ -8945,6 +9011,12 @@
(Originally from FSComp.txt:1336)
+
+
+ The TailCall attribute should only be applied to recursive functions.
+ (Originally from FSComp.txt:1739)
+
+
'System.Void' can only be used as 'typeof<System.Void>' in F#
@@ -8957,6 +9029,12 @@
(Originally from FSComp.txt:1507)
+
+
+ Object expressions cannot implement interfaces with static abstract members or declare static members.
+ (Originally from FSComp.txt:1738)
+
+
Expression-splicing operators may only be used within quotations
@@ -8996,7 +9074,7 @@
The member or function '%s' has the 'TailCallAttribute' attribute, but is not being used in a tail recursive way.
- (Originally from FSComp.txt:1715)
+ (Originally from FSComp.txt:1719)
@@ -9152,43 +9230,49 @@
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Instance members are not allowed.
- (Originally from FSComp.txt:1698)
+ (Originally from FSComp.txt:1702)
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Instance let bindings are not allowed.
- (Originally from FSComp.txt:1699)
+ (Originally from FSComp.txt:1703)
The use of 'incr' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change 'incr cell' to 'cell.Value <- cell.Value + 1'.
- (Originally from FSComp.txt:1612)
+ (Originally from FSComp.txt:1616)
The use of '!' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change '!cell' to 'cell.Value'.
- (Originally from FSComp.txt:1610)
+ (Originally from FSComp.txt:1614)
The use of 'decr' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change 'decr cell' to 'cell.Value <- cell.Value - 1'.
- (Originally from FSComp.txt:1613)
+ (Originally from FSComp.txt:1617)
The use of ':=' from the F# library is deprecated. See https://aka.ms/fsharp-refcell-ops. For example, please change 'cell := expr' to 'cell.Value <- expr'.
- (Originally from FSComp.txt:1611)
+ (Originally from FSComp.txt:1615)
+
+
+
+
+ An indexed property's getter and setter must have the same type. Property '%s' has getter of type '%s' but setter of type '%s'.
+ (Originally from FSComp.txt:1730)
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Implementing interfaces is not allowed.
- (Originally from FSComp.txt:1700)
+ (Originally from FSComp.txt:1704)
@@ -9230,7 +9314,7 @@
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Explicit field declarations are not allowed.
- (Originally from FSComp.txt:1702)
+ (Originally from FSComp.txt:1706)
@@ -9254,7 +9338,7 @@
Duplicate parameter. The parameter '%s' has been used more that once in this method.
- (Originally from FSComp.txt:1693)
+ (Originally from FSComp.txt:1697)
@@ -9308,13 +9392,13 @@
This expression is an anonymous record, use {|...|} instead of {...}.
- (Originally from FSComp.txt:1724)
+ (Originally from FSComp.txt:1727)
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Constructor with arguments is not allowed.
- (Originally from FSComp.txt:1696)
+ (Originally from FSComp.txt:1700)
@@ -9338,7 +9422,7 @@
FSharp.Core.AutoOpenAttribute should not be aliased.
- (Originally from FSComp.txt:1705)
+ (Originally from FSComp.txt:1709)
@@ -9350,13 +9434,13 @@
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Additional constructor is not allowed.
- (Originally from FSComp.txt:1697)
+ (Originally from FSComp.txt:1701)
If a type uses both [<Sealed>] and [<AbstractClass>] attributes, it means it is static. Abstract member declarations are not allowed.
- (Originally from FSComp.txt:1701)
+ (Originally from FSComp.txt:1705)
@@ -9596,7 +9680,7 @@
The source file '%s' (at position %d/%d) already appeared in the compilation list (at position %d/%d). Please verify that it is included only once in the project file.
- (Originally from FSComp.txt:1695)
+ (Originally from FSComp.txt:1699)
@@ -9770,7 +9854,7 @@
Interpolated string contains untyped identifiers. Adding typed format specifiers is recommended.
- (Originally from FSComp.txt:1725)
+ (Originally from FSComp.txt:1728)
@@ -11510,14 +11594,6 @@
Generates unique stamps
-
-
- Represents a synchronous, cold-start, cancellable computation with explicit representation of a cancelled result.
-
- A cancellable computation may be cancelled via a CancellationToken, which is propagated implicitly.
- If cancellation occurs, it is propagated as data rather than by raising an OperationCanceledException.
-
-
Encapsulates a lock associated with a particular token-type representing the acquisition of that lock.
@@ -11550,6 +11626,14 @@
Represents a permission active at this point in execution
+
+
+ Represents a synchronous, cold-start, cancellable computation with explicit representation of a cancelled result.
+
+ A cancellable computation may be cancelled via a CancellationToken, which is propagated implicitly.
+ If cancellation occurs, it is propagated as data rather than by raising an OperationCanceledException.
+
+
For every entry in m2 find an entry in m1 and fold
@@ -11580,22 +11664,6 @@
Intern tables to save space.
-
-
- Bind the cancellation token associated with the computation
-
-
-
-
- Run the computation in a mode where it may not be cancelled. The computation never results in a
- ValueOrCancelled.Cancelled.
-
-
-
-
- Run a cancellable computation using the given cancellation token
-
-
Represents a place in the compiler codebase where we assume we are executing on a compilation thread
@@ -11737,6 +11805,22 @@
Code that uses this should probably be adjusted to use unsigned integer types.
+
+
+ Bind the cancellation token associated with the computation
+
+
+
+
+ Run the computation in a mode where it may not be cancelled. The computation never results in a
+ ValueOrCancelled.Cancelled.
+
+
+
+
+ Run a cancellable computation using the given cancellation token
+
+
Register some items to dispose
@@ -12799,6 +12883,11 @@
LanguageVersion management
+
+
+ RFC-1137
+
+
LanguageFeature enumeration
@@ -14146,6 +14235,11 @@
Represents additional information for SynType.Or
+
+
+ The syntax range of the `mutable` keyword
+
+
Used leading keyword of SynField
@@ -17071,6 +17165,11 @@
Indicates if this is a constructor member generated from the de-sugaring of implicit constructor for a class type?
+
+
+ Determines if the values is implied by another construct, e.g. a `IsA` property is implied by the union case for A
+
+
Indicates if this is an F#-defined extension member
@@ -18078,6 +18177,11 @@ Get the signature for the value's XML documentation
Indicates if this is a constructor member generated from the de-sugaring of implicit constructor for a class type?
+
+
+ Determines if the values is implied by another construct, e.g. a `IsA` property is implied by the union case for A
+
+
Indicates if the value is pinned/fixed
@@ -21061,9 +21165,14 @@ Get the signature for the value's XML documentation
Serialize an entity to a very basic json structure.
-
+
- Add an System.Runtime.CompilerServices.ExtensionAttribute to the Entity if found via predicate and not already present.
+ Add an System.Runtime.CompilerServices.ExtensionAttribute to the type Entity if found via predicate and not already present.
+
+
+
+
+ Add an System.Runtime.CompilerServices.ExtensionAttribute to the module Entity if found via predicate and not already present.
@@ -22291,6 +22400,11 @@ Get the signature for the value's XML documentation
Make a 'TOp.UnionCaseProof' expression, which proves a union value is over a particular case (used only for ref-unions, not struct-unions)
+
+
+ Make an expression which tests that a union value is of a particular union case.
+
+
Make an expression that gets the tag of a union value (via the address of the value if it is a struct)
@@ -23532,6 +23646,11 @@ Get the signature for the value's XML documentation
For an extension property, this indicates if the property extends a struct type.
+
+
+ Indicates if the property is a IsABC union case tester implied by a union case definition
+
+
Indicates if this property is static.
@@ -23555,6 +23674,11 @@ Get the signature for the value's XML documentation
Indicates if this property is an indexer property, i.e. a property with arguments.
+ <code lang="fsharp">
+ member x.Prop with
+ get (indexPiece1:int,indexPiece2: string) = ...
+ and set (indexPiece1:int,indexPiece2: string) value = ...
+ </code>
@@ -24054,6 +24178,11 @@ Get the signature for the value's XML documentation
Get the method name in LogicalName form, i.e. the name as it would be stored in .NET metadata
+
+
+ Indicates if the method is a get_IsABC union case tester implied by a union case definition
+
+
Indicates if the enclosing type for the method is a value type.
@@ -25059,17 +25188,22 @@ Get the signature for the value's XML documentation
Print Signatures/Types, for signatures, intellisense, quick info, FSI responses
-
+
This predicate can be used once type inference is complete, before then it is an approximation
that doesn't assert any new constraints
-
+
Generate the hash/compare functions we add to user-defined types by default.
+
+
+ Indicates whether we want to report found items to the name resolution sink
+
+
Notify the sink of the information needed to complete recording a use of a symbol
@@ -25684,12 +25818,12 @@ Get the signature for the value's XML documentation
A generator of type instantiations used when no more specific type instantiation is known.
-
+
Resolve a long identifier occurring in an expression position, qualified by a type.
-
+
Resolve a long identifier occurring in an expression position.
@@ -25704,7 +25838,7 @@ Get the signature for the value's XML documentation
Resolve a (possibly incomplete) long identifier to a loist of possible class or record fields
-
+
Resolve a long identifier occurring in an expression position
@@ -25744,7 +25878,7 @@ Get the signature for the value's XML documentation
Resolve a long identifier to an object constructor.
-
+
Resolve a long identifier to a namespace, module.
@@ -25941,7 +26075,7 @@ Get the signature for the value's XML documentation
The overall information about a method implementation in a class or object expression
-
+
Get the properties relevant to determining if a uniquely-identified-override exists based on the syntactic information
at the member signature prior to type inference. This is used to pre-assign type information if it does
@@ -25968,7 +26102,7 @@ Get the signature for the value's XML documentation
Check all implementations implement some dispatch slot.
-
+
Check all dispatch slots are implemented by some override.
@@ -27189,6 +27323,11 @@ Get the signature for the value's XML documentation
Mark a typar as no longer being an inference type variable
+
+
+ Publish a value definition to the module/namespace type accumulator.
+
+
Publish a value definition to the module/namespace type accumulator.
@@ -27638,7 +27777,7 @@ Get the signature for the value's XML documentation
Check if an expression has an effect
-
+
Combine optimization infos
@@ -27653,7 +27792,7 @@ Get the signature for the value's XML documentation
Rewrite the module info using the export remapping
-
+
Saving and re-reading optimization information
@@ -27663,7 +27802,7 @@ Get the signature for the value's XML documentation
Optimize one implementation file in the given environment
-
+
For building optimization environments incrementally
@@ -28157,17 +28296,17 @@ Get the signature for the value's XML documentation
Some methods are marked "HasSecurity" even if there are no permissions attached, e.g. if they use SuppressUnmanagedCodeSecurityAttribute
-
+
Functional update of the value
-
+
Functional creation of a value, immediate
-
+
Functional creation of a value, with delayed reading of some elements via a metadata index
@@ -31235,6 +31374,11 @@ Get the signature for the value's XML documentation
Indicates if the member, function or value is in an unresolved assembly
+
+
+ Indicates if the property or getter method is part of a IsABC union case tester implied by a union case definition
+
+
Indicates if this is an F# type function
@@ -34265,6 +34409,11 @@ Get the signature for the value's XML documentation
always empty.
+
+
+ Gets the syntax range of this construct
+
+
Represents the syntax tree for a field declaration in a record or class
@@ -34519,12 +34668,6 @@ Get the signature for the value's XML documentation
Represents a binding for a 'let' or 'member' declaration
-
-
- Is only populated during type-checking when an property has both a getter and setter.
- It is used to track the fact that the getter and setter are part of the same property when they are desugared.
-
-
Represents extra information about the declaration of a value
@@ -36938,6 +37081,17 @@ Get the signature for the value's XML documentation
Returns outlining ranges for given parsed input.
+
+
+ Gets the ranges of all unnecessary pairs of parentheses in a file.
+
+ Note that this may include pairs of nested ranges each of whose
+ lack of necessity depends on the other's presence, such
+ that it is valid to remove either set of parentheses but not both, e.g.:
+
+ (x.M(y)).N → (x.M y).N ↮ x.M(y).N
+
+
Get all unused declarations in a file
@@ -37539,7 +37693,7 @@ Get the signature for the value's XML documentation
- Find the dependent files of the current file based on the untyped syntax tree
+ Find the transitive dependent files of the current file based on the untyped syntax tree.
diff --git a/lib/fcs/FSharp.Core.dll b/lib/fcs/FSharp.Core.dll
index 8b097fa866..8066a77219 100644
Binary files a/lib/fcs/FSharp.Core.dll and b/lib/fcs/FSharp.Core.dll differ
diff --git a/lib/fcs/FSharp.Core.xml b/lib/fcs/FSharp.Core.xml
index e5298f5ef3..a3439f5fdf 100644
--- a/lib/fcs/FSharp.Core.xml
+++ b/lib/fcs/FSharp.Core.xml
@@ -5087,7 +5087,7 @@
Builds a new collection whose elements are the results of applying the given function
to each of the elements of the collection. The integer index passed to the
- function indicates the index (from 0) of element being transformed.
+ function indicates the index (from 0) of the element being transformed.
The function to transform elements and their indices.
The input list.
@@ -5285,8 +5285,8 @@
Applies the given function to two collections simultaneously. The
- collections must have identical size. The integer passed to the
- function indicates the index of element.
+ collections must have identical sizes. The integer passed to the
+ function indicates the index of the element.
The function to apply to a pair of elements from the input lists along with their index.
The first input list.
@@ -5310,7 +5310,7 @@
Applies the given function to each element of the collection. The integer passed to the
- function indicates the index of element.
+ function indicates the index of the element.
The function to apply to the elements of the list along with their index.
The input list.
@@ -5332,7 +5332,7 @@
Applies the given function to two collections simultaneously. The
- collections must have identical size.
+ collections must have identical sizes.
The function to apply to pairs of elements from the input lists.
The first input list.
@@ -6116,7 +6116,7 @@
- Returns a new list that contains the elements of each the lists in order.
+ Returns a new list that contains the elements of each of the lists in order.
The input sequence of lists.
@@ -6211,7 +6211,7 @@
- For each element of the list, applies the given function. Concatenates all the results and return the combined list.
+ For each element of the list, applies the given function. Concatenates all the results and returns the combined list.
The function to transform each input element into a sublist to be concatenated.
The input list.
@@ -6226,7 +6226,7 @@
- Divides the input list into lists (chunks) with at a positive number of at most chunkSize elements.
+ Divides the input list into lists (chunks) of size at most chunkSize.
Returns a new list containing the generated lists (chunks) as its elements.
Returns an empty list when the input list is empty.
@@ -13779,7 +13779,7 @@
Expr.ForIntegerRangeLoop(loopVariable, startExpr, endExpr, body)
- Evaluates to a quotation with the same structure as <@ if 1 > 3 then 6 else 7 @>.
+ Evaluates to a quotation with the same structure as <@ for x in 6..7 do System.Console.WriteLine("hello") @>.
diff --git a/lib/fcs/FSharp.DependencyManager.Nuget.dll b/lib/fcs/FSharp.DependencyManager.Nuget.dll
index 23a3050257..0193fe3816 100644
Binary files a/lib/fcs/FSharp.DependencyManager.Nuget.dll and b/lib/fcs/FSharp.DependencyManager.Nuget.dll differ
diff --git a/src/Fable.Cli/CHANGELOG.md b/src/Fable.Cli/CHANGELOG.md
index d450a7ead0..60c5654f94 100644
--- a/src/Fable.Cli/CHANGELOG.md
+++ b/src/Fable.Cli/CHANGELOG.md
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
+### Changed
+
+#### All
+
+* Updated FCS to [fce0cf00585c12174fa3e51e4fc34afe784b9b4e](https://github.com/dotnet/fsharp/commits/fce0cf00585c12174fa3e51e4fc34afe784b9b4e) (by @ncave)
+
## 4.7.0 - 2023-12-06
### Added
diff --git a/tests/Python/TestPyInterop.fs b/tests/Python/TestPyInterop.fs
index 809a33bdc1..575d06d512 100644
--- a/tests/Python/TestPyInterop.fs
+++ b/tests/Python/TestPyInterop.fs
@@ -46,9 +46,9 @@ let myComplexAdder x y = x + y
type NameProp =
{ Name: string }
-type Props =
- | Names of NameProp array
- | [] Custom of key:string * value:obj
+// type Props =
+// | Names of NameProp array
+// | [] Custom of key:string * value:obj
[]
type PyArray =