Wow, awesome suggestions guys. I especially like Ian's fuzzing solution.
Once I'm past the prototyping phase in my project, I'll add such a
fuzzer to my test suite.
On Friday, April 7, 2017 at 5:48:25 AM UTC-7, Andres Riofrio wrote:
>
> For example, I have the following code:
>
> type alias Account =
> { id : Int
> , name : String }
>
> -- ... in another module ...
>
> accountToJson : Account -> Json.Encode.Value
> accountToJson act = Json.Encode.object
> [ ("id", Json.Encode.int act.id)
> , ("name", Json.Encode.string act.name)
> ]
>
> If I add a field to Account, I'd like the compiler to make sure it won't
> be skipped in the output JSON. The way I have written the encoder, the
> compiler will happily let me skip the field in the serialized version of my
> data.
>
> I thought about using destructuring like so:
>
> accountToJson : Account -> Json.Encode.Value
> accountToJson {id, name} = Json.Encode.object
> [ ("id", Json.Encode.int id)
> , ("name", Json.Encode.string name)
> ]
>
>
>
> But according to the documentation
> <http://elm-lang.org/docs/records#pattern-matching>, this will compile
> fine even if Account gains a new record.
>
> Any ideas on how to add this bit of type-safety to my application?
>
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.