(doc *T, ref string, path *url.URL)
| 607 | } |
| 608 | |
| 609 | func (loader *Loader) resolveRefAndDocument(doc *T, ref string, path *url.URL) (*T, string, *url.URL, error) { |
| 610 | if ref != "" && ref[0] == '#' { |
| 611 | return doc, ref, path, nil |
| 612 | } |
| 613 | |
| 614 | fragment, resolvedPath, err := loader.resolveRef(ref, path) |
| 615 | if err != nil { |
| 616 | return nil, "", nil, err |
| 617 | } |
| 618 | |
| 619 | if doc, err = loader.loadFromURIInternal(resolvedPath); err != nil { |
| 620 | return nil, "", nil, fmt.Errorf("error resolving reference %q: %w", ref, err) |
| 621 | } |
| 622 | |
| 623 | return doc, fragment, resolvedPath, nil |
| 624 | } |
| 625 | |
| 626 | func (loader *Loader) resolveRef(ref string, path *url.URL) (string, *url.URL, error) { |
| 627 | resolvedPathRef, err := loader.resolveRefPath(ref, path) |
no test coverage detected