Gratian Plume

Results 8 issues of Gratian Plume

Currently when we use **object expressions**, the outer mutable variable will be promoted to `Ref`, if multiple variable variables are used, multiple `Ref` will be generated. In fact, most of...

approved-in-principle
area: object-programming

I have some code like following: ```fsharp type Hero = | AH | GM | NT member inline this.Conver x = match this with | AH -> x &&& 1...

Case 1 ``` type Test() = member __.Equals (_: Test) = true let inline Equals(a: obj) (b: ^t) = match a with | :? ^t as x -> (^t: (member...

Bug
Impact-Medium
Area-Compiler-SRTP

``` type AH = | AH member _.For(x, f) = f x member _.Yield x = x [] member _.foo(x, []y) = let x = y x x, "A" []...

I think it's serious: ``` type Ah = static member plus (a: Ah, b: Ah) = "Ah" type TestPlus = static member plus(a: int, b: int) = a + b...

Bug
Impact-Low
Area-Compiler-SRTP

I fell into a pit. exp: Writting a DU in **Liberary1**: ``` [] // focus on it type Bar = | Test1 of int | Test 2 module Bar =...

Bug
Impact-Low
Area-Compiler-Checking

***I propose we** add support for type erasure of delegates with generic parameters, particularly for `Span` operations, in order to allow performance optimizations similar to non-generic delegates. **The existing way...

### Description When using SRTP (statically resolved type parameters) in F#, developers often need to pass a *dummy value* whose only purpose is to fix a type parameter that otherwise...

area: syntax
area: srtp-and-constraints