Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
cf4aa642
F
fsharp
项目概览
dotNET Platform
/
fsharp
11 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
cf4aa642
编写于
7月 13, 2022
作者:
F
Florian Verdonck
提交者:
GitHub
7月 13, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add trivia for SynTypeDefnSig. (#13483)
上级
441077d2
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
116 addition
and
27 deletion
+116
-27
src/Compiler/Checking/CheckDeclarations.fs
src/Compiler/Checking/CheckDeclarations.fs
+1
-1
src/Compiler/SyntaxTree/SyntaxTree.fs
src/Compiler/SyntaxTree/SyntaxTree.fs
+2
-3
src/Compiler/SyntaxTree/SyntaxTree.fsi
src/Compiler/SyntaxTree/SyntaxTree.fsi
+2
-3
src/Compiler/SyntaxTree/SyntaxTrivia.fs
src/Compiler/SyntaxTree/SyntaxTrivia.fs
+15
-0
src/Compiler/SyntaxTree/SyntaxTrivia.fsi
src/Compiler/SyntaxTree/SyntaxTrivia.fsi
+16
-0
src/Compiler/pars.fsy
src/Compiler/pars.fsy
+15
-10
tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected
...s/FSharp.CompilerService.SurfaceArea.netstandard.expected
+14
-5
tests/service/SyntaxTreeTests/SignatureTypeTests.fs
tests/service/SyntaxTreeTests/SignatureTypeTests.fs
+51
-5
未找到文件。
src/Compiler/Checking/CheckDeclarations.fs
浏览文件 @
cf4aa642
...
...
@@ -4523,7 +4523,7 @@ and TcSignatureElementsMutRec cenv parent typeNames m mutRecNSInfo envInitial (d
|
SynModuleSigDecl
.
Exception
(
exnSig
=
SynExceptionSig
(
exnRepr
=
exnRepr
;
withKeyword
=
withKeyword
;
members
=
members
))
->
let
(
SynExceptionDefnRepr
(
synAttrs
,
SynUnionCase
(
ident
=
SynIdent
(
id
,_)),
_,
xmlDoc
,
vis
,
m
))
=
exnRepr
let
compInfo
=
SynComponentInfo
(
synAttrs
,
None
,
[]
,
[
id
],
xmlDoc
,
false
,
vis
,
id
.
idRange
)
let
decls
=
[
MutRecShape
.
Tycon
(
SynTypeDefnSig
.
SynTypeDefnSig
(
compInfo
,
None
,
SynTypeDefnSigRepr
.
Exception
exnRepr
,
withKeyword
,
members
,
m
))
]
let
decls
=
[
MutRecShape
.
Tycon
(
SynTypeDefnSig
.
SynTypeDefnSig
(
compInfo
,
SynTypeDefnSigRepr
.
Exception
exnRepr
,
members
,
m
,
{
TypeKeyword
=
None
;
WithKeyword
=
withKeyword
;
EqualsRange
=
None
}
))
]
decls
,
(
false
,
false
)
|
SynModuleSigDecl
.
Val
(
vspec
,
_)
->
...
...
src/Compiler/SyntaxTree/SyntaxTree.fs
浏览文件 @
cf4aa642
...
...
@@ -1218,11 +1218,10 @@ type SynTypeDefnSig =
|
SynTypeDefnSig
of
typeInfo
:
SynComponentInfo
*
equalsRange
:
range
option
*
typeRepr
:
SynTypeDefnSigRepr
*
withKeyword
:
range
option
*
members
:
SynMemberSig
list
*
range
:
range
range
:
range
*
trivia
:
SynTypeDefnSigTrivia
member
this
.
Range
=
match
this
with
...
...
src/Compiler/SyntaxTree/SyntaxTree.fsi
浏览文件 @
cf4aa642
...
...
@@ -1383,11 +1383,10 @@ type SynTypeDefnSig =
/// The information for a type definition in a signature
|
SynTypeDefnSig
of
typeInfo
:
SynComponentInfo
*
equalsRange
:
range
option
*
typeRepr
:
SynTypeDefnSigRepr
*
withKeyword
:
range
option
*
members
:
SynMemberSig
list
*
range
:
range
range
:
range
*
trivia
:
SynTypeDefnSigTrivia
/// Gets the syntax range of this construct
member
Range
:
range
...
...
src/Compiler/SyntaxTree/SyntaxTrivia.fs
浏览文件 @
cf4aa642
...
...
@@ -137,6 +137,21 @@ type SynTypeDefnTrivia =
WithKeyword
=
None
}
[<
NoEquality
;
NoComparison
>]
type
SynTypeDefnSigTrivia
=
{
TypeKeyword
:
range
option
EqualsRange
:
range
option
WithKeyword
:
range
option
}
static
member
Zero
:
SynTypeDefnSigTrivia
=
{
TypeKeyword
=
None
EqualsRange
=
None
WithKeyword
=
None
}
[<
NoEquality
;
NoComparison
>]
type
SynBindingTrivia
=
{
...
...
src/Compiler/SyntaxTree/SyntaxTrivia.fsi
浏览文件 @
cf4aa642
...
...
@@ -215,6 +215,22 @@ type SynTypeDefnTrivia =
static
member
Zero
:
SynTypeDefnTrivia
/// Represents additional information for SynTypeDefnSig
[<
NoEquality
;
NoComparison
>]
type
SynTypeDefnSigTrivia
=
{
/// The syntax range of the `type` keyword.
TypeKeyword
:
range
option
/// The syntax range of the `=` token.
EqualsRange
:
range
option
/// The syntax range of the `with` keyword
WithKeyword
:
range
option
}
static
member
Zero
:
SynTypeDefnSigTrivia
/// Represents additional information for SynBinding
[<
NoEquality
;
NoComparison
>]
type
SynBindingTrivia
=
...
...
src/Compiler/pars.fsy
浏览文件 @
cf4aa642
...
...
@@ -826,7 +826,7 @@ moduleSpfn:
| opt_attributes opt_declVisibility typeKeyword tyconSpfn tyconSpfnList
{ if Option.isSome $2 then errorR (Error (FSComp.SR.parsVisibilityDeclarationsShouldComePriorToIdentifier (), rhs parseState 2))
let (SynTypeDefnSig (SynComponentInfo (cas, a, cs, b, _xmlDoc, d, d2, d3),
equalsRange, typeRepr, withKeyword, members, range
)) = $4
let (SynTypeDefnSig (SynComponentInfo (cas, a, cs, b, _xmlDoc, d, d2, d3),
typeRepr, members, range, trivia
)) = $4
_xmlDoc.MarkAsInvalid()
let attrs = $1 @ cas
let xmlDoc = grabXmlDoc(parseState, $1, 1)
...
...
@@ -834,7 +834,8 @@ moduleSpfn:
(d3, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range)
|> unionRanges range
|> unionRangeWithXmlDoc xmlDoc
let tc = SynTypeDefnSig(SynComponentInfo(attrs, a, cs, b, xmlDoc, d, d2, d3), equalsRange, typeRepr, withKeyword, members, mDefn)
let trivia = { trivia with TypeKeyword = Some (rhs parseState 3) }
let tc = (SynTypeDefnSig(SynComponentInfo(attrs, a, cs, b, xmlDoc, d, d2, d3), typeRepr, members, mDefn, trivia))
let m = (mDefn, $5) ||> unionRangeWithListBy (fun (a: SynTypeDefnSig) -> a.Range) |> unionRanges (rhs parseState 3)
SynModuleSigDecl.Types (tc :: $5, m) }
...
...
@@ -901,18 +902,18 @@ tyconSpfnList:
| AND tyconSpfn tyconSpfnList
{ let xmlDoc = grabXmlDoc(parseState, [], 1)
let tyconSpfn =
let (SynTypeDefnSig(componentInfo,
equalsRange, typeRepr, withKeyword, members, range
)) = $2
let (SynTypeDefnSig(componentInfo,
typeRepr, members, range, trivia
)) = $2
let (SynComponentInfo(a, typars, c, lid, _xmlDoc, fixity, vis, mLongId)) = componentInfo
if xmlDoc.IsEmpty then
if _xmlDoc.IsEmpty then $2 else
let range = unionRangeWithXmlDoc _xmlDoc range
SynTypeDefnSig(componentInfo,
equalsRange, typeRepr, withKeyword, members, range
)
SynTypeDefnSig(componentInfo,
typeRepr, members, range, trivia
)
else
_xmlDoc.MarkAsInvalid()
let range = unionRangeWithXmlDoc xmlDoc range
let componentInfo = SynComponentInfo (a, typars, c, lid, xmlDoc, fixity, vis, mLongId)
SynTypeDefnSig(componentInfo,
equalsRange, typeRepr, withKeyword, members, range
)
SynTypeDefnSig(componentInfo,
typeRepr, members, range, trivia
)
tyconSpfn :: $3 }
|
...
...
@@ -936,7 +937,8 @@ tyconSpfn:
| Some mWithKwd -> unionRanges range mWithKwd
| decls ->
(range, decls) ||> unionRangeWithListBy (fun (s: SynMemberSig) -> s.Range)
SynTypeDefnSig($1, None, SynTypeDefnSigRepr.Simple (SynTypeDefnSimpleRepr.None m, m), mWithKwd, members, m) }
let trivia: SynTypeDefnSigTrivia = { TypeKeyword = None; EqualsRange = None; WithKeyword = mWithKwd }
SynTypeDefnSig($1, SynTypeDefnSigRepr.Simple (SynTypeDefnSimpleRepr.None m, m), members, m, trivia) }
/* The right-hand-side of a type definition in a signature */
...
...
@@ -968,7 +970,8 @@ tyconSpfnRhs:
{ (fun mLhs nameInfo mEquals augmentation ->
let declRange = unionRanges mLhs $1.Range
let mWhole = (declRange, augmentation) ||> unionRangeWithListBy (fun (mem: SynMemberSig) -> mem.Range)
SynTypeDefnSig(nameInfo, mEquals, SynTypeDefnSigRepr.Simple ($1, $1.Range), None, augmentation, mWhole)) }
let trivia: SynTypeDefnSigTrivia = { TypeKeyword = None; WithKeyword = None; EqualsRange = mEquals }
SynTypeDefnSig(nameInfo, SynTypeDefnSigRepr.Simple ($1, $1.Range), augmentation, mWhole, trivia)) }
| tyconClassSpfn
{ let needsCheck, (kind, decls) = $1
...
...
@@ -985,7 +988,8 @@ tyconSpfnRhs:
let declRange = unionRanges nameRange objectModelRange
let mWhole = (declRange, augmentation) ||> unionRangeWithListBy (fun (mem: SynMemberSig) -> mem.Range)
SynTypeDefnSig(nameInfo, mEquals, SynTypeDefnSigRepr.ObjectModel (kind, decls, objectModelRange), None, augmentation, mWhole)) }
let trivia: SynTypeDefnSigTrivia = { TypeKeyword = None; WithKeyword = None; EqualsRange = mEquals }
SynTypeDefnSig(nameInfo, SynTypeDefnSigRepr.ObjectModel (kind, decls, objectModelRange), augmentation, mWhole, trivia)) }
| DELEGATE OF topType
{ let m = lhs parseState
...
...
@@ -994,7 +998,8 @@ tyconSpfnRhs:
(fun nameRange nameInfo mEquals augmentation ->
if not (isNil augmentation) then raiseParseErrorAt m (FSComp.SR.parsAugmentationsIllegalOnDelegateType())
let mWhole = unionRanges nameRange m
SynTypeDefnSig(nameInfo, mEquals, SynTypeDefnSigRepr.ObjectModel (SynTypeDefnKind.Delegate (ty, arity), [invoke], m), None, [], mWhole)) }
let trivia: SynTypeDefnSigTrivia = { TypeKeyword = None; WithKeyword = None; EqualsRange = mEquals }
SynTypeDefnSig(nameInfo, SynTypeDefnSigRepr.ObjectModel (SynTypeDefnKind.Delegate (ty, arity), [invoke], m), [], mWhole, trivia)) }
/* The right-hand-side of an object type definition in a signature */
...
...
@@ -1675,7 +1680,7 @@ tyconDefn:
let mWhole = (declRange, members)
||> unionRangeWithListBy (fun (mem:SynMemberDefn) -> mem.Range)
|> unionRangeWithXmlDoc xmlDoc
let trivia = { TypeKeyword = None; EqualsRange = Some mEquals; WithKeyword = mWith }
let trivia
: SynTypeDefnTrivia
= { TypeKeyword = None; EqualsRange = Some mEquals; WithKeyword = mWith }
SynTypeDefn($1, tcDefRepr, members, Some memberCtorPattern, mWhole, trivia) }
...
...
tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected
浏览文件 @
cf4aa642
...
...
@@ -8799,9 +8799,11 @@ FSharp.Compiler.Syntax.SynTypeDefnRepr: System.String ToString()
FSharp.Compiler.Syntax.SynTypeDefnSig
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynComponentInfo get_typeInfo()
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynComponentInfo typeInfo
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig NewSynTypeDefnSig(FSharp.Compiler.Syntax.SynComponentInfo,
Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], FSharp.Compiler.Syntax.SynTypeDefnSigRepr, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberSig], FSharp.Compiler.Text.Range
)
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig NewSynTypeDefnSig(FSharp.Compiler.Syntax.SynComponentInfo,
FSharp.Compiler.Syntax.SynTypeDefnSigRepr, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberSig], FSharp.Compiler.Text.Range, FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia
)
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSigRepr get_typeRepr()
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSigRepr typeRepr
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia get_trivia()
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia trivia
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Text.Range Range
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Text.Range get_Range()
FSharp.Compiler.Syntax.SynTypeDefnSig: FSharp.Compiler.Text.Range get_range()
...
...
@@ -8810,10 +8812,6 @@ FSharp.Compiler.Syntax.SynTypeDefnSig: Int32 Tag
FSharp.Compiler.Syntax.SynTypeDefnSig: Int32 get_Tag()
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberSig] get_members()
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberSig] members
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] equalsRange
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_equalsRange()
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_withKeyword()
FSharp.Compiler.Syntax.SynTypeDefnSig: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] withKeyword
FSharp.Compiler.Syntax.SynTypeDefnSig: System.String ToString()
FSharp.Compiler.Syntax.SynTypeDefnSigRepr
FSharp.Compiler.Syntax.SynTypeDefnSigRepr+Exception: FSharp.Compiler.Syntax.SynExceptionDefnRepr get_repr()
...
...
@@ -9457,6 +9455,17 @@ FSharp.Compiler.SyntaxTrivia.SynPatOrTrivia: FSharp.Compiler.Text.Range BarRange
FSharp.Compiler.SyntaxTrivia.SynPatOrTrivia: FSharp.Compiler.Text.Range get_BarRange()
FSharp.Compiler.SyntaxTrivia.SynPatOrTrivia: System.String ToString()
FSharp.Compiler.SyntaxTrivia.SynPatOrTrivia: Void .ctor(FSharp.Compiler.Text.Range)
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia Zero
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia get_Zero()
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] EqualsRange
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] TypeKeyword
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] WithKeyword
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_EqualsRange()
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_TypeKeyword()
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range] get_WithKeyword()
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: System.String ToString()
FSharp.Compiler.SyntaxTrivia.SynTypeDefnSigTrivia: Void .ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.Range])
FSharp.Compiler.SyntaxTrivia.SynTypeDefnTrivia
FSharp.Compiler.SyntaxTrivia.SynTypeDefnTrivia: FSharp.Compiler.SyntaxTrivia.SynTypeDefnTrivia Zero
FSharp.Compiler.SyntaxTrivia.SynTypeDefnTrivia: FSharp.Compiler.SyntaxTrivia.SynTypeDefnTrivia get_Zero()
...
...
tests/service/SyntaxTreeTests/SignatureTypeTests.fs
浏览文件 @
cf4aa642
...
...
@@ -173,7 +173,7 @@ type X = delegate of string -> string
match
parseResults
with
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=
[
SynModuleOrNamespaceSig
(
decls
=
[
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
equalsRange
=
Some
mEquals
types
=
[
SynTypeDefnSig
(
trivia
=
{
EqualsRange
=
Some
mEquals
}
typeRepr
=
SynTypeDefnSigRepr
.
ObjectModel
(
kind
=
SynTypeDefnKind
.
Delegate
_))
]
)
])
]))
->
...
...
@@ -195,7 +195,7 @@ type Foobar =
match
parseResults
with
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=
[
SynModuleOrNamespaceSig
(
decls
=
[
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
equalsRange
=
Some
mEquals
types
=
[
SynTypeDefnSig
(
trivia
=
{
EqualsRange
=
Some
mEquals
}
typeRepr
=
SynTypeDefnSigRepr
.
ObjectModel
(
kind
=
SynTypeDefnKind
.
Class
))
]
)
])
]))
->
...
...
@@ -217,7 +217,7 @@ type Bear =
match
parseResults
with
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=
[
SynModuleOrNamespaceSig
(
decls
=
[
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
equalsRange
=
Some
mEquals
types
=
[
SynTypeDefnSig
(
trivia
=
{
EqualsRange
=
Some
mEquals
}
typeRepr
=
SynTypeDefnSigRepr
.
Simple
(
repr
=
SynTypeDefnSimpleRepr
.
Enum
(
cases
=
[
SynEnumCase
(
trivia
={
EqualsRange
=
mEqualsEnumCase1
})
...
...
@@ -245,7 +245,7 @@ type Shape =
match
parseResults
with
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=
[
SynModuleOrNamespaceSig
(
decls
=
[
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
equalsRange
=
Some
mEquals
types
=
[
SynTypeDefnSig
(
trivia
=
{
EqualsRange
=
Some
mEquals
}
typeRepr
=
SynTypeDefnSigRepr
.
Simple
(
repr
=
SynTypeDefnSimpleRepr
.
Union
_))
]
)
])
]))
->
...
...
@@ -267,7 +267,7 @@ member Meh : unit -> unit
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=[
SynModuleOrNamespaceSig
(
decls
=[
SynModuleSigDecl
.
Types
(
types
=[
SynTypeDefnSig
(
typeRepr
=
SynTypeDefnSigRepr
.
Simple
_
withKeyword
=
Some
mWithKeyword
)
]
trivia
=
{
WithKeyword
=
Some
mWithKeyword
}
)
]
)
])
]))
->
assertRange
(
4
,
9
)
(
4
,
13
)
mWithKeyword
...
...
@@ -425,3 +425,49 @@ type X =
assertRange
(
5
,
19
)
(
5
,
20
)
mEquals
assertRange
(
5
,
4
)
(
5
,
23
)
mMember
|
_
->
Assert
.
Fail
"Could not get valid AST"
[<
Test
>]
let
``Trivia is present in SynTypeDefnSig``
()
=
let
parseResults
=
getParseResultsOfSignatureFile
"""
module Meh
type X =
member a : int = 10
/// Represents a line number when using zero-based line counting (used by Visual Studio)
#if CHECK_LINE0_TYPES
#else
type Y = int
#endif
type Z with
static member P : int -> int
"""
match
parseResults
with
|
ParsedInput
.
SigFile
(
ParsedSigFileInput
(
modules
=[
SynModuleOrNamespaceSig
(
decls
=[
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
trivia
=
{
TypeKeyword
=
Some
mType1
EqualsRange
=
Some
mEq1
WithKeyword
=
None
})
])
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
trivia
=
{
TypeKeyword
=
Some
mType2
EqualsRange
=
Some
mEq2
WithKeyword
=
None
})
])
SynModuleSigDecl
.
Types
(
types
=
[
SynTypeDefnSig
(
trivia
=
{
TypeKeyword
=
Some
mType3
EqualsRange
=
None
WithKeyword
=
Some
mWith3
})
])
]
)
]))
->
()
assertRange
(
4
,
0
)
(
4
,
4
)
mType1
assertRange
(
4
,
7
)
(
4
,
8
)
mEq1
assertRange
(
11
,
0
)
(
11
,
4
)
mType2
assertRange
(
11
,
7
)
(
11
,
8
)
mEq2
assertRange
(
14
,
0
)
(
14
,
4
)
mType3
assertRange
(
14
,
7
)
(
14
,
11
)
mWith3
|
_
->
Assert
.
Fail
$
"Could not get valid AST, got {parseResults}"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录