@@ -38,32 +38,35 @@ let private generateError (fileContents: string) (range:FSharp.Compiler.Text.Ran
3838 SuggestedFix = Some suggestedFix
3939 TypeChecks = List.Empty }
4040
41- let private runner ( args : AstNodeRuleParams ) =
42- match args.AstNode with
43- | AstNode.Expression ( SynExpr.Const ( SynConst.String ( " " , _, range), _) ) ->
41+ let rec private processExpression ( args : AstNodeRuleParams ) ( expression : SynExpr ) =
42+ match expression with
43+ | SynExpr.Const( SynConst.String ( " " , _, range), _) ->
4444 generateError args.FileContent range EmptyStringLiteral
45- | AstNode.Expression ( SynExpr.ArrayOrList ( isArray, [], range) ) ->
45+ | SynExpr.ArrayOrList ( isArray, [], range) ->
4646 let emptyLiteralType =
4747 if isArray then EmptyArrayLiteral else EmptyListLiteral
4848 generateError args.FileContent range emptyLiteralType
49- | AstNode.Expression( SynExpr.Record(_, _, synExprRecordField, _)) ->
49+ | SynExpr.App(_, _, _, argExpr, _) ->
50+ processExpression args argExpr
51+ | SynExpr.Record(_, _, synExprRecordFields, _) ->
5052 let mapping =
5153 function
5254 | SynExprRecordField(_, _, expr, _) ->
5355 match expr with
54- | Some( SynExpr.ArrayOrList( isArray, [], range)) ->
55- let emptyLiteralType = if isArray then EmptyArrayLiteral else EmptyListLiteral
56- generateError args.FileContent range emptyLiteralType
57- | Some( SynExpr.Const ( SynConst.String ( " " , _, range), _)) ->
58- generateError args.FileContent range EmptyStringLiteral
59- | Some( SynExpr.App(_, _, _, SynExpr.Const ( SynConst.String ( " " , _, range), _), _)) ->
60- generateError args.FileContent range EmptyStringLiteral
56+ | Some innerExpression ->
57+ processExpression args innerExpression
6158 | _ -> Array.empty
62- synExprRecordField
59+ synExprRecordFields
6360 |> List.map mapping
6461 |> Array.concat
6562 | _ -> Array.empty
6663
64+ let private runner ( args : AstNodeRuleParams ) =
65+ match args.AstNode with
66+ | AstNode.Expression( expr) ->
67+ processExpression args expr
68+ | _ -> Array.empty
69+
6770
6871let rule =
6972 AstNodeRule
0 commit comments