@@ -384,6 +384,8 @@ let rec contextPathFromCoreType (coreType : Parsetree.core_type) =
384
384
| Ptyp_constr ({txt = Lident "option" } , [innerTyp ]) ->
385
385
innerTyp |> contextPathFromCoreType
386
386
|> Option. map (fun innerTyp -> Completable. CPOption innerTyp)
387
+ | Ptyp_constr ({txt = Lident "array" } , [innerTyp ]) ->
388
+ Some (Completable. CPArray (innerTyp |> contextPathFromCoreType))
387
389
| Ptyp_constr (lid , _ ) ->
388
390
Some (CPId (lid.txt |> Utils. flattenLongIdent, Type ))
389
391
| _ -> None
@@ -398,20 +400,26 @@ let printRecordFromFields ?name (fields : field list) =
398
400
|> String. concat " , " )
399
401
^ " }"
400
402
401
- let rec extractedTypeToString = function
403
+ let rec extractedTypeToString ?( inner = false ) = function
402
404
| Tuple (_, _, typ)
403
405
| Tpolyvariant {typeExpr = typ}
404
406
| Tfunction {typ}
405
407
| Trecord {definition = `TypeExpr typ } ->
406
- Shared. typeToString typ
408
+ if inner then
409
+ match pathFromTypeExpr typ with
410
+ | None -> " record" (* Won't happen *)
411
+ | Some p -> p |> SharedTypes. pathIdentToString
412
+ else Shared. typeToString typ
407
413
| Tbool _ -> " bool"
408
414
| Tstring _ -> " string"
409
- | Tarray (_ , innerTyp ) -> " array<" ^ extractedTypeToString innerTyp ^ " >"
410
- | Toption (_ , innerTyp ) -> " option<" ^ extractedTypeToString innerTyp ^ " >"
415
+ | Tarray (_ , innerTyp ) ->
416
+ " array<" ^ extractedTypeToString ~inner: true innerTyp ^ " >"
417
+ | Toption (_ , innerTyp ) ->
418
+ " option<" ^ extractedTypeToString ~inner: true innerTyp ^ " >"
411
419
| Tvariant {variantDecl; variantName} ->
412
- Shared. declToString variantName variantDecl
420
+ if inner then variantName else Shared. declToString variantName variantDecl
413
421
| Trecord {definition = `NameOnly name ; fields} ->
414
- printRecordFromFields ~name fields
422
+ if inner then name else printRecordFromFields ~name fields
415
423
| TinlineRecord {fields} -> printRecordFromFields fields
416
424
417
425
let unwrapCompletionTypeIfOption (t : SharedTypes.completionType ) =
0 commit comments