Created
February 19, 2024 14:42
-
-
Save ingted/8898a98b28dd450d1f56a2ff4a18df28 to your computer and use it in GitHub Desktop.
FS1113
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let inline a<'T when 'T: (member o : int)> (t:'T) = | |
t.o | |
type MyType< ^T | |
when ^T: (member o : int) | |
> (t:^T) = | |
let mutable ttc :^T = Unchecked.defaultof< ^T> | |
//member val ttc :'T = Unchecked.defaultof<'T> with get,set | |
member inline this.set v = ttc <- v | |
member inline this.get () = (^T :(member o : int)(ttc)) | |
type MyType2<'T | |
when 'T: (member o : int)> (t:'T) = | |
class | |
do a t |> ignore | |
end | |
//not working both | |
type MyType3< ^T | |
when ^T: (member o : int) | |
> () = | |
member this.get (t:^T) = (^T :(member o : int)(t)) | |
type MyType4 () = | |
static member inline get< ^T | |
when ^T: (member o : int) | |
> (t:^T) = (^T :(member o : int)(t)) | |
type MyType5 () = | |
static member inline get< ^T | |
when ^T: (member o : int) | |
> (t:^T) = t.o | |
//working | |
type MyType6< ^T | |
when ^T: (member o : int) | |
> () = | |
static member inline get (t:^T) = t.o | |
//not working | |
type MyType6_2< ^T | |
when ^T: (member o : int) | |
> () = | |
static member val T = 123 | |
static member inline get (t:^T) = t.o | |
//not working | |
type MyType7< ^T | |
when ^T: (member o : int) | |
> (t:^T) = | |
member inline this.get () = t.o | |
//not working in .net 8, working in .net 5 | |
type MyType7_2< ^T | |
when ^T: (member public o : int) | |
> (t:^T) = | |
member inline public this.get () = (^T :(member public o : int)(t)) | |
type MyType7_3< ^T | |
when ^T: (member public o : int) | |
> () = | |
let mutable a = Unchecked.defaultof< ^T> | |
member inline public this.set (t:^T) = a <- t | |
member inline public this.get (t:^T) = (^T :(member public o : int)(t)) | |
type MyType7_4< ^T | |
when ^T: (member public o : int) | |
> () = | |
let mutable a = Unchecked.defaultof< ^T> | |
member inline public this.set (t:^T) = t | |
//member inline public this.get (t:^T) = (^T :(member public o : int)(t)) | |
//not working in .net 8, working in .net 5 | |
type MyType7_6< ^T | |
when ^T: (member public o : int) | |
> (tt: ^T ref) = | |
member val ttt = 123 | |
member inline public this.set (t:^T) = t | |
member inline public this.get () = ttt | |
//not working in .net 8, not working in .net 5 | |
type MyType7_5< ^T | |
when ^T: (member o : int) | |
> (t:^T) = | |
member this.get () = (^T :(member o : int)(t)) | |
//not working | |
type MyType8< ^T | |
when ^T: (member o : int) | |
> () = | |
static member val T = 123 | |
//not working | |
type MyType8_2< ^T | |
when ^T: (member o : int) | |
> () = | |
static member T = 123 | |
//working in .net 8, working in .net 5 | |
type MyType8_3< ^T | |
when ^T: (member o : int) | |
> () = | |
static member inline T = 123 | |
//not working in .net 8, working in .net 5 | |
type MyType8_4< ^T | |
when ^T: (member o : int) | |
> (t:^T) = | |
member inline this.T = t | |
//not working in .net 8, working in .net 5 | |
type MyType8_5< ^T | |
when ^T: (member o : int) | |
> (t:int) = | |
member inline this.T = t |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment