@@ -384,6 +384,8 @@ let rec contextPathFromCoreType (coreType : Parsetree.core_type) =
384384 | Ptyp_constr ({txt = Lident "option" } , [innerTyp ]) ->
385385 innerTyp |> contextPathFromCoreType
386386 |> Option. map (fun innerTyp -> Completable. CPOption innerTyp)
387+ | Ptyp_constr ({txt = Lident "array" } , [innerTyp ]) ->
388+ Some (Completable. CPArray (innerTyp |> contextPathFromCoreType))
387389 | Ptyp_constr (lid , _ ) ->
388390 Some (CPId (lid.txt |> Utils. flattenLongIdent, Type ))
389391 | _ -> None
@@ -398,20 +400,26 @@ let printRecordFromFields ?name (fields : field list) =
398400 |> String. concat " , " )
399401 ^ " }"
400402
401- let rec extractedTypeToString = function
403+ let rec extractedTypeToString ?( inner = false ) = function
402404 | Tuple (_, _, typ)
403405 | Tpolyvariant {typeExpr = typ}
404406 | Tfunction {typ}
405407 | 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
407413 | Tbool _ -> " bool"
408414 | 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 ^ " >"
411419 | Tvariant {variantDecl; variantName} ->
412- Shared. declToString variantName variantDecl
420+ if inner then variantName else Shared. declToString variantName variantDecl
413421 | Trecord {definition = `NameOnly name ; fields} ->
414- printRecordFromFields ~name fields
422+ if inner then name else printRecordFromFields ~name fields
415423 | TinlineRecord {fields} -> printRecordFromFields fields
416424
417425let unwrapCompletionTypeIfOption (t : SharedTypes.completionType ) =
0 commit comments