| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 library kernel.class_hierarchy; | 4 library kernel.class_hierarchy; |
| 5 | 5 |
| 6 import 'ast.dart'; | 6 import 'ast.dart'; |
| 7 import 'dart:math'; | 7 import 'dart:math'; |
| 8 import 'dart:typed_data'; | 8 import 'dart:typed_data'; |
| 9 import 'type_algebra.dart'; | 9 import 'type_algebra.dart'; |
| 10 | 10 |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 List<Member> declared = | 358 List<Member> declared = |
| 359 setters ? info.declaredSetters : info.declaredGettersAndCalls; | 359 setters ? info.declaredSetters : info.declaredGettersAndCalls; |
| 360 void inheritFrom(Supertype type) { | 360 void inheritFrom(Supertype type) { |
| 361 if (type == null) return; | 361 if (type == null) return; |
| 362 List<Member> inherited = _buildInterfaceMembers( | 362 List<Member> inherited = _buildInterfaceMembers( |
| 363 type.classNode, _infoFor[type.classNode], | 363 type.classNode, _infoFor[type.classNode], |
| 364 setters: setters); | 364 setters: setters); |
| 365 inherited = _getUnshadowedInheritedMembers(declared, inherited); | 365 inherited = _getUnshadowedInheritedMembers(declared, inherited); |
| 366 allInheritedMembers = _merge(allInheritedMembers, inherited); | 366 allInheritedMembers = _merge(allInheritedMembers, inherited); |
| 367 } | 367 } |
| 368 |
| 368 inheritFrom(classNode.supertype); | 369 inheritFrom(classNode.supertype); |
| 369 inheritFrom(classNode.mixedInType); | 370 inheritFrom(classNode.mixedInType); |
| 370 classNode.implementedTypes.forEach(inheritFrom); | 371 classNode.implementedTypes.forEach(inheritFrom); |
| 371 members = _inheritMembers(declared, allInheritedMembers); | 372 members = _inheritMembers(declared, allInheritedMembers); |
| 372 if (setters) { | 373 if (setters) { |
| 373 info.interfaceSetters = members; | 374 info.interfaceSetters = members; |
| 374 } else { | 375 } else { |
| 375 info.interfaceGettersAndCalls = members; | 376 info.interfaceGettersAndCalls = members; |
| 376 } | 377 } |
| 377 return members; | 378 return members; |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 | 848 |
| 848 /// Non-final instance fields and setters implemented by this class | 849 /// Non-final instance fields and setters implemented by this class |
| 849 /// (declared or inherited). | 850 /// (declared or inherited). |
| 850 List<Member> implementedSetters; | 851 List<Member> implementedSetters; |
| 851 | 852 |
| 852 List<Member> interfaceGettersAndCalls; | 853 List<Member> interfaceGettersAndCalls; |
| 853 List<Member> interfaceSetters; | 854 List<Member> interfaceSetters; |
| 854 | 855 |
| 855 _ClassInfo(this.classNode); | 856 _ClassInfo(this.classNode); |
| 856 } | 857 } |
| OLD | NEW |