Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: pkg/analysis_server/test/search/type_hierarchy_test.dart

Issue 1615093002: Issue 25538. Fix for type hierarchy and private class members. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/search/type_hierarchy.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/search/type_hierarchy_test.dart
diff --git a/pkg/analysis_server/test/search/type_hierarchy_test.dart b/pkg/analysis_server/test/search/type_hierarchy_test.dart
index 1d6ddf9ac1b29d013d1f8bf84a6099d32aafcc3a..c8b62ddd2cbe7af36763f938cdd9216b0263b357 100644
--- a/pkg/analysis_server/test/search/type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/search/type_hierarchy_test.dart
@@ -186,8 +186,9 @@ import 'package:pkgA/libA.dart';
class C extends A {}
''');
// configure roots
- Request request = new AnalysisSetAnalysisRootsParams(
- [projectPath, '/packages/pkgA'], []).toRequest('0');
+ Request request =
+ new AnalysisSetAnalysisRootsParams([projectPath, '/packages/pkgA'], [])
+ .toRequest('0');
handleSuccessfulRequest(request);
// test A type hierarchy
List<TypeHierarchyItem> items = await _getTypeHierarchy('A {}');
@@ -699,6 +700,66 @@ class D extends C {
itemD.memberElement.location.offset, findOffset('test() {} // in D'));
}
+ test_member_method_private_differentLib() async {
+ addFile(
+ '$testFolder/lib.dart',
+ r'''
+import 'test.dart';
+class A {
+ void _m() {}
+}
+class C extends B {
+ void _m() {}
+}
+''');
+ addTestFile('''
+import 'lib.dart';
+class B extends A {
+ _m() {} // in B
+}
+class D extends C {
+ _m() {} // in D
+}
+''');
+ List<TypeHierarchyItem> items = await _getTypeHierarchy('_m() {} // in B');
+ var itemB = items[0];
+ var itemA = items[itemB.superclass];
+ var itemC = items[itemB.subclasses[0]];
+ var itemD = items[itemC.subclasses[0]];
+ expect(itemB.classElement.name, 'B');
+ expect(itemA.classElement.name, 'A');
+ expect(itemC.classElement.name, 'C');
+ expect(itemD.classElement.name, 'D');
+ expect(itemA.memberElement, isNull);
+ expect(itemC.memberElement, isNull);
+ expect(itemB.memberElement, isNotNull);
+ expect(itemD.memberElement, isNotNull);
+ }
+
+ test_member_method_private_sameLib() async {
+ addTestFile('''
+class A {
+ _m() {} // in A
+}
+class B extends A {
+ _m() {} // in B
+}
+class C extends B {
+ _m() {} // in C
+}
+''');
+ List<TypeHierarchyItem> items = await _getTypeHierarchy('_m() {} // in B');
+ var itemB = items[0];
+ var itemA = items[itemB.superclass];
+ var itemC = items[itemB.subclasses[0]];
+ expect(itemA.classElement.name, 'A');
+ expect(itemB.classElement.name, 'B');
+ expect(itemC.classElement.name, 'C');
+ expect(itemA.memberElement.location.offset, findOffset('_m() {} // in A'));
+ expect(itemB.memberElement.location.offset, findOffset('_m() {} // in B'));
+ expect(itemC.memberElement.location.offset, findOffset('_m() {} // in C'));
+ }
+
test_member_ofMixin2_method() async {
addTestFile('''
class M1 {
@@ -963,8 +1024,9 @@ class D extends C {}
test_superOnly_fileDoesNotExist() async {
Request request = new SearchGetTypeHierarchyParams(
- '/does/not/exist.dart', 0,
- superOnly: true).toRequest(requestId);
+ '/does/not/exist.dart', 0,
+ superOnly: true)
+ .toRequest(requestId);
Response response = await serverChannel.sendRequest(request);
List<TypeHierarchyItem> items =
new SearchGetTypeHierarchyResult.fromResponse(response).hierarchyItems;
@@ -973,7 +1035,8 @@ class D extends C {}
Request _createGetTypeHierarchyRequest(String search, {bool superOnly}) {
return new SearchGetTypeHierarchyParams(testFile, findOffset(search),
- superOnly: superOnly).toRequest(requestId);
+ superOnly: superOnly)
+ .toRequest(requestId);
}
Future<List<TypeHierarchyItem>> _getTypeHierarchy(String search,
« no previous file with comments | « pkg/analysis_server/lib/src/search/type_hierarchy.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698