Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
92b2b5db
F
fsharp
项目概览
dotNET Platform
/
fsharp
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
未验证
提交
92b2b5db
编写于
11月 23, 2022
作者:
P
Petr
提交者:
GitHub
11月 23, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extra tests for inline type hints (#14374)
* Tests * Update InlineParameterNameHints.fs
上级
43f2fc00
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
40 addition
and
7 deletion
+40
-7
src/Compiler/Service/ServiceParseTreeWalk.fs
src/Compiler/Service/ServiceParseTreeWalk.fs
+2
-4
vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs
...ation/src/FSharp.Editor/Hints/InlineParameterNameHints.fs
+0
-3
vsintegration/tests/FSharp.Editor.Tests/Hints/InlineTypeHintTests.fs
...on/tests/FSharp.Editor.Tests/Hints/InlineTypeHintTests.fs
+38
-0
未找到文件。
src/Compiler/Service/ServiceParseTreeWalk.fs
浏览文件 @
92b2b5db
...
...
@@ -260,12 +260,10 @@ module SyntaxTraversal =
|
[
x
]
->
x
()
|
_
->
#
if
DEBUG
assert
false
failwithf
"multiple disjoint AST node ranges claimed to contain (%A) from %+A"
pos
debugObj
#
else
printf
"multiple disjoint AST node ranges claimed to contain (%A) from %+A"
pos
debugObj
#
endif
ignore
debugObj
None
#
endif
/// traverse an implementation file walking all the way down to SynExpr or TypeAbbrev at a particular location
///
...
...
vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs
浏览文件 @
92b2b5db
...
...
@@ -31,9 +31,7 @@ module InlineParameterNameHints =
not
field
.
IsNameGenerated
let
isMemberOrFunctionOrValueValidForHint
(
symbol
:
FSharpMemberOrFunctionOrValue
)
(
symbolUse
:
FSharpSymbolUse
)
=
// make sure we're looking at a call site and not the definition
if
symbolUse
.
IsFromUse
then
// is there a better way?
let
isNotBuiltInOperator
=
symbol
.
DeclaringEntity
|>
Option
.
exists
(
fun
entity
->
entity
.
CompiledName
<>
"Operators"
)
...
...
@@ -45,7 +43,6 @@ module InlineParameterNameHints =
false
let
isUnionCaseValidForHint
(
symbol
:
FSharpUnionCase
)
(
symbolUse
:
FSharpSymbolUse
)
=
// is the union case being used as a constructor and is it not Cons
symbolUse
.
IsFromUse
&&
symbol
.
DisplayName
<>
"(::)"
...
...
vsintegration/tests/FSharp.Editor.Tests/Hints/InlineTypeHintTests.fs
浏览文件 @
92b2b5db
...
...
@@ -145,3 +145,41 @@ type Song() as x =
let
result
=
getTypeHints
document
Assert
.
IsEmpty
(
result
)
[<
Test
>]
let
``Hints are shown for lambdas``
()
=
let
code
=
"""
let iamboring() =
fun x -> x
"""
let
document
=
getFsDocument
code
let
expected
=
[
{
Content
=
": 'a"
;
Location
=
(
2
,
10
)
}
]
let
actual
=
getTypeHints
document
Assert
.
AreEqual
(
expected
,
actual
)
[<
Test
>]
let
``Hints are shown for lambdas with tuples``
()
=
let
code
=
"""
let zip4 (l1: 'a list) (l2: 'b list) (l3: 'c list) (l4: 'd list) =
List.zip l1 (List.zip3 l2 l3 l4)
|> List.map (fun (x1, (x2, x3, x4)) -> (x1, x2, x3, x4))
"""
let
document
=
getFsDocument
code
let
expected
=
[
{
Content
=
": 'a"
;
Location
=
(
3
,
25
)
}
{
Content
=
": 'b"
;
Location
=
(
3
,
30
)
}
{
Content
=
": 'c"
;
Location
=
(
3
,
34
)
}
{
Content
=
": 'd"
;
Location
=
(
3
,
38
)
}
]
let
actual
=
getTypeHints
document
CollectionAssert
.
AreEquivalent
(
expected
,
actual
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录