Chromium Code Reviews| 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)'); |
| + } |
| }); |
| } |