File tree Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,13 @@ let rec private getIdentFromSynPat =
18
18
|> Some
19
19
| SynPat.Typed ( pat, _, _) -> getIdentFromSynPat pat
20
20
| _ -> None
21
+
22
+ let getErrorMessage ( ident : string ) ( range : range ) =
23
+ { Range = range
24
+ Message = String.Format( Resources.GetString " RulesCSharpFriendlyAsyncOverload" , ident)
25
+ SuggestedFix = None
26
+ TypeChecks = List.Empty }
27
+ |> Array.singleton
21
28
22
29
let runner ( args : AstNodeRuleParams ) =
23
30
let hasAsync ( syntaxArray : array < AbstractSyntaxArray.Node >) nodeIndex fnIdent =
@@ -46,14 +53,13 @@ let runner (args: AstNodeRuleParams) =
46
53
let idents = getIdentFromSynPat pattern
47
54
match idents with
48
55
| Some ident when not ( ident.EndsWith " Async" ) ->
49
- match hasAsync args.SyntaxArray args.NodeIndex ident with
50
- | Some _ -> Array.empty
51
- | None ->
52
- { Range = range
53
- Message = String.Format( Resources.GetString " RulesCSharpFriendlyAsyncOverload" , ident)
54
- SuggestedFix = None
55
- TypeChecks = List.Empty }
56
- |> Array.singleton
56
+ if ( ident.StartsWith " Async" ) then
57
+ match hasAsync args.SyntaxArray args.NodeIndex ( ident.Replace( " Async" , " " , StringComparison.Ordinal)) with
58
+ | Some _ -> Array.empty
59
+ | None ->
60
+ getErrorMessage ident range
61
+ else
62
+ getErrorMessage ident range
57
63
| _ -> Array.empty
58
64
| _ -> Array.empty
59
65
| _ -> Array.empty
Original file line number Diff line number Diff line change 346
346
<value >Consider using 'Array.empty' instead.</value >
347
347
</data >
348
348
<data name =" RulesCSharpFriendlyAsyncOverload" xml : space =" preserve" >
349
- <value >Consider using a C#- friendly async overload for {0}.</value >
349
+ <value >Async functions in F# should have the "Async" prefix and a C# friendly overload. Check these conventions for {0}.</value >
350
350
</data >
351
351
</root >
You can’t perform that action at this time.
0 commit comments