I originally filed this in the F# repo itself. It seems attribute usage has been improved in the compiler and Argu needs some updates. Here's the original issue reproduced:
I've just discovered that my code doesn't build with F# 8.0.300 and preview language version.
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.
Related information
.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
Description
I originally filed this in the F# repo itself. It seems attribute usage has been improved in the compiler and Argu needs some updates. Here's the original issue reproduced:
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 element
Known workarounds
Work around is to revert back to latest language version.
Related information