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

Side by Side Diff: pkg/kernel/lib/class_hierarchy.dart

Issue 2542143003: Fix a bug in kernel class hierarchy. (Closed)
Patch Set: Created 4 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 result[storeIndex++] = inheritedMember; 408 result[storeIndex++] = inheritedMember;
409 ++j; 409 ++j;
410 } else { 410 } else {
411 result[storeIndex++] = declaredMember; 411 result[storeIndex++] = declaredMember;
412 ++i; 412 ++i;
413 ++j; // Move past overridden member. 413 ++j; // Move past overridden member.
414 } 414 }
415 } 415 }
416 // One of the two lists is now exhausted, copy over the remains. 416 // One of the two lists is now exhausted, copy over the remains.
417 while (i < declared.length) { 417 while (i < declared.length) {
418 result[storeIndex++] = declared[i++]; 418 Member declaredMember = declared[i++];
419 if (skipAbstractMembers && declaredMember.isAbstract) continue;
420 result[storeIndex++] = declaredMember;
419 } 421 }
420 while (j < inherited.length) { 422 while (j < inherited.length) {
421 result[storeIndex++] = inherited[j++]; 423 Member inheritedMember = inherited[j++];
424 if (skipAbstractMembers && inheritedMember.isAbstract) continue;
425 result[storeIndex++] = inheritedMember;
422 } 426 }
423 result.length = storeIndex; 427 result.length = storeIndex;
424 return result; 428 return result;
425 } 429 }
426 430
427 /// Returns the subset of members in [inherited] for which a member with the 431 /// Returns the subset of members in [inherited] for which a member with the
428 /// same name does not occur in [declared]. 432 /// same name does not occur in [declared].
429 /// 433 ///
430 /// The input lists must be sorted, and the returned list is sorted. 434 /// The input lists must be sorted, and the returned list is sorted.
431 static List<Member> _getUnshadowedInheritedMembers( 435 static List<Member> _getUnshadowedInheritedMembers(
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 847
844 /// Non-final instance fields and setters implemented by this class 848 /// Non-final instance fields and setters implemented by this class
845 /// (declared or inherited). 849 /// (declared or inherited).
846 List<Member> implementedSetters; 850 List<Member> implementedSetters;
847 851
848 List<Member> interfaceGettersAndCalls; 852 List<Member> interfaceGettersAndCalls;
849 List<Member> interfaceSetters; 853 List<Member> interfaceSetters;
850 854
851 _ClassInfo(this.classNode); 855 _ClassInfo(this.classNode);
852 } 856 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698