Skip to content

Commit 14a99e5

Browse files
authored
Use InheritanceManager3. (dart-lang#2022)
1 parent a54fab3 commit 14a99e5

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

lib/src/model.dart

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,14 @@ import 'package:analyzer/src/dart/analysis/file_state.dart';
3232
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
3333
import 'package:analyzer/src/dart/element/element.dart';
3434
import 'package:analyzer/src/dart/element/handle.dart';
35+
import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
3536
import 'package:analyzer/src/dart/element/member.dart'
3637
show ExecutableMember, Member, ParameterMember;
3738
import 'package:analyzer/src/dart/sdk/sdk.dart';
3839
import 'package:analyzer/src/generated/engine.dart' hide AnalysisResult;
3940
import 'package:analyzer/src/generated/java_io.dart';
4041
import 'package:analyzer/src/generated/resolver.dart'
41-
show
42-
Namespace,
43-
NamespaceBuilder,
44-
InheritanceManager; // ignore: deprecated_member_use
42+
show Namespace, NamespaceBuilder;
4543
import 'package:analyzer/src/generated/sdk.dart';
4644
import 'package:analyzer/src/generated/source.dart';
4745
import 'package:analyzer/src/generated/source_io.dart';
@@ -1114,14 +1112,25 @@ class Class extends Container
11141112

11151113
List<ExecutableElement> get _inheritedElements {
11161114
if (__inheritedElements == null) {
1117-
Map<String, ExecutableElement> cmap = definingLibrary.inheritanceManager
1118-
.getMembersInheritedFromClasses(// ignore: deprecated_member_use
1119-
element);
1120-
Map<String, ExecutableElement> imap = definingLibrary.inheritanceManager
1121-
.getMembersInheritedFromInterfaces(// ignore: deprecated_member_use
1122-
element);
1123-
__inheritedElements = List.from(cmap.values)
1124-
..addAll(imap.values.where((e) => !cmap.containsKey(e.name)));
1115+
var classElement = element as ClassElement;
1116+
var classType = classElement.type;
1117+
if (classType.isObject) {
1118+
return __inheritedElements = <ExecutableElement>[];
1119+
}
1120+
1121+
var inheritance = definingLibrary.inheritanceManager;
1122+
var cmap = inheritance.getInheritedConcreteMap(classType);
1123+
var imap = inheritance.getInheritedMap(classType);
1124+
1125+
var combinedMap = <String, ExecutableElement>{};
1126+
for (var nameObj in cmap.keys) {
1127+
combinedMap[nameObj.name] = cmap[nameObj];
1128+
}
1129+
for (var nameObj in imap.keys) {
1130+
combinedMap[nameObj.name] ??= imap[nameObj];
1131+
}
1132+
1133+
__inheritedElements = combinedMap.values.toList();
11251134
}
11261135
return __inheritedElements;
11271136
}
@@ -2586,14 +2595,12 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
25862595
return '${package.baseHref}${library.dirName}/$fileName';
25872596
}
25882597

2589-
// ignore: deprecated_member_use
2590-
InheritanceManager _inheritanceManager;
2598+
InheritanceManager3 _inheritanceManager;
25912599

2592-
// ignore: deprecated_member_use
2593-
InheritanceManager get inheritanceManager {
2600+
InheritanceManager3 get inheritanceManager {
25942601
if (_inheritanceManager == null) {
2595-
// ignore: deprecated_member_use
2596-
_inheritanceManager = InheritanceManager(element);
2602+
var typeSystem = element.context.typeSystem;
2603+
_inheritanceManager = InheritanceManager3(typeSystem);
25972604
}
25982605
return _inheritanceManager;
25992606
}

0 commit comments

Comments
 (0)