@@ -245,20 +245,23 @@ let test() =
245245
246246 [<Test>]
247247 let ``Overloading on System.Nullable < int >, System.Nullable<'T> and int all work without error`` () =
248- CompilerAssert.Pass
248+ CompilerAssert.RunScript
249249 """
250- module Test
251-
250+ let assertTrue x =
251+ (x || failwith "Unexpected overload") |> ignore
252+
252253type M() =
253- static member A(n: System.Nullable<'T>) = ()
254- static member A(n: System.Nullable<int>) = ()
255- static member A(n: int) = ()
254+ static member A(n: System.Nullable<'T>) = 1
255+ static member A(n: System.Nullable<int>) = 2
256+ static member A(n: int) = 3
256257
257258let test() =
258- M.A(System.Nullable 3)
259- M.A(System.Nullable 3.)
260- M.A(3)
261- """
259+ M.A(System.Nullable 3.) = 1 |> assertTrue
260+ M.A(System.Nullable 3) = 2 |> assertTrue
261+ M.A(3) = 3 |> assertTrue
262+
263+ test()
264+ """ []
262265
263266 [<Test>]
264267 let ``Picking overload for typar does not favor any form of System.Nullable nor produce ambiguity warnings`` () =
@@ -349,3 +352,22 @@ let test() =
349352 }
350353 """
351354 ]))
355+
356+ [<Test>]
357+ let ``Test retrieving an argument set in nested method call property setter works`` () =
358+ CompilerAssert.RunScript
359+ """
360+ type Input<'T>(v: 'T) =
361+ member _.Value = v
362+ static member op_Implicit(value: 'T): Input<'T> = Input<'T>(value)
363+
364+ type OtherArgs() =
365+ member val Name: string = Unchecked.defaultof<_> with get,set
366+ type SomeArgs() =
367+ member val OtherArgs: Input<OtherArgs> = Unchecked.defaultof<_> with get, set
368+
369+ let test() =
370+ SomeArgs(OtherArgs = OtherArgs(Name = "test"))
371+
372+ if not (test().OtherArgs.Value.Name = "test") then failwith "Unexpected value was returned after setting Name"
373+ """ []
0 commit comments