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 =
1818 |> Some
1919 | SynPat.Typed ( pat, _, _) -> getIdentFromSynPat pat
2020 | _ -> 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
2128
2229let runner ( args : AstNodeRuleParams ) =
2330 let hasAsync ( syntaxArray : array < AbstractSyntaxArray.Node >) nodeIndex fnIdent =
@@ -46,14 +53,13 @@ let runner (args: AstNodeRuleParams) =
4653 let idents = getIdentFromSynPat pattern
4754 match idents with
4855 | 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
5763 | _ -> Array.empty
5864 | _ -> Array.empty
5965 | _ -> Array.empty
Original file line number Diff line number Diff line change 346346 <value >Consider using 'Array.empty' instead.</value >
347347 </data >
348348 <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 >
350350 </data >
351351</root >
You can’t perform that action at this time.
0 commit comments