Skip to content

Fix multiple issues with properties and top level variables #1466

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
Jul 6, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3b511d5
a little debug code
jcollins-g Jun 8, 2017
aa57971
intermediate state: things mostly work, but a lot of private constant…
jcollins-g Jun 12, 2017
dc43f6e
intermediate state: debugging angular
jcollins-g Jun 13, 2017
160ca4b
Merge branch 'master' of github.com:dart-lang/dartdoc into field-fix
jcollins-g Jun 13, 2017
1f47da9
intermediate state. things more or less work but are messy.
jcollins-g Jun 13, 2017
b85e25d
Screenshot worthy.
jcollins-g Jun 14, 2017
aeb44fb
tests closer now
jcollins-g Jun 16, 2017
9396b0c
Tests pass!
jcollins-g Jun 16, 2017
affded1
fix up element search
jcollins-g Jun 16, 2017
0c99c38
beginnings of unit tests
jcollins-g Jun 16, 2017
e139b07
Add new tests, and they pass.
jcollins-g Jun 19, 2017
bf6ef05
Add stranded files.
jcollins-g Jun 19, 2017
34128bd
Cleanup + dartfmt
jcollins-g Jun 19, 2017
81d8f49
Minor cleanups
jcollins-g Jun 20, 2017
9cb509d
More cleanups and simplification
jcollins-g Jun 20, 2017
dc665e2
Merge branch 'master' of github.com:dart-lang/dartdoc into field-fix
jcollins-g Jun 21, 2017
e572d07
rebuild docs
jcollins-g Jun 21, 2017
e6627d6
Add a test for extended docs for explicit getter/setter fields
jcollins-g Jun 21, 2017
13041a9
Test tweaks and dartfmt
jcollins-g Jun 21, 2017
b65e775
simplify an if statement
jcollins-g Jun 21, 2017
93f04ee
recover some performance
jcollins-g Jun 22, 2017
e2624fa
get back a little more performance
jcollins-g Jun 22, 2017
d66ec18
dartfmt
jcollins-g Jun 22, 2017
9df8a57
Fix minor problem with sdk build
jcollins-g Jun 22, 2017
5aaf681
dartfmt
jcollins-g Jun 22, 2017
dc5aa11
Fix warning generation on non-canonical FieldElements
jcollins-g Jun 22, 2017
18779c1
Add review comments
jcollins-g Jul 5, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 9 additions & 15 deletions lib/dartdoc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -220,9 +220,8 @@ class DartDoc {
{String referredFrom}) {
// Ordinarily this would go in [Package.warn], but we don't actually know what
// ModelElement to warn on yet.
Locatable referredFromElement;
Locatable warnOnElement;
Set<Locatable> referredFromElements;
Set<Locatable> referredFromElements = new Set();
Set<Locatable> warnOnElements;

// Make all paths relative to origin.
Expand All @@ -234,19 +233,14 @@ class DartDoc {
referredFrom = path.relative(referredFrom, from: origin);
}
// Source paths are always relative.
referredFromElements = _hrefs[referredFrom];
if (_hrefs[referredFrom] != null) {
referredFromElements.addAll(_hrefs[referredFrom]);
}
}
warnOnElements = _hrefs[warnOn];

if (referredFromElements != null) {
if (referredFromElements.any((e) => e.isCanonical)) {
referredFromElement =
referredFromElements.firstWhere((e) => e.isCanonical);
} else {
// If we don't have a canonical element, just pick one.
referredFromElement =
referredFromElements.isEmpty ? null : referredFromElements.first;
}
if (referredFromElements.any((e) => e.isCanonical)) {
referredFromElements.removeWhere((e) => !e.isCanonical);
}
if (warnOnElements != null) {
if (warnOnElements.any((e) => e.isCanonical)) {
Expand All @@ -257,12 +251,12 @@ class DartDoc {
}
}

if (referredFromElement == null && referredFrom == 'index.html')
referredFromElement = package;
if (referredFromElements.isEmpty && referredFrom == 'index.html')
referredFromElements.add(package);
String message = warnOn;
if (referredFrom == 'index.json') message = '$warnOn (from index.json)';
package.warnOnElement(warnOnElement, kind,
message: message, referredFrom: referredFromElement);
message: message, referredFrom: referredFromElements);
}

void _doOrphanCheck(Package package, String origin, Set<String> visited) {
Expand Down
1 change: 1 addition & 0 deletions lib/src/html/html_generator_instance.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ class HtmlGeneratorInstance implements HtmlOptions {
// TODO(jcollins-g): consider refactor so that only the canonical
// ModelElements show up in these lists
if (!clazz.isCanonical) continue;

generateClass(package, lib, clazz);

for (var constructor in clazz.constructors) {
Expand Down
21 changes: 18 additions & 3 deletions lib/src/markdown_processor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -292,10 +292,25 @@ MatchingLinkResult _getMatchingLinkElement(
if (refModelElement != null) {
return new MatchingLinkResult(refModelElement, null);
}
refModelElement = new ModelElement.from(searchElement, refLibrary);
// From this point on, we haven't been able to find a canonical ModelElement.
// So in this case, just find any ModelElement we can.
Accessor getter;
Accessor setter;
if (searchElement is FieldElement) {
// TODO(jcollins-g): consolidate field element construction with inheritance
// checking.
if (searchElement.getter != null) {
getter = new ModelElement.from(searchElement.getter, refLibrary);
}
if (searchElement.setter != null) {
setter = new ModelElement.from(searchElement.setter, refLibrary);
}
}
refModelElement = new ModelElement.from(searchElement, refLibrary,
getter: getter, setter: setter);
if (!refModelElement.isCanonical) {
refModelElement.warn(PackageWarning.noCanonicalFound,
referredFrom: element);
refModelElement
.warn(PackageWarning.noCanonicalFound, referredFrom: [element]);
// Don't warn about doc references because that's covered by the no
// canonical library found message.
return new MatchingLinkResult(null, null, warn: false);
Expand Down
Loading