Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0a8adb6

Browse files
vasily-kirichenkoKevinRansom
authored andcommitted
Fix FSharpMemberOrFunctionOrValue.IsConstructor property for ctor definition (dotnet#3972)
* fix FSharpMemberOrFunctionOrValue.IsConstructor property for ctor definition* add a test
1 parenta7a6586 commit0a8adb6

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

‎src/fsharp/symbols/Symbols.fs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1796,6 +1796,7 @@ and FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) =
17961796
memberx.IsConstructor=
17971797
match dwith
17981798
| C_->true
1799+
| V v-> v.IsConstructor
17991800
|_->false
18001801

18011802
memberx.Data= d

‎tests/service/EditorTests.fs‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
letinput=
721+
"""
722+
type T(x: int) =
723+
new() = T(0)
724+
let x: T()
725+
"""
726+
letfile="/home/user/Test.fsx"
727+
let_,typeCheckResults= parseAndCheckScript(file, input)
728+
typeCheckResults.GetAllUsesOfAllSymbolsInFile()
729+
|> Async.RunSynchronously
730+
|> Array.map(fun su->
731+
letr= su.RangeAlternate
732+
letisConstructor=
733+
match su.Symbolwith
734+
|:? FSharpMemberOrFunctionOrValueas 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

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp