Skip to content

Commit a101c82

Browse files
panglesdjonludlam
authored andcommitted
Medias: allow re-resolving asset references
1 parent 659ddec commit a101c82

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
@@ -237,7 +237,7 @@ module Path = struct
237237

238238
let asset_in_env env p : asset_lookup_result ref_result =
239239
Env.lookup_asset_by_path p env |> handle_lookup_error p >>= fun p ->
240-
Ok (`Identifier p.name, p)
240+
Ok (`Identifier p.name)
241241

242242
let module_in_env env p : module_lookup_result ref_result =
243243
Env.lookup_unit_by_path p env |> handle_lookup_error p >>= fun m ->
@@ -637,7 +637,7 @@ module Asset = struct
637637

638638
let in_env env name : t ref_result =
639639
match Env.lookup_asset_by_name name env with
640-
| Ok p -> Ok (`Identifier p.Odoc_model.Lang.Asset.name, p)
640+
| Ok p -> Ok (`Identifier p.Odoc_model.Lang.Asset.name)
641641
| Error `Not_found -> Error (`Lookup_by_name (`Page (* TODO *), name))
642642
end
643643

@@ -832,9 +832,7 @@ let resolved3 (r, _, _) = resolved1 r
832832
and resolved2 (r, _) = resolved1 r
833833

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

839837
let resolved_type_lookup = function
840838
| `T (r, _) -> resolved1 r
@@ -959,7 +957,7 @@ let resolve_reference : _ -> Reference.t -> _ =
959957
resolve_label_parent_reference env parent >>= fun p ->
960958
L.in_label_parent env p name >>= resolved_with_text
961959
| `Root (name, (`TPage | `TChildPage)) -> Page.in_env env name >>= resolved2
962-
| `Root (name, `TAsset) -> Asset.in_env env name >>= resolved2
960+
| `Root (name, `TAsset) -> Asset.in_env env name >>= resolved1
963961
| `Dot (parent, name) -> resolve_reference_dot env parent name
964962
| `Root (name, `TConstructor) -> CS.in_env env name >>= resolved1
965963
| `Constructor (parent, name) ->
@@ -990,7 +988,7 @@ let resolve_reference : _ -> Reference.t -> _ =
990988
resolve_class_signature_reference env parent >>= fun p ->
991989
MV.in_class_signature env p name >>= resolved1
992990
| `Page_path p -> Path.page_in_env env p >>= resolved2
993-
| `Asset_path a -> Path.asset_in_env env a >>= resolved2
991+
| `Asset_path a -> Path.asset_in_env env a >>= resolved1
994992
| `Module_path p ->
995993
Path.module_in_env env p
996994
>>= 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)