@@ -100,15 +100,19 @@ let internal convertJsonValue
100100 (<@ (% varExpr) .Path() @>, convert <@ Some (% varExpr) .JsonValue @>, <@ Some (% varExpr) .JsonValue @>))
101101 | TypeWrapper.Option, true -> convert <@ (%% value: JsonValue option) @>
102102 | TypeWrapper.Option, false ->
103- //TODO: not covered in tests
103+ // Reached when canPassAllConversionCallingTypes=false (e.g. for array element types or
104+ // heterogeneous type variants). The caller passes an IJsonDocument; we extract its
105+ // JsonValue and wrap it in Some before handing it to the conversion quotation.
104106 convert <@ Some (%% value: IJsonDocument) .JsonValue @>
105107 | TypeWrapper.Nullable, true ->
106- //TODO: not covered in tests
108+ // TypeWrapper.Nullable is never produced by JSON inference (which only emits None or Option).
109+ // This branch exists for structural completeness and potential future extensibility.
107110 typeof< TextRuntime>?( nameof ( TextRuntime.OptionToNullable))
108111 ( field.RuntimeType)
109112 ( convert <@ (%% value: JsonValue option) @>)
110113 | TypeWrapper.Nullable, false ->
111- //TODO: not covered in tests
114+ // TypeWrapper.Nullable is never produced by JSON inference (which only emits None or Option).
115+ // This branch exists for structural completeness and potential future extensibility.
112116 typeof< TextRuntime>?( nameof ( TextRuntime.OptionToNullable))
113117 ( field.RuntimeType)
114118 ( convert <@ Some (%% value: IJsonDocument) .JsonValue @>)
0 commit comments