@@ -715,6 +715,37 @@ type Class1() =
715715 ( " member .cctor" , ( 10 , 5 , 10 , 11 ))
716716 ( " Test" , ( 1 , 0 , 1 , 0 ))|]
717717
718+ [<Test>]
719+ let ``IsConstructor property should return true for constructors`` () =
720+ let input =
721+ """
722+ type T(x: int) =
723+ new() = T(0)
724+ let x: T()
725+ """
726+ let file = " /home/user/Test.fsx"
727+ let _ , typeCheckResults = parseAndCheckScript( file, input)
728+ typeCheckResults.GetAllUsesOfAllSymbolsInFile()
729+ |> Async.RunSynchronously
730+ |> Array.map ( fun su ->
731+ let r = su.RangeAlternate
732+ let isConstructor =
733+ match su.Symbol with
734+ | :? FSharpMemberOrFunctionOrValue as f -> f.IsConstructor
735+ | _ -> false
736+ su.Symbol.ToString(), ( r.StartLine, r.StartColumn, r.EndLine, r.EndColumn), isConstructor)
737+ |> Array.distinct
738+ |> shouldEqual
739+ [|( " T" , ( 2 , 5 , 2 , 6 ), false )
740+ ( " int" , ( 2 , 10 , 2 , 13 ), false )
741+ ( " val x" , ( 2 , 7 , 2 , 8 ), false )
742+ ( " member .ctor" , ( 2 , 5 , 2 , 6 ), true )
743+ ( " member .ctor" , ( 3 , 4 , 3 , 7 ), true )
744+ ( " member .ctor" , ( 3 , 12 , 3 , 13 ), true )
745+ ( " T" , ( 4 , 7 , 4 , 8 ), false )
746+ ( " val x" , ( 4 , 4 , 4 , 5 ), false )
747+ ( " Test" , ( 1 , 0 , 1 , 0 ), false )|]
748+
718749//-------------------------------------------------------------------------------
719750
720751
0 commit comments