Skip to content

Commit 7d3e01f

Browse files
authored
Fix macro detection for macros declared in non-public symbols (#1584)
* Add basic support for private macros * update test package docs * dartfmt * rebuild test package docs post-merge
1 parent be310b8 commit 7d3e01f

37 files changed

+434
-17
lines changed

lib/src/model.dart

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2718,24 +2718,28 @@ abstract class ModelElement extends Canonicalization
27182718
return docFrom;
27192719
}
27202720

2721-
String __documentationLocal() {
2721+
String _documentationLocal() {
27222722
if (config.dropTextFrom.contains(element.library.name)) {
27232723
return '';
27242724
}
27252725
String _rawDocs = computeDocumentationComment ?? '';
27262726
_rawDocs = stripComments(_rawDocs) ?? '';
27272727
_rawDocs = _injectExamples(_rawDocs);
27282728
_rawDocs = _stripMacroTemplatesAndAddToIndex(_rawDocs);
2729-
_rawDocs = _injectMacros(_rawDocs);
27302729
return _rawDocs;
27312730
}
27322731

2733-
String get _documentationLocal => _memoizer.memoized(__documentationLocal);
2732+
/// Returns the documentation for this literal element unless
2733+
/// [config.dropTextFrom] indicates it should not be returned. Macro
2734+
/// definitions are stripped, but macros themselves are not injected. This
2735+
/// is a two stage process to avoid ordering problems.
2736+
String get documentationLocal => _memoizer.memoized(_documentationLocal);
27342737

27352738
/// Returns the docs, stripped of their leading comments syntax.
27362739
@override
27372740
String get documentation {
2738-
return documentationFrom.map((e) => e._documentationLocal).join('<p>');
2741+
return _injectMacros(
2742+
documentationFrom.map((e) => e.documentationLocal).join('<p>'));
27392743
}
27402744

27412745
Library get definingLibrary => package.findOrCreateLibraryFor(element);
@@ -3376,7 +3380,7 @@ abstract class ModelElement extends Canonicalization
33763380
///
33773381
/// Example:
33783382
///
3379-
/// You define the template anywhere in the comments like:
3383+
/// You define the template in any comment for a documentable entity like:
33803384
///
33813385
/// {@template foo}
33823386
/// Foo contents!
@@ -3397,7 +3401,11 @@ abstract class ModelElement extends Canonicalization
33973401
String _injectMacros(String rawDocs) {
33983402
final macroRegExp = new RegExp(r'{@macro\s+([^}]+)}');
33993403
return rawDocs.replaceAllMapped(macroRegExp, (match) {
3400-
return package.getMacro(match[1]);
3404+
String macro = package.getMacro(match[1]);
3405+
if (macro == null) {
3406+
warn(PackageWarning.unknownMacro, message: match[1]);
3407+
}
3408+
return macro;
34013409
});
34023410
}
34033411

@@ -3414,7 +3422,7 @@ abstract class ModelElement extends Canonicalization
34143422
r'[ ]*{@template\s+(.+?)}([\s\S]+?){@endtemplate}[ ]*\n?',
34153423
multiLine: true);
34163424
return rawDocs.replaceAllMapped(templateRegExp, (match) {
3417-
package.addMacro(match[1].trim(), match[2].trim());
3425+
package._addMacro(match[1].trim(), match[2].trim());
34183426
return "";
34193427
});
34203428
}
@@ -3690,6 +3698,7 @@ class Package extends Canonicalization with Nameable, Warnable, Memoizeable {
36903698
final Map<Element, Library> _elementToLibrary = {};
36913699
final Map<String, String> _macros = {};
36923700
bool allLibrariesAdded = false;
3701+
bool _macrosAdded = false;
36933702

36943703
Package(Iterable<LibraryElement> libraryElements, this.packageMeta,
36953704
this._packageWarningOptions, this.context,
@@ -3712,10 +3721,10 @@ class Package extends Canonicalization with Nameable, Warnable, Memoizeable {
37123721
});
37133722

37143723
_implementors.values.forEach((l) => l.sort());
3715-
// Go through docs of every model element in package to prebuild the macros index
3716-
// TODO(jcollins-g): move index building into a cached-on-demand generation
3717-
// like most other bits in [Package].
3718-
allCanonicalModelElements.forEach((m) => m.documentation);
3724+
// Go through docs of every model element in package to prebuild the macros
3725+
// index.
3726+
allModelElements.forEach((m) => m.documentationLocal);
3727+
_macrosAdded = true;
37193728
}
37203729

37213730
Set<String> _allRootDirs() =>
@@ -3877,6 +3886,9 @@ class Package extends Canonicalization with Nameable, Warnable, Memoizeable {
38773886
}
38783887
referredFromPrefix = 'in documentation inherited from';
38793888
break;
3889+
case PackageWarning.unknownMacro:
3890+
warningMessage = "undefined macro [${message}]";
3891+
break;
38803892
case PackageWarning.brokenLink:
38813893
warningMessage = 'dartdoc generated a broken link to: ${message}';
38823894
warnablePrefix = 'to element';
@@ -4325,9 +4337,13 @@ class Package extends Canonicalization with Nameable, Warnable, Memoizeable {
43254337
Iterable<ModelElement> get allCanonicalModelElements =>
43264338
_memoizer.memoized(_allCanonicalModelElements);
43274339

4328-
String getMacro(String name) => _macros[name];
4340+
String getMacro(String name) {
4341+
assert(_macrosAdded);
4342+
return _macros[name];
4343+
}
43294344

4330-
void addMacro(String name, String content) {
4345+
void _addMacro(String name, String content) {
4346+
assert(!_macrosAdded);
43314347
_macros[name] = content;
43324348
}
43334349
}

lib/src/warnings.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ final Map<PackageWarning, PackageWarningHelpText> packageWarningText = const {
6464
PackageWarning.brokenLink,
6565
"brokenLink",
6666
"Dartdoc generated a link to a non-existent file"),
67+
PackageWarning.unknownMacro: const PackageWarningHelpText(
68+
PackageWarning.unknownMacro,
69+
"unknownMacro",
70+
"A comment reference contains an unknown macro"),
6771
PackageWarning.orphanedFile: const PackageWarningHelpText(
6872
PackageWarning.orphanedFile,
6973
"orphanedFile",
@@ -115,6 +119,7 @@ enum PackageWarning {
115119
noLibraryLevelDocs,
116120
categoryOrderGivesMissingPackageName,
117121
unresolvedDocReference,
122+
unknownMacro,
118123
brokenLink,
119124
orphanedFile,
120125
unknownFile,

test/model_test.dart

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -312,14 +312,18 @@ void main() {
312312

313313
group('Macros', () {
314314
Class dog;
315-
Method withMacro, withMacro2;
315+
Method withMacro, withMacro2, withPrivateMacro, withUndefinedMacro;
316316

317317
setUp(() {
318318
dog = exLibrary.classes.firstWhere((c) => c.name == 'Dog');
319319
withMacro =
320320
dog.allInstanceMethods.firstWhere((m) => m.name == 'withMacro');
321321
withMacro2 =
322322
dog.allInstanceMethods.firstWhere((m) => m.name == 'withMacro2');
323+
withPrivateMacro =
324+
dog.allInstanceMethods.firstWhere((m) => m.name == 'withPrivateMacro');
325+
withUndefinedMacro =
326+
dog.allInstanceMethods.firstWhere((m) => m.name == 'withUndefinedMacro');
323327
package.allModelElements.forEach((m) => m.documentation);
324328
});
325329

@@ -332,6 +336,14 @@ void main() {
332336
() {
333337
expect(withMacro2.documentation, equals("Foo macro content"));
334338
});
339+
340+
test("renders a macro defined in a private symbol", () {
341+
expect(withPrivateMacro.documentation, contains("Private macro content"));
342+
});
343+
344+
test("a warning is generated for unknown macros", () {
345+
expect(package.packageWarningCounter.hasWarning(withUndefinedMacro, PackageWarning.unknownMacro, 'ThatDoesNotExist'), isTrue);
346+
});
335347
});
336348

337349
group('MultiplyInheritedExecutableElement handling', () {
@@ -808,7 +820,7 @@ void main() {
808820
});
809821

810822
test('get methods', () {
811-
expect(Dog.publicInstanceMethods, hasLength(9));
823+
expect(Dog.publicInstanceMethods, hasLength(12));
812824
});
813825

814826
test('get operators', () {
@@ -860,7 +872,6 @@ void main() {
860872
});
861873

862874
test('F has many inherited methods', () {
863-
expect(F.publicInheritedMethods, hasLength(12));
864875
expect(
865876
F.publicInheritedMethods.map((im) => im.name),
866877
equals([
@@ -875,7 +886,9 @@ void main() {
875886
'testMethod',
876887
'toString',
877888
'withMacro',
878-
'withMacro2'
889+
'withMacro2',
890+
'withPrivateMacro',
891+
'withUndefinedMacro',
879892
]));
880893
});
881894

testing/test_package/lib/example.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,17 @@ class Dog implements Cat, E {
343343
/// {@macro foo}
344344
void withMacro2() {}
345345

346+
/// {@template private}
347+
/// Private macro content
348+
/// {@endtemplate}
349+
void _macroDefinedPrivately() {}
350+
351+
/// Use a privately defined macro: {@macro private}
352+
void withPrivateMacro() {}
353+
354+
/// Don't define this: {@macro ThatDoesNotExist}
355+
void withUndefinedMacro() {}
356+
346357
void testGeneric(Map<String, dynamic> args) {}
347358

348359
void testMethod(Iterable it) {}

testing/test_package_docs/ex/Dog-class.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,24 @@ <h2>Methods</h2>
330330
<dd>
331331
Foo macro content
332332

333+
</dd>
334+
<dt id="withPrivateMacro" class="callable">
335+
<span class="name"><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></span><span class="signature">(<wbr>)
336+
<span class="returntype parameter">&#8594; void</span>
337+
</span>
338+
</dt>
339+
<dd>
340+
Use a privately defined macro: Private macro content
341+
342+
</dd>
343+
<dt id="withUndefinedMacro" class="callable">
344+
<span class="name"><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></span><span class="signature">(<wbr>)
345+
<span class="returntype parameter">&#8594; void</span>
346+
</span>
347+
</dt>
348+
<dd>
349+
Don't define this: null
350+
333351
</dd>
334352
<dt id="noSuchMethod" class="callable inherited">
335353
<span class="name"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></span><span class="signature">(<wbr><span class="parameter" id="noSuchMethod-param-invocation"><span class="type-annotation">Invocation</span> <span class="parameter-name">invocation</span></span>)
@@ -466,6 +484,8 @@ <h2>Constants</h2>
466484
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
467485
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
468486
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
487+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
488+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
469489
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
470490
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
471491

testing/test_package_docs/ex/Dog/Dog.deprecatedCreate.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/Dog.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/aFinalField.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/aGetterReturningRandomThings.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/aName-constant.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/aProtectedFinalField.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/aStaticConstField-constant.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/abstractMethod.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/createDog.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/deprecatedField.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/deprecatedGetter.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/deprecatedSetter.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/foo.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/getAnotherClassD.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/getClassA.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/isImplemented.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

testing/test_package_docs/ex/Dog/name.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ <h5>Dog class</h5>
6767
<li><a href="ex/Dog/testMethod.html">testMethod</a></li>
6868
<li><a href="ex/Dog/withMacro.html">withMacro</a></li>
6969
<li><a href="ex/Dog/withMacro2.html">withMacro2</a></li>
70+
<li><a href="ex/Dog/withPrivateMacro.html">withPrivateMacro</a></li>
71+
<li><a href="ex/Dog/withUndefinedMacro.html">withUndefinedMacro</a></li>
7072
<li class="inherited"><a href="ex/E/noSuchMethod.html">noSuchMethod</a></li>
7173
<li class="inherited"><a href="ex/E/toString.html">toString</a></li>
7274

0 commit comments

Comments
 (0)