diff options
author | Mikhail Melnikov <mikhail_melnikov@epam.com> | 2017-12-11 19:56:06 +0300 |
---|---|---|
committer | Joel Martinez <joelmartinez@gmail.com> | 2017-12-11 22:48:35 +0300 |
commit | 555de5c794e508ab36154ec57da6c5fd819cbf1f (patch) | |
tree | 0f9e56a5d1677ffb02e3bed0b7a5c53663a0fc6b /mdoc/mdoc.Test/mdoc.Test.FSharp | |
parent | 43f31b8e6ec4ed6e2a70121ef4ea3f2f01c08360 (diff) |
[mdoc] Fixed StackOverflow in F# and exception in members implementations generation
StackOverflow in F# was caused by generic types constrained recursively by themselves (`'T :> seq<'T>`)
Added `TestConstraints_2_2` unit test
For members implementations generation, we shouldn't count on order of type generic arguments because they can be passed to interface reordered. Slightly remade generation of fingerprints.
Extended `check-monodocer-members-implementation` integration test with `IScrollable` and `ScrollableBase` classes
Diffstat (limited to 'mdoc/mdoc.Test/mdoc.Test.FSharp')
-rw-r--r-- | mdoc/mdoc.Test/mdoc.Test.FSharp/Constraints.fs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mdoc/mdoc.Test/mdoc.Test.FSharp/Constraints.fs b/mdoc/mdoc.Test/mdoc.Test.FSharp/Constraints.fs index a80aed38..1f1c55b2 100644 --- a/mdoc/mdoc.Test/mdoc.Test.FSharp/Constraints.fs +++ b/mdoc/mdoc.Test/mdoc.Test.FSharp/Constraints.fs @@ -12,6 +12,10 @@ type Class2<'T when 'T :> System.IComparable>() = type Class2_1<'T when 'T :> System.IComparable and 'T :> System.Exception>() = class end +// Interface Type Constraint with recursion +type Class2_2<'T when 'T :> System.IComparable and 'T :> seq<'T>>() = + class end + // Null constraint type Class3<'T when 'T : null>() = class end |