@@ -16,30 +16,35 @@ let runner (args: AstNodeRuleParams) =
1616 SuggestedFix = None
1717 TypeChecks = List.Empty
1818 } |> Array.singleton
19+
20+ let checkExpr ( expr : SynExpr ) =
21+ match expr with
22+ | SynExpr.App(_ exprAtomicFlag, _ isInfix, funcExpr, argExpr, _ range) ->
23+ match funcExpr with
24+ | ExpressionUtilities.Identifier([ ident ], _) ->
25+ if ident.idText = " op_PipeRight" then
26+ match argExpr with
27+ | SynExpr.App(_ exprAtomicFlag, _ isInfix, _ funcExpr, _ argExpr, _ range) ->
28+ Array.empty
29+ | SynExpr.IfThenElse _ ->
30+ Array.empty
31+ | _ ->
32+ errors ident.idRange
33+ else
34+ Array.empty
35+ | _ ->
36+ Array.empty
37+ | _ ->
38+ Array.empty
1939
2040 let error =
2141 match args.AstNode with
2242 | AstNode.Binding ( SynBinding(_ synAcc, _ synBinding, _ mustInline, _ isMut, _ synAttribs, _ preXmlDoc, _ synValData, _ headPat, _ synBindingRet, synExpr, _ range, _ debugPointAtBinding, _)) ->
2343 match synExpr with
2444 | SynExpr.App(_ exprAtomicFlag, _ isInfix, funcExpr, _ argExpr, _ range) ->
25- match funcExpr with
26- | SynExpr.App(_ exprAtomicFlag, _ isInfix, funcExpr, argExpr, _ range) ->
27- match funcExpr with
28- | ExpressionUtilities.Identifier([ ident ], _) ->
29- if ident.idText = " op_PipeRight" then
30- match argExpr with
31- | SynExpr.App(_ exprAtomicFlag, _ isInfix, _ funcExpr, _ argExpr, _ range) ->
32- Array.empty
33- | SynExpr.IfThenElse _ ->
34- Array.empty
35- | _ ->
36- errors ident.idRange
37- else
38- Array.empty
39- | _ ->
40- Array.empty
41- | _ ->
42- Array.empty
45+ checkExpr funcExpr
46+ | SynExpr.IfThenElse(_, SynExpr.App(_ exprAtomicFlag, _ isInfix, funcExpr, _ argExpr, _ range), _, _, _, _, _) ->
47+ checkExpr funcExpr
4348 | _ ->
4449 Array.empty
4550 | _ ->
0 commit comments