Index: pkg/analysis_server/test/search/element_references_test.dart |
diff --git a/pkg/analysis_server/test/search/element_references_test.dart b/pkg/analysis_server/test/search/element_references_test.dart |
index 560e5dee011583f44d3f0c589d4bd15161e783e6..c523db556d699f7f17fdc0ec2f138179508b779e 100644 |
--- a/pkg/analysis_server/test/search/element_references_test.dart |
+++ b/pkg/analysis_server/test/search/element_references_test.dart |
@@ -244,56 +244,145 @@ main() { |
}); |
} |
- test_hierarchy_field_explicit() { |
+ test_hierarchy_whenExtends_field() { |
addTestFile(''' |
class A { |
- int fff; // in A |
+ int mmm; |
+ use_mmm_a() { |
+ mmm = 1; |
+ } |
} |
class B extends A { |
- int fff; // in B |
+ int mmm; |
+ use_mmm_b() { |
+ mmm = 2; |
+ } |
} |
class C extends B { |
- int fff; // in C |
+ int mmm; // of C |
+ use_mmm_c() { |
+ mmm = 3; |
+ } |
} |
-main(A a, B b, C c) { |
- a.fff = 10; |
- b.fff = 20; |
- c.fff = 30; |
+class D extends A { |
+ int mmm; |
+ use_mmm_d() { |
+ mmm = 4; |
+ } |
+} |
+class E extends C { |
+ use_mmm_e() { |
+ mmm = 5; |
+ } |
+} |
+class F extends C { |
+ int mmm; |
+ use_mmm_f() { |
+ mmm = 6; |
+ mmm(6); |
+ } |
+} |
+main(A a, B b, C c, D d, E e, F f) { |
+ a.mmm = 10; |
+ b.mmm = 20; |
+ c.mmm = 30; |
+ d.mmm = 40; |
+ e.mmm = 50; |
+ f.mmm = 60; |
} |
'''); |
- return findElementReferences('fff; // in B', false).then((_) { |
+ return findElementReferences('mmm; // of C', false).then((_) { |
expect(searchElement.kind, ElementKind.FIELD); |
- assertHasResult(SearchResultKind.DECLARATION, 'fff; // in A'); |
- assertHasResult(SearchResultKind.DECLARATION, 'fff; // in B'); |
- assertHasResult(SearchResultKind.DECLARATION, 'fff; // in C'); |
- assertHasResult(SearchResultKind.WRITE, 'fff = 10;'); |
- assertHasResult(SearchResultKind.WRITE, 'fff = 20;'); |
- assertHasResult(SearchResultKind.WRITE, 'fff = 30;'); |
+ // unqualified |
+ { |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 1'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 2'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 3'); |
+ assertNoResult(SearchResultKind.WRITE, 'mmm = 4'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 5'); |
+ assertNoResult(SearchResultKind.WRITE, 'mmm = 6'); |
+ } |
+ // qualified |
+ { |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 10'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 20'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 30'); |
+ assertNoResult(SearchResultKind.WRITE, 'mmm = 40'); |
+ assertHasResult(SearchResultKind.WRITE, 'mmm = 50'); |
+ assertNoResult(SearchResultKind.WRITE, 'mmm = 60'); |
+ } |
}); |
} |
- test_hierarchy_method() { |
+ test_hierarchy_whenExtends_method() { |
+ // TODO(scheglov) ideally we need to remove D.mmm() declaration |
+ // to actually we fixed |
+ // test that https://code.google.com/p/dart/issues/detail?id=19697 |
Paul Berry
2014/09/15 21:55:39
I'm having trouble understanding this comment. It
|
addTestFile(''' |
class A { |
- mmm() {} // in A |
+ mmm(_) {} |
+ use_mmm_a() { |
+ mmm(1); |
+ } |
} |
class B extends A { |
- mmm() {} // in B |
+ mmm(_) {} |
+ use_mmm_b() { |
+ mmm(2); |
+ } |
} |
class C extends B { |
- mmm() {} // in C |
+ mmm(_) {} // of C |
+ use_mmm_c() { |
+ mmm(3); |
+ } |
+} |
+class D extends A { |
+ mmm(_) {} |
+ use_mmm_d() { |
+ mmm(4); |
+ } |
} |
-main(A a, B b, C c) { |
+class E extends C { |
+ use_mmm_e() { |
+ mmm(5); |
+ } |
+} |
+class F extends C { |
+ mmm(_) {} |
+ use_mmm_f() { |
+ mmm(6); |
+ } |
+} |
+main(A a, B b, C c, D d, E e, F f) { |
a.mmm(10); |
b.mmm(20); |
c.mmm(30); |
+ d.mmm(40); |
+ e.mmm(50); |
+ f.mmm(60); |
} |
'''); |
- return findElementReferences('mmm() {} // in B', false).then((_) { |
+ return findElementReferences('mmm(_) {} // of C', false).then((_) { |
expect(searchElement.kind, ElementKind.METHOD); |
- assertHasResult(SearchResultKind.INVOCATION, 'mmm(10)'); |
- assertHasResult(SearchResultKind.INVOCATION, 'mmm(20)'); |
- assertHasResult(SearchResultKind.INVOCATION, 'mmm(30)'); |
+ // unqualified |
+ { |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(1)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(2)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(3)'); |
+ assertNoResult(SearchResultKind.INVOCATION, 'mmm(4)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(5)'); |
+ assertNoResult(SearchResultKind.INVOCATION, 'mmm(6)'); |
+ } |
+ // qualified |
+ { |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(10)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(20)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(30)'); |
+ assertNoResult(SearchResultKind.INVOCATION, 'mmm(40)'); |
+ assertHasResult(SearchResultKind.INVOCATION, 'mmm(50)'); |
+ assertNoResult(SearchResultKind.INVOCATION, 'mmm(60)'); |
+ } |
}); |
} |