Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
41b6ed7c
F
fsharp
项目概览
dotNET Platform
/
fsharp
9 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
41b6ed7c
编写于
9月 06, 2023
作者:
F
Florian Verdonck
提交者:
GitHub
9月 06, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add VisitValSig to SyntaxVisitorBase. (#15930)
* Add VisitValSig to SyntaxVisitorBase.
上级
4185ee3e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
327 addition
and
1 deletion
+327
-1
src/Compiler/Service/ServiceParseTreeWalk.fs
src/Compiler/Service/ServiceParseTreeWalk.fs
+136
-1
src/Compiler/Service/ServiceParseTreeWalk.fsi
src/Compiler/Service/ServiceParseTreeWalk.fsi
+23
-0
tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl
...harp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl
+38
-0
tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl
...rp.Compiler.Service.SurfaceArea.netstandard20.release.bsl
+38
-0
tests/FSharp.Compiler.UnitTests/TreeVisitorTests.fs
tests/FSharp.Compiler.UnitTests/TreeVisitorTests.fs
+92
-0
未找到文件。
src/Compiler/Service/ServiceParseTreeWalk.fs
浏览文件 @
41b6ed7c
...
...
@@ -25,6 +25,11 @@ type SyntaxNode =
|
SynMemberDefn
of
SynMemberDefn
|
SynMatchClause
of
SynMatchClause
|
SynBinding
of
SynBinding
|
SynModuleOrNamespaceSig
of
SynModuleOrNamespaceSig
|
SynModuleSigDecl
of
SynModuleSigDecl
|
SynValSig
of
SynValSig
|
SynTypeDefnSig
of
SynTypeDefnSig
|
SynMemberSig
of
SynMemberSig
type
SyntaxVisitorPath
=
SyntaxNode
list
...
...
@@ -184,6 +189,28 @@ type SyntaxVisitorBase<'T>() =
ignore
(
path
,
attributes
)
None
/// VisitModuleOrNamespaceSig allows overriding behavior when visiting module or namespaces
abstract
VisitModuleOrNamespaceSig
:
path
:
SyntaxVisitorPath
*
synModuleOrNamespaceSig
:
SynModuleOrNamespaceSig
->
'
T
option
default
_.
VisitModuleOrNamespaceSig
(
path
,
synModuleOrNamespaceSig
)
=
ignore
(
path
,
synModuleOrNamespaceSig
)
None
/// VisitModuleDecl allows overriding signature module declaration behavior
abstract
VisitModuleSigDecl
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynModuleSigDecl
->
'
T
option
)
*
synModuleSigDecl
:
SynModuleSigDecl
->
'
T
option
default
_.
VisitModuleSigDecl
(
path
,
defaultTraverse
,
synModuleSigDecl
)
=
ignore
path
defaultTraverse
synModuleSigDecl
/// VisitValSig allows overriding SynValSig behavior
abstract
VisitValSig
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynValSig
->
'
T
option
)
*
valSig
:
SynValSig
->
'
T
option
default
_.
VisitValSig
(
path
,
defaultTraverse
,
valSig
)
=
ignore
path
defaultTraverse
valSig
/// A range of utility functions to assist with traversing an AST
module
SyntaxTraversal
=
// treat ranges as though they are half-open: [,)
...
...
@@ -926,6 +953,101 @@ module SyntaxTraversal =
attributes
|>
List
.
map
(
fun
attributes
->
dive
()
attributes
.
Range
(
fun
()
->
visitor
.
VisitAttributeApplication
(
origPath
,
attributes
)))
and
traverseSynModuleOrNamespaceSig
origPath
(
SynModuleOrNamespaceSig
(
decls
=
synModuleSigDecls
;
range
=
range
)
as
mors
)
=
match
visitor
.
VisitModuleOrNamespaceSig
(
origPath
,
mors
)
with
|
Some
x
->
Some
x
|
None
->
let
path
=
SyntaxNode
.
SynModuleOrNamespaceSig
mors
::
origPath
synModuleSigDecls
|>
List
.
map
(
fun
x
->
dive
x
x
.
Range
(
traverseSynModuleSigDecl
path
))
|>
pick
range
mors
and
traverseSynModuleSigDecl
origPath
(
decl
:
SynModuleSigDecl
)
=
let
pick
=
pick
decl
.
Range
let
defaultTraverse
m
=
let
path
=
SyntaxNode
.
SynModuleSigDecl
m
::
origPath
match
m
with
|
SynModuleSigDecl
.
ModuleAbbrev
(_
ident
,
_
longIdent
,
_
range
)
->
None
|
SynModuleSigDecl
.
NestedModule
(
moduleDecls
=
synModuleDecls
;
moduleInfo
=
SynComponentInfo
(
attributes
=
attributes
))
->
synModuleDecls
|>
List
.
map
(
fun
x
->
dive
x
x
.
Range
(
traverseSynModuleSigDecl
path
))
|>
List
.
append
(
attributeApplicationDives
path
attributes
)
|>
pick
decl
|
SynModuleSigDecl
.
Val
(
synValSig
,
range
)
->
[
dive
synValSig
range
(
traverseSynValSig
path
)
]
|>
pick
decl
|
SynModuleSigDecl
.
Types
(
types
=
types
;
range
=
range
)
->
types
|>
List
.
map
(
fun
t
->
dive
t
range
(
traverseSynTypeDefnSig
path
))
|>
pick
decl
|
SynModuleSigDecl
.
Exception
(_
synExceptionDefn
,
_
range
)
->
None
|
SynModuleSigDecl
.
Open
(_
target
,
_
range
)
->
None
|
SynModuleSigDecl
.
HashDirective
(
parsedHashDirective
,
range
)
->
visitor
.
VisitHashDirective
(
path
,
parsedHashDirective
,
range
)
|
SynModuleSigDecl
.
NamespaceFragment
synModuleOrNamespaceSig
->
traverseSynModuleOrNamespaceSig
path
synModuleOrNamespaceSig
visitor
.
VisitModuleSigDecl
(
origPath
,
defaultTraverse
,
decl
)
and
traverseSynValSig
origPath
(
valSig
:
SynValSig
)
=
let
defaultTraverse
(
SynValSig
(
synType
=
t
;
attributes
=
attributes
;
synExpr
=
expr
;
range
=
m
))
=
let
path
=
SyntaxNode
.
SynValSig
valSig
::
origPath
[
yield
!
attributeApplicationDives
path
attributes
yield
dive
t
t
.
Range
(
traverseSynType
path
)
match
expr
with
|
Some
expr
->
yield
dive
expr
expr
.
Range
(
traverseSynExpr
path
)
|
None
->
()
]
|>
pick
m
valSig
visitor
.
VisitValSig
(
origPath
,
defaultTraverse
,
valSig
)
and
traverseSynTypeDefnSig
origPath
(
SynTypeDefnSig
(
synComponentInfo
,
typeRepr
,
members
,
tRange
,
_)
as
tydef
)
=
let
path
=
SyntaxNode
.
SynTypeDefnSig
tydef
::
origPath
match
visitor
.
VisitComponentInfo
(
origPath
,
synComponentInfo
)
with
|
Some
x
->
Some
x
|
None
->
match
synComponentInfo
with
|
SynComponentInfo
(
attributes
=
attributes
)
->
[
yield
!
attributeApplicationDives
path
attributes
match
typeRepr
with
|
SynTypeDefnSigRepr
.
Exception
_
->
// This node is generated in CheckExpressions.fs, not in the AST.
// But note exception declarations are missing from this tree walk.
()
|
SynTypeDefnSigRepr
.
ObjectModel
(
memberSigs
=
memberSigs
)
->
yield
!
memberSigs
|>
List
.
map
(
fun
ms
->
dive
ms
ms
.
Range
(
traverseSynMemberSig
path
))
|
SynTypeDefnSigRepr
.
Simple
(
synTypeDefnSimpleRepr
,
_
range
)
->
match
synTypeDefnSimpleRepr
with
|
SynTypeDefnSimpleRepr
.
Record
(_
synAccessOption
,
fields
,
m
)
->
yield
dive
()
typeRepr
.
Range
(
fun
()
->
traverseRecordDefn
path
fields
m
)
|
SynTypeDefnSimpleRepr
.
Union
(_
synAccessOption
,
cases
,
m
)
->
yield
dive
()
typeRepr
.
Range
(
fun
()
->
traverseUnionDefn
path
cases
m
)
|
SynTypeDefnSimpleRepr
.
Enum
(
cases
,
m
)
->
yield
dive
()
typeRepr
.
Range
(
fun
()
->
traverseEnumDefn
path
cases
m
)
|
SynTypeDefnSimpleRepr
.
TypeAbbrev
(_,
synType
,
m
)
->
yield
dive
typeRepr
typeRepr
.
Range
(
fun
_
->
visitor
.
VisitTypeAbbrev
(
path
,
synType
,
m
))
|
_
->
()
yield
!
members
|>
List
.
map
(
fun
ms
->
dive
ms
ms
.
Range
(
traverseSynMemberSig
path
))
]
|>
pick
tRange
tydef
and
traverseSynMemberSig
path
(
m
:
SynMemberSig
)
=
let
path
=
SyntaxNode
.
SynMemberSig
m
::
path
match
m
with
|
SynMemberSig
.
Member
(
memberSig
=
memberSig
)
->
traverseSynValSig
path
memberSig
|
SynMemberSig
.
Interface
(
interfaceType
=
synType
)
->
traverseSynType
path
synType
|
SynMemberSig
.
Inherit
(
inheritedType
=
synType
)
->
traverseSynType
path
synType
|
SynMemberSig
.
ValField
(
field
=
SynField
(
attributes
=
attributes
))
->
attributeApplicationDives
path
attributes
|>
pick
m
.
Range
attributes
|
SynMemberSig
.
NestedType
(
nestedType
=
nestedType
)
->
traverseSynTypeDefnSig
path
nestedType
match
parseTree
with
|
ParsedInput
.
ImplFile
file
->
let
l
=
file
.
Contents
...
...
@@ -941,4 +1063,17 @@ module SyntaxTraversal =
l
|>
List
.
map
(
fun
x
->
dive
x
x
.
Range
(
traverseSynModuleOrNamespace
[]
))
|>
pick
fileRange
l
|
ParsedInput
.
SigFile
_
sigFile
->
None
|
ParsedInput
.
SigFile
sigFile
->
let
l
=
sigFile
.
Contents
let
fileRange
=
#
if
DEBUG
match
l
with
|
[]
->
range0
|
_
->
l
|>
List
.
map
(
fun
x
->
x
.
Range
)
|>
List
.
reduce
unionRanges
#
else
range0
// only used for asserting, does not matter in non-debug
#
endif
l
|>
List
.
map
(
fun
x
->
dive
x
x
.
Range
(
traverseSynModuleOrNamespaceSig
[]
))
|>
pick
fileRange
l
src/Compiler/Service/ServiceParseTreeWalk.fsi
浏览文件 @
41b6ed7c
...
...
@@ -17,6 +17,11 @@ type SyntaxNode =
|
SynMemberDefn
of
SynMemberDefn
|
SynMatchClause
of
SynMatchClause
|
SynBinding
of
SynBinding
|
SynModuleOrNamespaceSig
of
SynModuleOrNamespaceSig
|
SynModuleSigDecl
of
SynModuleSigDecl
|
SynValSig
of
SynValSig
|
SynTypeDefnSig
of
SynTypeDefnSig
|
SynMemberSig
of
SynMemberSig
type
SyntaxVisitorPath
=
SyntaxNode
list
...
...
@@ -151,6 +156,24 @@ type SyntaxVisitorBase<'T> =
abstract
VisitAttributeApplication
:
path
:
SyntaxVisitorPath
*
attributes
:
SynAttributeList
->
'
T
option
default
VisitAttributeApplication
:
path
:
SyntaxVisitorPath
*
attributes
:
SynAttributeList
->
'
T
option
abstract
VisitModuleOrNamespaceSig
:
path
:
SyntaxVisitorPath
*
synModuleOrNamespaceSig
:
SynModuleOrNamespaceSig
->
'
T
option
default
VisitModuleOrNamespaceSig
:
path
:
SyntaxVisitorPath
*
synModuleOrNamespaceSig
:
SynModuleOrNamespaceSig
->
'
T
option
abstract
VisitModuleSigDecl
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynModuleSigDecl
->
'
T
option
)
*
synModuleSigDecl
:
SynModuleSigDecl
->
'
T
option
default
VisitModuleSigDecl
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynModuleSigDecl
->
'
T
option
)
*
synModuleSigDecl
:
SynModuleSigDecl
->
'
T
option
abstract
VisitValSig
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynValSig
->
'
T
option
)
*
valSig
:
SynValSig
->
'
T
option
default
VisitValSig
:
path
:
SyntaxVisitorPath
*
defaultTraverse
:
(
SynValSig
->
'
T
option
)
*
valSig
:
SynValSig
->
'
T
option
module
public
SyntaxTraversal
=
val
internal
rangeContainsPosLeftEdgeInclusive
:
m1
:
range
->
p
:
pos
->
bool
...
...
tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl
浏览文件 @
41b6ed7c
...
...
@@ -9238,61 +9238,96 @@ FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause: FSharp.Compiler.Syntax.SynMatc
FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause: FSharp.Compiler.Syntax.SynMatchClause get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn: FSharp.Compiler.Syntax.SynMemberDefn Item
FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn: FSharp.Compiler.Syntax.SynMemberDefn get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig: FSharp.Compiler.Syntax.SynMemberSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig: FSharp.Compiler.Syntax.SynMemberSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModule: FSharp.Compiler.Syntax.SynModuleDecl Item
FSharp.Compiler.Syntax.SyntaxNode+SynModule: FSharp.Compiler.Syntax.SynModuleDecl get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace: FSharp.Compiler.Syntax.SynModuleOrNamespace Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace: FSharp.Compiler.Syntax.SynModuleOrNamespace get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig: FSharp.Compiler.Syntax.SynModuleOrNamespaceSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig: FSharp.Compiler.Syntax.SynModuleOrNamespaceSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl: FSharp.Compiler.Syntax.SynModuleSigDecl Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl: FSharp.Compiler.Syntax.SynModuleSigDecl get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynPat: FSharp.Compiler.Syntax.SynPat Item
FSharp.Compiler.Syntax.SyntaxNode+SynPat: FSharp.Compiler.Syntax.SynPat get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynType: FSharp.Compiler.Syntax.SynType Item
FSharp.Compiler.Syntax.SyntaxNode+SynType: FSharp.Compiler.Syntax.SynType get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn: FSharp.Compiler.Syntax.SynTypeDefn Item
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn: FSharp.Compiler.Syntax.SynTypeDefn get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynValSig: FSharp.Compiler.Syntax.SynValSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynValSig: FSharp.Compiler.Syntax.SynValSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynBinding
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynExpr
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMatchClause
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMemberSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModule
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynPat
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynType
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynValSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynBinding
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynExpr
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMatchClause
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMemberSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModule
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynPat
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynType
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynValSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynBinding()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynExpr()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMatchClause()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMemberDefn()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMemberSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModule()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleOrNamespace()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleOrNamespaceSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleSigDecl()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynPat()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynType()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynTypeDefn()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynTypeDefnSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynValSig()
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynBinding(FSharp.Compiler.Syntax.SynBinding)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynExpr(FSharp.Compiler.Syntax.SynExpr)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMatchClause(FSharp.Compiler.Syntax.SynMatchClause)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMemberDefn(FSharp.Compiler.Syntax.SynMemberDefn)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMemberSig(FSharp.Compiler.Syntax.SynMemberSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModule(FSharp.Compiler.Syntax.SynModuleDecl)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleOrNamespace(FSharp.Compiler.Syntax.SynModuleOrNamespace)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleOrNamespaceSig(FSharp.Compiler.Syntax.SynModuleOrNamespaceSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleSigDecl(FSharp.Compiler.Syntax.SynModuleSigDecl)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynPat(FSharp.Compiler.Syntax.SynPat)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynType(FSharp.Compiler.Syntax.SynType)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynTypeDefn(FSharp.Compiler.Syntax.SynTypeDefn)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynTypeDefnSig(FSharp.Compiler.Syntax.SynTypeDefnSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynValSig(FSharp.Compiler.Syntax.SynValSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynBinding
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynExpr
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModule
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynPat
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynType
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynValSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+Tags
FSharp.Compiler.Syntax.SyntaxNode: Int32 Tag
FSharp.Compiler.Syntax.SyntaxNode: Int32 get_Tag()
...
...
@@ -9311,6 +9346,8 @@ FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOptio
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitMatchClause(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMatchClause,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynMatchClause)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleDecl(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynModuleDecl,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynModuleDecl)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleOrNamespace(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynModuleOrNamespace)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleOrNamespaceSig(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynModuleOrNamespaceSig)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleSigDecl(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynModuleSigDecl,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynModuleSigDecl)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitPat(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynPat,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynPat)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitRecordDefn(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynField], FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitRecordField(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynExpr], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynLongIdent])
...
...
@@ -9318,6 +9355,7 @@ FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOptio
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitType(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynType,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynType)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitTypeAbbrev(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynType, FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitUnionDefn(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynUnionCase], FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitValSig(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynValSig,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynValSig)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Void .ctor()
FSharp.Compiler.Syntax.TyparStaticReq+Tags: Int32 HeadType
FSharp.Compiler.Syntax.TyparStaticReq+Tags: Int32 None
tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl
浏览文件 @
41b6ed7c
...
...
@@ -9238,61 +9238,96 @@ FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause: FSharp.Compiler.Syntax.SynMatc
FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause: FSharp.Compiler.Syntax.SynMatchClause get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn: FSharp.Compiler.Syntax.SynMemberDefn Item
FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn: FSharp.Compiler.Syntax.SynMemberDefn get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig: FSharp.Compiler.Syntax.SynMemberSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig: FSharp.Compiler.Syntax.SynMemberSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModule: FSharp.Compiler.Syntax.SynModuleDecl Item
FSharp.Compiler.Syntax.SyntaxNode+SynModule: FSharp.Compiler.Syntax.SynModuleDecl get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace: FSharp.Compiler.Syntax.SynModuleOrNamespace Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace: FSharp.Compiler.Syntax.SynModuleOrNamespace get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig: FSharp.Compiler.Syntax.SynModuleOrNamespaceSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig: FSharp.Compiler.Syntax.SynModuleOrNamespaceSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl: FSharp.Compiler.Syntax.SynModuleSigDecl Item
FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl: FSharp.Compiler.Syntax.SynModuleSigDecl get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynPat: FSharp.Compiler.Syntax.SynPat Item
FSharp.Compiler.Syntax.SyntaxNode+SynPat: FSharp.Compiler.Syntax.SynPat get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynType: FSharp.Compiler.Syntax.SynType Item
FSharp.Compiler.Syntax.SyntaxNode+SynType: FSharp.Compiler.Syntax.SynType get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn: FSharp.Compiler.Syntax.SynTypeDefn Item
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn: FSharp.Compiler.Syntax.SynTypeDefn get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig: FSharp.Compiler.Syntax.SynTypeDefnSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+SynValSig: FSharp.Compiler.Syntax.SynValSig Item
FSharp.Compiler.Syntax.SyntaxNode+SynValSig: FSharp.Compiler.Syntax.SynValSig get_Item()
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynBinding
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynExpr
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMatchClause
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynMemberSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModule
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynPat
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynType
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode+Tags: Int32 SynValSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynBinding
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynExpr
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMatchClause
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynMemberSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModule
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynPat
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynType
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean IsSynValSig
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynBinding()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynExpr()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMatchClause()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMemberDefn()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynMemberSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModule()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleOrNamespace()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleOrNamespaceSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynModuleSigDecl()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynPat()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynType()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynTypeDefn()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynTypeDefnSig()
FSharp.Compiler.Syntax.SyntaxNode: Boolean get_IsSynValSig()
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynBinding(FSharp.Compiler.Syntax.SynBinding)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynExpr(FSharp.Compiler.Syntax.SynExpr)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMatchClause(FSharp.Compiler.Syntax.SynMatchClause)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMemberDefn(FSharp.Compiler.Syntax.SynMemberDefn)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynMemberSig(FSharp.Compiler.Syntax.SynMemberSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModule(FSharp.Compiler.Syntax.SynModuleDecl)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleOrNamespace(FSharp.Compiler.Syntax.SynModuleOrNamespace)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleOrNamespaceSig(FSharp.Compiler.Syntax.SynModuleOrNamespaceSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynModuleSigDecl(FSharp.Compiler.Syntax.SynModuleSigDecl)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynPat(FSharp.Compiler.Syntax.SynPat)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynType(FSharp.Compiler.Syntax.SynType)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynTypeDefn(FSharp.Compiler.Syntax.SynTypeDefn)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynTypeDefnSig(FSharp.Compiler.Syntax.SynTypeDefnSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode NewSynValSig(FSharp.Compiler.Syntax.SynValSig)
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynBinding
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynExpr
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMatchClause
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMemberDefn
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynMemberSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModule
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespace
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleOrNamespaceSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynModuleSigDecl
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynPat
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynType
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefn
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynTypeDefnSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+SynValSig
FSharp.Compiler.Syntax.SyntaxNode: FSharp.Compiler.Syntax.SyntaxNode+Tags
FSharp.Compiler.Syntax.SyntaxNode: Int32 Tag
FSharp.Compiler.Syntax.SyntaxNode: Int32 get_Tag()
...
...
@@ -9311,6 +9346,8 @@ FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOptio
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitMatchClause(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMatchClause,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynMatchClause)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleDecl(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynModuleDecl,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynModuleDecl)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleOrNamespace(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynModuleOrNamespace)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleOrNamespaceSig(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynModuleOrNamespaceSig)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitModuleSigDecl(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynModuleSigDecl,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynModuleSigDecl)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitPat(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynPat,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynPat)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitRecordDefn(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynField], FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitRecordField(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynExpr], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynLongIdent])
...
...
@@ -9318,6 +9355,7 @@ FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOptio
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitType(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynType,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynType)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitTypeAbbrev(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], FSharp.Compiler.Syntax.SynType, FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitUnionDefn(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynUnionCase], FSharp.Compiler.Text.Range)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Microsoft.FSharp.Core.FSharpOption`1[T] VisitValSig(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SyntaxNode], Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynValSig,Microsoft.FSharp.Core.FSharpOption`1[T]], FSharp.Compiler.Syntax.SynValSig)
FSharp.Compiler.Syntax.SyntaxVisitorBase`1[T]: Void .ctor()
FSharp.Compiler.Syntax.TyparStaticReq+Tags: Int32 HeadType
FSharp.Compiler.Syntax.TyparStaticReq+Tags: Int32 None
tests/FSharp.Compiler.UnitTests/TreeVisitorTests.fs
浏览文件 @
41b6ed7c
...
...
@@ -75,3 +75,95 @@ let ``Visit recursive let binding`` () =
match
SyntaxTraversal
.
Traverse
(
pos0
,
parseTree
,
visitor
)
with
|
Some
[
SynBinding
(
valData
=
SynValData
(
valInfo
=
SynValInfo
(
curriedArgInfos
=
[
[
SynArgInfo
(
ident
=
Some
id
)
]
])))
]
when
id
.
idText
=
"n"
->
()
|
_
->
failwith
"Did not visit recursive let binding"
[<
Fact
>]
let
``Visit ValSig``
()
=
let
visitor
=
{
new
SyntaxVisitorBase
<_>()
with
member
x
.
VisitValSig
(
path
,
defaultTraverse
,
SynValSig
(
ident
=
SynIdent
(
ident
=
valIdent
)))
=
Some
valIdent
.
idText
}
let
source
=
"""
module X
val y: int -> int
"""
let
parseTree
=
parseSourceCode
(
"C:
\\
test.fsi"
,
source
)
match
SyntaxTraversal
.
Traverse
(
pos0
,
parseTree
,
visitor
)
with
|
Some
"y"
->
()
|
_
->
failwith
"Did not visit SynValSig"
[<
Fact
>]
let
``Visit nested ValSig``
()
=
let
visitor
=
{
new
SyntaxVisitorBase
<_>()
with
member
x
.
VisitValSig
(
path
,
defaultTraverse
,
SynValSig
(
ident
=
SynIdent
(
ident
=
valIdent
)))
=
Some
valIdent
.
idText
}
let
source
=
"""
module X
module Y =
val z: int -> int
"""
let
parseTree
=
parseSourceCode
(
"C:
\\
test.fsi"
,
source
)
match
SyntaxTraversal
.
Traverse
(
pos0
,
parseTree
,
visitor
)
with
|
Some
"z"
->
()
|
_
->
failwith
"Did not visit SynValSig"
[<
Fact
>]
let
``Visit Record in SynTypeDefnSig``
()
=
let
visitor
=
{
new
SyntaxVisitorBase
<_>()
with
member
x
.
VisitRecordDefn
(
path
,
fields
,
range
)
=
fields
|>
List
.
choose
(
fun
(
SynField
(
idOpt
=
idOpt
))
->
idOpt
|>
Option
.
map
(
fun
ident
->
ident
.
idText
))
|>
String
.
concat
","
|>
Some
}
let
source
=
"""
module X
type Y =
{
A: int
B: char
C: string
}
"""
let
parseTree
=
parseSourceCode
(
"C:
\\
test.fsi"
,
source
)
match
SyntaxTraversal
.
Traverse
(
pos0
,
parseTree
,
visitor
)
with
|
Some
"A,B,C"
->
()
|
_
->
failwith
"Did not visit SynTypeDefnSimpleRepr.Record in SynTypeDefnSig"
[<
Fact
>]
let
``Visit SynValSig in SynMemberSig``
()
=
let
visitor
=
{
new
SyntaxVisitorBase
<_>()
with
member
x
.
VisitValSig
(
path
,
defaultTraverse
,
SynValSig
(
ident
=
SynIdent
(
ident
=
valIdent
)))
=
Some
valIdent
.
idText
}
let
source
=
"""
module Lib
type Meh =
new: unit -> Meh
member Foo: y: int -> int
"""
let
parseTree
=
parseSourceCode
(
"C:
\\
test.fsi"
,
source
)
let
pos
=
mkPos
6
4
match
SyntaxTraversal
.
Traverse
(
pos
,
parseTree
,
visitor
)
with
|
Some
"Foo"
->
()
|
_
->
failwith
"Did not visit SynValSig in SynMemberSig.Member"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录