diff --git a/lib/dartdoc.dart b/lib/dartdoc.dart index 7d09769975..87ce28f4bb 100644 --- a/lib/dartdoc.dart +++ b/lib/dartdoc.dart @@ -370,7 +370,8 @@ class Dartdoc { found.add(indexPath); for (Map entry in jsonData) { if (entry.containsKey('href')) { - var entryPath = path.joinAll([origin, entry['href']]); + var entryPath = + path.joinAll([origin, ...path.posix.split(entry['href'])]); if (!visited.contains(entryPath)) { _warn(packageGraph, PackageWarning.brokenLink, entryPath, path.normalize(origin), diff --git a/lib/src/generator/generator_frontend.dart b/lib/src/generator/generator_frontend.dart index 11759437c4..18ad546c15 100644 --- a/lib/src/generator/generator_frontend.dart +++ b/lib/src/generator/generator_frontend.dart @@ -153,6 +153,14 @@ class GeneratorFrontEnd implements Generator { _generatorBackend.generateProperty( writer, packageGraph, lib, extension, staticField); } + + for (var method in filterNonDocumented(extension.staticMethods)) { + if (!method.isCanonical) continue; + + indexAccumulator.add(method); + _generatorBackend.generateMethod( + writer, packageGraph, lib, extension, method); + } } for (var mixin in filterNonDocumented(lib.mixins)) { diff --git a/test/end2end/model_test.dart b/test/end2end/model_test.dart index 237fafa09a..6391329d5f 100644 --- a/test/end2end/model_test.dart +++ b/test/end2end/model_test.dart @@ -1332,12 +1332,6 @@ void main() { contains('ThisIsNotHereNoWay<MyType>')); }); - test('leaves relative href resulting in a broken link', () { - // Dartdoc does emit a brokenLink warning for this. - expect(docsAsHtml, - contains('link')); - }); - test('leaves relative href resulting in a working link', () { // Ideally doc comments should not make assumptions about Dartdoc output // files, but unfortunately some do... diff --git a/testing/test_package/dartdoc_options.yaml b/testing/test_package/dartdoc_options.yaml index 97922cd395..edc16271e4 100644 --- a/testing/test_package/dartdoc_options.yaml +++ b/testing/test_package/dartdoc_options.yaml @@ -20,6 +20,8 @@ dartdoc: linux: ['/bin/sh', '-c', 'echo'] windows: ['C:\\Windows\\System32\\cmd.exe', '/c', 'echo'] description: 'Works on everything' + errors: + - broken-link linkToSource: root: '.' uriTemplate: 'https://github.com/dart-lang/dartdoc/blob/master/testing/test_package/%f%#L%l%' diff --git a/testing/test_package/lib/fake.dart b/testing/test_package/lib/fake.dart index 74734caaac..5c599e0578 100644 --- a/testing/test_package/lib/fake.dart +++ b/testing/test_package/lib/fake.dart @@ -950,8 +950,6 @@ class BaseForDocComments { /// /// Reference to an inherited member in another library via class name: [ExtendedBaseReexported.action] /// - /// Link to a nonexistent file (erroneously expects base href): [link](SubForDocComments/localMethod.html) - /// /// Link to an existing file: [link](../SubForDocComments/localMethod.html) String doAwesomeStuff(int value) => null;