I've just discovered that my code doesn't build with F# 8.0.300 and preview language version.
Repro steps
This is my project file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Argu" Version="6.2.3" />
</ItemGroup>
</Project>
and this is my Program.fs:
open Argu
type Arguments =
| [<Mandatory>] Username of string
interface IArgParserTemplate with
member this.Usage =
match this with
| Username _ -> "Specifies the username"
printfn "Hello from F#"
Expected behavior
I expect this to compile cleanly.
Actual behavior
This fails to compile after I upgraded to 8.0.300 (from 8.0.204):
Program.fs(4,7): error FS0842: This attribute is not valid for use on this language element
Known workarounds
Work around is to revert back to latest language version. I am using preview language version for improved string slicing (please upgrade this feature from preview to latest).
Related information
Provide any related information (optional):
.NET SDK:
Version: 8.0.300
Commit: 326f6e68b2
Workload version: 8.0.300-manifests.bce0cb54
MSBuild version: 17.10.4+10fbfbf2e
Runtime Environment:
OS Name: Mac OS X
OS Version: 14.4
OS Platform: Darwin
RID: osx-arm64
Base Path: /usr/local/share/dotnet/sdk/8.0.300/
.NET workloads installed:
There are no installed workloads to display.
Host:
Version: 8.0.5
Architecture: arm64
Commit: 087e15321b
.NET SDKs installed:
8.0.101 [/usr/local/share/dotnet/sdk]
8.0.204 [/usr/local/share/dotnet/sdk]
8.0.300 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.15 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
I've just discovered that my code doesn't build with F# 8.0.300 and preview language version.
Repro steps
This is my project file:
and this is my Program.fs:
Expected behavior
I expect this to compile cleanly.
Actual behavior
This fails to compile after I upgraded to 8.0.300 (from 8.0.204):
Program.fs(4,7): error FS0842: This attribute is not valid for use on this language elementKnown workarounds
Work around is to revert back to latest language version. I am using preview language version for improved string slicing (please upgrade this feature from preview to latest).
Related information
Provide any related information (optional):