Skip to content

Commit 8702d7b

Browse files
panglesdjonludlam
authored andcommitted
Medias: allow re-resolving asset references
1 parent 508f6aa commit 8702d7b

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

src/xref2/link.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ and comment_nestable_block_element env parent ~loc:_
295295
`Modules refs
296296
| `Media (`Reference r, m, content) as orig -> (
297297
match Ref_tools.resolve_asset_reference env r |> Error.raise_warnings with
298-
| Ok (x, _) -> `Media (`Reference (`Resolved x), m, content)
298+
| Ok x -> `Media (`Reference (`Resolved x), m, content)
299299
| Error e ->
300300
Errors.report
301301
~what:(`Reference (r :> Paths.Reference.t))

src/xref2/ref_tools.ml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type class_type_lookup_result = Resolved.ClassType.t * Component.ClassType.t
2121

2222
type page_lookup_result = Resolved.Page.t * Odoc_model.Lang.Page.t
2323

24-
type asset_lookup_result = Resolved.Asset.t * Odoc_model.Lang.Asset.t
24+
type asset_lookup_result = Resolved.Asset.t
2525

2626
type type_lookup_result =
2727
[ `T of datatype_lookup_result
@@ -241,7 +241,7 @@ module Path = struct
241241

242242
let asset_in_env env p : asset_lookup_result ref_result =
243243
Env.lookup_asset_by_path p env |> handle_lookup_error p >>= fun p ->
244-
Ok (`Identifier p.name, p)
244+
Ok (`Identifier p.name)
245245

246246
let module_in_env env p : module_lookup_result ref_result =
247247
Env.lookup_unit_by_path p env |> handle_lookup_error p >>= fun m ->
@@ -643,7 +643,7 @@ module Asset = struct
643643

644644
let in_env env name : t ref_result =
645645
match Env.lookup_asset_by_name name env with
646-
| Ok p -> Ok (`Identifier p.Odoc_model.Lang.Asset.name, p)
646+
| Ok p -> Ok (`Identifier p.Odoc_model.Lang.Asset.name)
647647
| Error `Not_found -> Error (`Lookup_by_name (`Page (* TODO *), name))
648648
end
649649

@@ -834,9 +834,7 @@ let resolved3 (r, _, _) = resolved1 r
834834
and resolved2 (r, _) = resolved1 r
835835

836836
let resolve_asset_reference env (r : Reference.Asset.t) : Asset.t ref_result =
837-
match r with
838-
| `Resolved _r -> failwith "What's going on!?"
839-
| `Asset_path p -> Path.asset_in_env env p
837+
match r with `Resolved r -> Ok r | `Asset_path p -> Path.asset_in_env env p
840838

841839
let resolved_type_lookup = function
842840
| `T (r, _) -> resolved1 r
@@ -965,7 +963,7 @@ let resolve_reference :
965963
resolve_label_parent_reference env parent >>= fun p ->
966964
L.in_label_parent env p name >>= resolved_with_text
967965
| `Root (name, (`TPage | `TChildPage)) -> Page.in_env env name >>= resolved2
968-
| `Root (name, `TAsset) -> Asset.in_env env name >>= resolved2
966+
| `Root (name, `TAsset) -> Asset.in_env env name >>= resolved1
969967
| `Dot (parent, name) -> resolve_reference_dot env parent name
970968
| `Root (name, `TConstructor) -> CS.in_env env name >>= resolved1
971969
| `Constructor (parent, name) ->
@@ -996,7 +994,7 @@ let resolve_reference :
996994
resolve_class_signature_reference env parent >>= fun p ->
997995
MV.in_class_signature env p name >>= resolved1
998996
| `Page_path p -> Path.page_in_env env p >>= resolved2
999-
| `Asset_path a -> Path.asset_in_env env a >>= resolved2
997+
| `Asset_path a -> Path.asset_in_env env a >>= resolved1
1000998
| `Module_path p ->
1001999
Path.module_in_env env p
10021000
>>= module_lookup_to_signature_lookup env

src/xref2/ref_tools.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ open Odoc_model.Paths.Reference
33
type module_lookup_result =
44
Resolved.Module.t * Cpath.Resolved.module_ * Component.Module.t
55

6-
type asset_lookup_result = Resolved.Asset.t * Odoc_model.Lang.Asset.t
6+
type asset_lookup_result = Resolved.Asset.t
77

88
type 'a ref_result =
99
('a, Errors.Tools_error.reference_lookup_error) Result.result

0 commit comments

Comments
 (0)