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 |