diff --git a/CHANGELOG.md b/CHANGELOG.md index fa83149..3255beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ Notable changes are recorded here. +# WoofWare.Myriad.Plugins 6.0.1 + +The `ArgParser` generator's type signatures have changed. +The `parse'` method no longer takes `getEnvironmentVariable : string -> string`; it's now `getEnvironmentVariable : string -> string option`. +This is to permit satisfying the `enable` compiler setting. +If you're calling `parse'`, give it `Environment.GetEnvironmentVariable >> Option.ofObj` instead. + # WoofWare.Myriad.Plugins 5.0.1 We now enforce non-nullability on more types during JSON parse. diff --git a/ConsumePlugin/GeneratedArgs.fs b/ConsumePlugin/GeneratedArgs.fs index 7a0752f..4114cd8 100644 --- a/ConsumePlugin/GeneratedArgs.fs +++ b/ConsumePlugin/GeneratedArgs.fs @@ -23,7 +23,7 @@ module BasicNoPositionals = /// Waiting to receive a value for the key we've already consumed | AwaitingValue of key : string - let parse' (getEnvironmentVariable : string -> string) (args : string list) : BasicNoPositionals = + let parse' (getEnvironmentVariable : string -> string option) (args : string list) : BasicNoPositionals = let ArgParser_errors = ResizeArray () let helpText () = @@ -223,7 +223,7 @@ module BasicNoPositionals = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" let parse (args : string list) : BasicNoPositionals = - parse' System.Environment.GetEnvironmentVariable args + parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -239,7 +239,7 @@ module Basic = /// Waiting to receive a value for the key we've already consumed | AwaitingValue of key : string - let parse' (getEnvironmentVariable : string -> string) (args : string list) : Basic = + let parse' (getEnvironmentVariable : string -> string option) (args : string list) : Basic = let ArgParser_errors = ResizeArray () let helpText () = @@ -430,7 +430,7 @@ module Basic = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" let parse (args : string list) : Basic = - parse' System.Environment.GetEnvironmentVariable args + parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -446,7 +446,7 @@ module BasicWithIntPositionals = /// Waiting to receive a value for the key we've already consumed | AwaitingValue of key : string - let parse' (getEnvironmentVariable : string -> string) (args : string list) : BasicWithIntPositionals = + let parse' (getEnvironmentVariable : string -> string option) (args : string list) : BasicWithIntPositionals = let ArgParser_errors = ResizeArray () let helpText () = @@ -633,7 +633,7 @@ module BasicWithIntPositionals = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" let parse (args : string list) : BasicWithIntPositionals = - parse' System.Environment.GetEnvironmentVariable args + parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -649,7 +649,7 @@ module LoadsOfTypes = /// Waiting to receive a value for the key we've already consumed | AwaitingValue of key : string - let parse' (getEnvironmentVariable : string -> string) (args : string list) : LoadsOfTypes = + let parse' (getEnvironmentVariable : string -> string option) (args : string list) : LoadsOfTypes = let ArgParser_errors = ResizeArray () let helpText () = @@ -1038,7 +1038,7 @@ module LoadsOfTypes = match arg_10 with | None -> match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with - | null -> + | None -> sprintf "No value was supplied for %s, nor was environment variable %s set" (sprintf "--%s" "yet-another-optional-thing") @@ -1046,7 +1046,7 @@ module LoadsOfTypes = |> ArgParser_errors.Add Unchecked.defaultof<_> - | x -> x |> (fun x -> x) + | Some x -> x |> (fun x -> x) |> Choice2Of2 | Some x -> Choice1Of2 x @@ -1068,7 +1068,7 @@ module LoadsOfTypes = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" let parse (args : string list) : LoadsOfTypes = - parse' System.Environment.GetEnvironmentVariable args + parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -1084,7 +1084,7 @@ module LoadsOfTypesNoPositionals = /// Waiting to receive a value for the key we've already consumed | AwaitingValue of key : string - let parse' (getEnvironmentVariable : string -> string) (args : string list) : LoadsOfTypesNoPositionals = + let parse' (getEnvironmentVariable : string -> string option) (args : string list) : LoadsOfTypesNoPositionals = let ArgParser_errors = ResizeArray () let helpText () = @@ -1476,7 +1476,7 @@ module LoadsOfTypesNoPositionals = match arg_9 with | None -> match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with - | null -> + | None -> sprintf "No value was supplied for %s, nor was environment variable %s set" (sprintf "--%s" "yet-another-optional-thing") @@ -1484,7 +1484,7 @@ module LoadsOfTypesNoPositionals = |> ArgParser_errors.Add Unchecked.defaultof<_> - | x -> x |> (fun x -> x) + | Some x -> x |> (fun x -> x) |> Choice2Of2 | Some x -> Choice1Of2 x @@ -1505,7 +1505,7 @@ module LoadsOfTypesNoPositionals = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" let parse (args : string list) : LoadsOfTypesNoPositionals = - parse' System.Environment.GetEnvironmentVariable args + parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -1524,7 +1524,7 @@ module DatesAndTimesArgParse = /// Extension methods for argument parsing type DatesAndTimes with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : DatesAndTimes = + static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : DatesAndTimes = let ArgParser_errors = ResizeArray () let helpText () = @@ -1787,7 +1787,7 @@ module DatesAndTimesArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : DatesAndTimes = - DatesAndTimes.parse' System.Environment.GetEnvironmentVariable args + DatesAndTimes.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -1806,7 +1806,7 @@ module ParentRecordArgParse = /// Extension methods for argument parsing type ParentRecord with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecord = + static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : ParentRecord = let ArgParser_errors = ResizeArray () let helpText () = @@ -2016,7 +2016,7 @@ module ParentRecordArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ParentRecord = - ParentRecord.parse' System.Environment.GetEnvironmentVariable args + ParentRecord.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2035,7 +2035,11 @@ module ParentRecordChildPosArgParse = /// Extension methods for argument parsing type ParentRecordChildPos with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecordChildPos = + static member parse' + (getEnvironmentVariable : string -> string option) + (args : string list) + : ParentRecordChildPos + = let ArgParser_errors = ResizeArray () let helpText () = @@ -2209,7 +2213,7 @@ module ParentRecordChildPosArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ParentRecordChildPos = - ParentRecordChildPos.parse' System.Environment.GetEnvironmentVariable args + ParentRecordChildPos.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2228,7 +2232,11 @@ module ParentRecordSelfPosArgParse = /// Extension methods for argument parsing type ParentRecordSelfPos with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ParentRecordSelfPos = + static member parse' + (getEnvironmentVariable : string -> string option) + (args : string list) + : ParentRecordSelfPos + = let ArgParser_errors = ResizeArray () let helpText () = @@ -2388,7 +2396,7 @@ module ParentRecordSelfPosArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ParentRecordSelfPos = - ParentRecordSelfPos.parse' System.Environment.GetEnvironmentVariable args + ParentRecordSelfPos.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2407,7 +2415,11 @@ module ChoicePositionalsArgParse = /// Extension methods for argument parsing type ChoicePositionals with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ChoicePositionals = + static member parse' + (getEnvironmentVariable : string -> string option) + (args : string list) + : ChoicePositionals + = let ArgParser_errors = ResizeArray () let helpText () = @@ -2502,7 +2514,7 @@ module ChoicePositionalsArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ChoicePositionals = - ChoicePositionals.parse' System.Environment.GetEnvironmentVariable args + ChoicePositionals.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2521,7 +2533,11 @@ module ContainsBoolEnvVarArgParse = /// Extension methods for argument parsing type ContainsBoolEnvVar with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ContainsBoolEnvVar = + static member parse' + (getEnvironmentVariable : string -> string option) + (args : string list) + : ContainsBoolEnvVar + = let ArgParser_errors = ResizeArray () let helpText () = @@ -2653,7 +2669,7 @@ module ContainsBoolEnvVarArgParse = match arg_0 with | None -> match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with - | null -> + | None -> sprintf "No value was supplied for %s, nor was environment variable %s set" (sprintf "--%s" "bool-var") @@ -2661,7 +2677,7 @@ module ContainsBoolEnvVarArgParse = |> ArgParser_errors.Add Unchecked.defaultof<_> - | x -> + | Some x -> if System.String.Equals (x, "1", System.StringComparison.OrdinalIgnoreCase) then true else if System.String.Equals (x, "0", System.StringComparison.OrdinalIgnoreCase) then @@ -2679,7 +2695,7 @@ module ContainsBoolEnvVarArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ContainsBoolEnvVar = - ContainsBoolEnvVar.parse' System.Environment.GetEnvironmentVariable args + ContainsBoolEnvVar.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2698,7 +2714,7 @@ module WithFlagDuArgParse = /// Extension methods for argument parsing type WithFlagDu with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : WithFlagDu = + static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : WithFlagDu = let ArgParser_errors = ResizeArray () let helpText () = @@ -2852,7 +2868,7 @@ module WithFlagDuArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : WithFlagDu = - WithFlagDu.parse' System.Environment.GetEnvironmentVariable args + WithFlagDu.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -2871,7 +2887,11 @@ module ContainsFlagEnvVarArgParse = /// Extension methods for argument parsing type ContainsFlagEnvVar with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ContainsFlagEnvVar = + static member parse' + (getEnvironmentVariable : string -> string option) + (args : string list) + : ContainsFlagEnvVar + = let ArgParser_errors = ResizeArray () let helpText () = @@ -3018,7 +3038,7 @@ module ContainsFlagEnvVarArgParse = match arg_0 with | None -> match "CONSUMEPLUGIN_THINGS" |> getEnvironmentVariable with - | null -> + | None -> sprintf "No value was supplied for %s, nor was environment variable %s set" (sprintf "--%s" "dry-run") @@ -3026,7 +3046,7 @@ module ContainsFlagEnvVarArgParse = |> ArgParser_errors.Add Unchecked.defaultof<_> - | x -> + | Some x -> if System.String.Equals (x, "1", System.StringComparison.OrdinalIgnoreCase) then if true = Consts.FALSE then DryRunMode.Wet @@ -3056,7 +3076,7 @@ module ContainsFlagEnvVarArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ContainsFlagEnvVar = - ContainsFlagEnvVar.parse' System.Environment.GetEnvironmentVariable args + ContainsFlagEnvVar.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -3076,7 +3096,7 @@ module ContainsFlagDefaultValueArgParse = type ContainsFlagDefaultValue with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : ContainsFlagDefaultValue = @@ -3239,7 +3259,7 @@ module ContainsFlagDefaultValueArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ContainsFlagDefaultValue = - ContainsFlagDefaultValue.parse' System.Environment.GetEnvironmentVariable args + ContainsFlagDefaultValue.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -3258,7 +3278,7 @@ module ManyLongFormsArgParse = /// Extension methods for argument parsing type ManyLongForms with - static member parse' (getEnvironmentVariable : string -> string) (args : string list) : ManyLongForms = + static member parse' (getEnvironmentVariable : string -> string option) (args : string list) : ManyLongForms = let ArgParser_errors = ResizeArray () let helpText () = @@ -3504,7 +3524,7 @@ module ManyLongFormsArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : ManyLongForms = - ManyLongForms.parse' System.Environment.GetEnvironmentVariable args + ManyLongForms.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -3524,7 +3544,7 @@ module FlagsIntoPositionalArgsArgParse = type FlagsIntoPositionalArgs with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : FlagsIntoPositionalArgs = @@ -3668,7 +3688,7 @@ module FlagsIntoPositionalArgsArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : FlagsIntoPositionalArgs = - FlagsIntoPositionalArgs.parse' System.Environment.GetEnvironmentVariable args + FlagsIntoPositionalArgs.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -3688,7 +3708,7 @@ module FlagsIntoPositionalArgsChoiceArgParse = type FlagsIntoPositionalArgsChoice with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : FlagsIntoPositionalArgsChoice = @@ -3832,7 +3852,7 @@ module FlagsIntoPositionalArgsChoiceArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : FlagsIntoPositionalArgsChoice = - FlagsIntoPositionalArgsChoice.parse' System.Environment.GetEnvironmentVariable args + FlagsIntoPositionalArgsChoice.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -3852,7 +3872,7 @@ module FlagsIntoPositionalArgsIntArgParse = type FlagsIntoPositionalArgsInt with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : FlagsIntoPositionalArgsInt = @@ -3996,7 +4016,7 @@ module FlagsIntoPositionalArgsIntArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : FlagsIntoPositionalArgsInt = - FlagsIntoPositionalArgsInt.parse' System.Environment.GetEnvironmentVariable args + FlagsIntoPositionalArgsInt.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -4016,7 +4036,7 @@ module FlagsIntoPositionalArgsIntChoiceArgParse = type FlagsIntoPositionalArgsIntChoice with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : FlagsIntoPositionalArgsIntChoice = @@ -4160,7 +4180,7 @@ module FlagsIntoPositionalArgsIntChoiceArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : FlagsIntoPositionalArgsIntChoice = - FlagsIntoPositionalArgsIntChoice.parse' System.Environment.GetEnvironmentVariable args + FlagsIntoPositionalArgsIntChoice.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args namespace ConsumePlugin open System @@ -4180,7 +4200,7 @@ module FlagsIntoPositionalArgs'ArgParse = type FlagsIntoPositionalArgs' with static member parse' - (getEnvironmentVariable : string -> string) + (getEnvironmentVariable : string -> string option) (args : string list) : FlagsIntoPositionalArgs' = @@ -4324,4 +4344,4 @@ module FlagsIntoPositionalArgs'ArgParse = ArgParser_errors |> String.concat "\n" |> failwithf "Errors during parse!\n%s" static member parse (args : string list) : FlagsIntoPositionalArgs' = - FlagsIntoPositionalArgs'.parse' System.Environment.GetEnvironmentVariable args + FlagsIntoPositionalArgs'.parse' (System.Environment.GetEnvironmentVariable >> Option.ofObj) args diff --git a/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs b/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs index 5b2b4d0..900ae3f 100644 --- a/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs +++ b/WoofWare.Myriad.Plugins.Test/TestArgParser/TestArgParser.fs @@ -68,7 +68,7 @@ module TestArgParser = let getEnvVar (_ : string) = Interlocked.Increment envCalls |> ignore - "" + None let args = [ "--foo=3" ; "--non-existent" ; "--bar=4" ; "--baz=true" ] @@ -91,7 +91,7 @@ module TestArgParser = let getEnvVar (_ : string) = Interlocked.Increment envCalls |> ignore - "" + None let property (args : (int * bool) list) (afterDoubleDash : int list option) = let flatArgs = @@ -127,7 +127,7 @@ module TestArgParser = let getEnvVar (_ : string) = Interlocked.Increment envCalls |> ignore - "" + None let args = [ "--foo=3" ; "--rest" ; "7" ; "--bar=4" ; "--baz=true" ; "--rest=8" ] @@ -150,7 +150,7 @@ module TestArgParser = let getEnvVar (_ : string) = Interlocked.Increment envCalls |> ignore - "" + None let args = [ "--foo=3" ; "--foo" ; "9" ; "--bar=4" ; "--baz=true" ; "--baz=false" ] @@ -171,7 +171,7 @@ Argument '--baz' was supplied multiple times: True and false""" let getEnvVar (_ : string) = Interlocked.Increment envCalls |> ignore - "" + None let args = [ "--" ; "--foo=3" ; "--bar=4" ; "--baz=true" ] @@ -191,7 +191,7 @@ Required argument '--baz' received no value""" let ``Help text`` () = let getEnvVar (s : string) = s |> shouldEqual "CONSUMEPLUGIN_THINGS" - "hi!" + Some "hi!" let exc = Assert.Throws (fun () -> Basic.parse' getEnvVar [ "--help" ] |> ignore) @@ -210,7 +210,7 @@ Required argument '--baz' received no value""" let getEnvVar (_ : string) = Interlocked.Increment envVars |> ignore - "" + None let exc = Assert.Throws (fun () -> LoadsOfTypes.parse' getEnvVar [ "--help" ] |> ignore) @@ -236,7 +236,7 @@ Required argument '--baz' received no value""" let ``Default values`` () = let getEnvVar (s : string) = s |> shouldEqual "CONSUMEPLUGIN_THINGS" - "hi!" + Some "hi!" let args = [ @@ -264,7 +264,7 @@ Required argument '--baz' received no value""" let getEnvVar (_ : string) = Interlocked.Increment count |> ignore - "" + None let exc = Assert.Throws (fun () -> DatesAndTimes.parse' getEnvVar [ "--help" ] |> ignore) @@ -285,7 +285,7 @@ Required argument '--baz' received no value""" let getEnvVar (_ : string) = Interlocked.Increment count |> ignore - "" + None let parsed = DatesAndTimes.parse' @@ -448,7 +448,7 @@ Required argument '--exact' received no value""" let ``Bool env vars can be populated`` (envValue : string, boolValue : bool) = let getEnvVar (s : string) = s |> shouldEqual "CONSUMEPLUGIN_THINGS" - envValue + Some envValue ContainsBoolEnvVar.parse' getEnvVar [] |> shouldEqual @@ -470,7 +470,7 @@ Required argument '--exact' received no value""" let ``Flag DUs can be parsed from env var`` (envValue : string, boolValue : bool) = let getEnvVar (s : string) = s |> shouldEqual "CONSUMEPLUGIN_THINGS" - envValue + Some envValue let boolValue = if boolValue then DryRunMode.Dry else DryRunMode.Wet diff --git a/WoofWare.Myriad.Plugins/ArgParserGenerator.fs b/WoofWare.Myriad.Plugins/ArgParserGenerator.fs index fb33747..b7f5257 100644 --- a/WoofWare.Myriad.Plugins/ArgParserGenerator.fs +++ b/WoofWare.Myriad.Plugins/ArgParserGenerator.fs @@ -1396,7 +1396,7 @@ module internal ArgParserGenerator = [ SynMatchClause.create - SynPat.createNull + (SynPat.named "None") (SynExpr.sequential [ errorMessage @@ -1406,7 +1406,7 @@ module internal ArgParserGenerator = unchecked ]) - SynMatchClause.create (SynPat.named "x") parser + SynMatchClause.create (SynPat.nameWithArgs "Some" [ SynPat.named "x" ]) parser ] |> SynExpr.createMatch result | ArgumentDefaultSpec.FunctionCall name -> @@ -1694,7 +1694,7 @@ module internal ArgParserGenerator = [ Ident.create "parse'" ] [ SynPat.named "getEnvironmentVariable" - |> SynPat.annotateType (SynType.funFromDomain SynType.string SynType.string) + |> SynPat.annotateType (SynType.funFromDomain SynType.string (SynType.option SynType.string)) argsParam ] |> SynBinding.withReturnAnnotation (SynType.createLongIdent [ taggedType.Name ]) @@ -1708,7 +1708,12 @@ module internal ArgParserGenerator = let parse = SynExpr.createLongIdent' parsePrimeCall - |> SynExpr.applyTo (SynExpr.createLongIdent [ "System" ; "Environment" ; "GetEnvironmentVariable" ]) + |> SynExpr.applyTo ( + SynExpr.paren ( + SynExpr.createLongIdent [ "System" ; "Environment" ; "GetEnvironmentVariable" ] + |> SynExpr.composeWith (SynExpr.createLongIdent [ "Option" ; "ofObj" ]) + ) + ) |> SynExpr.applyTo (SynExpr.createIdent "args") |> SynBinding.basic [ Ident.create "parse" ] [ argsParam ] |> SynBinding.withReturnAnnotation (SynType.createLongIdent [ taggedType.Name ]) diff --git a/WoofWare.Myriad.Plugins/JsonParseGenerator.fs b/WoofWare.Myriad.Plugins/JsonParseGenerator.fs index 31fc0b0..01573c8 100644 --- a/WoofWare.Myriad.Plugins/JsonParseGenerator.fs +++ b/WoofWare.Myriad.Plugins/JsonParseGenerator.fs @@ -46,7 +46,7 @@ module internal JsonParseGenerator = |> SynExpr.createMatch indexed |> SynExpr.paren - let assertNotNull (body : SynExpr) (boundIdent : Ident) : SynExpr = + let assertNotNull (boundIdent : Ident) (body : SynExpr) : SynExpr = let raiseExpr = SynExpr.CreateConst () |> SynExpr.applyFunction (SynExpr.createLongIdent [ "System" ; "ArgumentNullException" ]) @@ -108,7 +108,7 @@ module internal JsonParseGenerator = |> SynExpr.pipeThroughFunction ( SynExpr.applyFunction (SynExpr.createLongIdent [ "Seq" ; "map" ]) - (SynExpr.createLambda "elt" (assertNotNull body (Ident.create "elt"))) + (SynExpr.createLambda "elt" (assertNotNull (Ident.create "elt") body)) ) |> SynExpr.pipeThroughFunction (SynExpr.createLongIdent [ collectionType ; "ofSeq" ]) diff --git a/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj b/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj index 08db020..1458d9d 100644 --- a/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj +++ b/WoofWare.Myriad.Plugins/WoofWare.Myriad.Plugins.fsproj @@ -22,7 +22,7 @@ - + diff --git a/WoofWare.Myriad.Plugins/version.json b/WoofWare.Myriad.Plugins/version.json index edfcdca..7c0d2d0 100644 --- a/WoofWare.Myriad.Plugins/version.json +++ b/WoofWare.Myriad.Plugins/version.json @@ -1,5 +1,5 @@ { - "version": "5.0", + "version": "6.0", "publicReleaseRefSpec": [ "^refs/heads/main$" ], diff --git a/nix/deps.json b/nix/deps.json index 0dbecfe..a9d5973 100644 --- a/nix/deps.json +++ b/nix/deps.json @@ -381,7 +381,7 @@ }, { "pname": "WoofWare.Whippet.Fantomas", - "version": "0.5.1", - "hash": "sha256-59CwnOZQAq5ZJoUkd87OiP8KUwx8xYDLMimMMTlKeZA=" + "version": "0.6.1", + "hash": "sha256-UTK+WbHR83zbMZ+2BzecIrKvp/5ZppHToIZ/oHTIF1k=" } ]