diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 4e1d6979b..c3fd58757 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -25,7 +25,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.201 + dotnet-version: 7.0.100 - name: Restore run: git submodule update --init --recursive - name: Build with dotnet @@ -38,7 +38,11 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Setup .NET Core + - name: Setup .NET Core 7 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 7.0.100 + - name: Setup .NET Core 6 uses: actions/setup-dotnet@v1 with: dotnet-version: 6.0.201 @@ -78,6 +82,10 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v2 + - name: Setup .NET Core 7 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 7.0.100 - name: Setup .NET Core 6 uses: actions/setup-dotnet@v1 with: diff --git a/.github/workflows/fable.yml b/.github/workflows/fable.yml index b168c2fdc..e2f4f4549 100644 --- a/.github/workflows/fable.yml +++ b/.github/workflows/fable.yml @@ -13,12 +13,14 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Restore + run: git submodule update --init --recursive + - name: Remove global json + run: rm global.json - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 6.0.201 - - name: Restore - run: git submodule update --init --recursive - name: Restore tools run: dotnet tool restore - name: Use Node.js @@ -37,12 +39,14 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Restore + run: git submodule update --init --recursive + - name: Remove global json + run: rm global.json - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 6.0.201 - - name: Restore - run: git submodule update --init --recursive - name: Restore tools run: dotnet tool restore # - name: Run tests (Fable2 subset but on .net) diff --git a/docsrc/tools/docsTool.fsproj b/docsrc/tools/docsTool.fsproj index 069dd996f..7bd2f31f8 100644 --- a/docsrc/tools/docsTool.fsproj +++ b/docsrc/tools/docsTool.fsproj @@ -2,7 +2,7 @@ Exe - net6.0 + net7.0 diff --git a/global.json b/global.json index af2302b08..687f32f74 100644 --- a/global.json +++ b/global.json @@ -1,10 +1,11 @@ { "sdk": { - "version": "6.0.200", + "version": "7.0.100", "rollForward": "latestFeature" }, "additionalSdks": [ - "5.0.405" + "5.0.405", + "6.0.201" ] } diff --git a/src/FSharpPlus.Docs/FSharpPlus.Docs.fsproj b/src/FSharpPlus.Docs/FSharpPlus.Docs.fsproj index d0eb6aeb6..f25f1af8f 100644 --- a/src/FSharpPlus.Docs/FSharpPlus.Docs.fsproj +++ b/src/FSharpPlus.Docs/FSharpPlus.Docs.fsproj @@ -8,7 +8,7 @@ Exe Debug;Release;Fable AnyCPU - net6.0 + net7.0 diff --git a/src/FSharpPlus/Control/Numeric.fs b/src/FSharpPlus/Control/Numeric.fs index f5a18b69c..d445a0a3c 100644 --- a/src/FSharpPlus/Control/Numeric.fs +++ b/src/FSharpPlus/Control/Numeric.fs @@ -291,11 +291,15 @@ type TryNegate' = type DivRem = inherit Default1 static member inline DivRem (x: ^t when ^t: null and ^t: struct, y: ^t, _thisClass: DivRem) = (x, y) - static member inline DivRem (D: 'T, d: 'T, []_impl: Default1) = let q = D / d in q, D - q * d - static member inline DivRem (D: 'T, d: 'T, []_impl: DivRem ) = + static member inline DivRem (D: 'T, d: 'T, _impl: Default2) = let q = D / d in q, D - q * d + static member inline DivRem (D: 'T, d: 'T, _impl: Default1) = let mutable r = Unchecked.defaultof<'T> (^T: (static member DivRem : _ * _ -> _ -> _) (D, d, &r)), r + static member inline DivRem (D: 'T, d: 'T, _impl: DivRem ) = + let (struct (x, y)) = (^T: (static member DivRem : _ * _ -> _) (D, d)) + (x, y) + static member inline Invoke (D: 'T) (d: 'T) : 'T*'T = let inline call_3 (a: ^a, b: ^b, c: ^c) = ((^a or ^b or ^c) : (static member DivRem : _*_*_ -> _) b, c, a) let inline call (a: 'a, b: 'b, c: 'c) = call_3 (a, b, c) diff --git a/tests/FSharpPlus.Tests/FSharpPlus.Tests.fsproj b/tests/FSharpPlus.Tests/FSharpPlus.Tests.fsproj index 790a030d5..bf44686b4 100644 --- a/tests/FSharpPlus.Tests/FSharpPlus.Tests.fsproj +++ b/tests/FSharpPlus.Tests/FSharpPlus.Tests.fsproj @@ -5,13 +5,13 @@ $(FSC_ExePathCompilerBuild) - net6.0 true 6.0 false Debug;Release;Fable AnyCPU $(DefineConstants);FABLE_COMPILER + net7.0 diff --git a/tests/FSharpPlusFable.Tests/FSharpPlusFable.Tests.fsproj b/tests/FSharpPlusFable.Tests/FSharpPlusFable.Tests.fsproj index 157755f1c..f091059e2 100644 --- a/tests/FSharpPlusFable.Tests/FSharpPlusFable.Tests.fsproj +++ b/tests/FSharpPlusFable.Tests/FSharpPlusFable.Tests.fsproj @@ -1,49 +1,49 @@  - - Exe - Debug;Release;Fable;Fable3 - AnyCPU - 6.0 - $(DefineConstants);FABLE_COMPILER;FABLE_COMPILER_FAKE - $(DefineConstants);FABLE_COMPILER;FABLE_COMPILER_3;FABLE_COMPILER_FAKE - net6.0 - + + Exe + Debug;Release;Fable;Fable3 + AnyCPU + 6.0 + $(DefineConstants);FABLE_COMPILER;FABLE_COMPILER_FAKE + $(DefineConstants);FABLE_COMPILER;FABLE_COMPILER_3;FABLE_COMPILER_FAKE + net6.0 + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - True - - - + + + True + + + diff --git a/tests/FSharpPlusFable.Tests/global.json b/tests/FSharpPlusFable.Tests/global.json new file mode 100644 index 000000000..ebe3ab71d --- /dev/null +++ b/tests/FSharpPlusFable.Tests/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "6.0.201", + "rollForward": "latestFeature" + } +} diff --git a/tests/benchmarks/Benchmarks.fsproj b/tests/benchmarks/Benchmarks.fsproj index 93d068fcd..2c1ffc1e6 100644 --- a/tests/benchmarks/Benchmarks.fsproj +++ b/tests/benchmarks/Benchmarks.fsproj @@ -1,6 +1,6 @@  - net6.0 + net7.0 Exe AnyCPU true