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

Side by Side Diff: pkg/analyzer/lib/src/dart/element/member.dart

Issue 2336503003: fix #25578, implement @covariant parameter overrides (Closed)
Patch Set: fix for summaries, thanks Paul! Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 4
5 library analyzer.src.dart.element.member; 5 library analyzer.src.dart.element.member;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/constant/value.dart'; 8 import 'package:analyzer/dart/constant/value.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 * Initialize a newly created element to represent a field formal parameter, 227 * Initialize a newly created element to represent a field formal parameter,
228 * based on the [baseElement], defined by the [definingType]. If [type] 228 * based on the [baseElement], defined by the [definingType]. If [type]
229 * is passed it will be used as the substituted type for this member. 229 * is passed it will be used as the substituted type for this member.
230 */ 230 */
231 FieldFormalParameterMember( 231 FieldFormalParameterMember(
232 FieldFormalParameterElement baseElement, ParameterizedType definingType, 232 FieldFormalParameterElement baseElement, ParameterizedType definingType,
233 [DartType type]) 233 [DartType type])
234 : super(baseElement, definingType, type); 234 : super(baseElement, definingType, type);
235 235
236 @override 236 @override
237 bool get isCovariant => baseElement.isCovariant;
238
239 @override
237 FieldElement get field { 240 FieldElement get field {
238 FieldElement field = (baseElement as FieldFormalParameterElement).field; 241 FieldElement field = (baseElement as FieldFormalParameterElement).field;
239 if (field is FieldElement) { 242 if (field is FieldElement) {
240 return FieldMember.from( 243 return FieldMember.from(
241 field, substituteFor(field.enclosingElement.type)); 244 field, substituteFor(field.enclosingElement.type));
242 } 245 }
243 return field; 246 return field;
244 } 247 }
245 248
246 @override 249 @override
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 @override 676 @override
674 String get defaultValueCode => baseElement.defaultValueCode; 677 String get defaultValueCode => baseElement.defaultValueCode;
675 678
676 @override 679 @override
677 Element get enclosingElement => baseElement.enclosingElement; 680 Element get enclosingElement => baseElement.enclosingElement;
678 681
679 @override 682 @override
680 int get hashCode => baseElement.hashCode; 683 int get hashCode => baseElement.hashCode;
681 684
682 @override 685 @override
686 bool get isCovariant => baseElement.isCovariant;
687
688 @override
683 bool get isInitializingFormal => baseElement.isInitializingFormal; 689 bool get isInitializingFormal => baseElement.isInitializingFormal;
684 690
685 @override 691 @override
686 ParameterKind get parameterKind => baseElement.parameterKind; 692 ParameterKind get parameterKind => baseElement.parameterKind;
687 693
688 @override 694 @override
689 List<ParameterElement> get parameters { 695 List<ParameterElement> get parameters {
690 DartType type = this.type; 696 DartType type = this.type;
691 if (type is FunctionType) { 697 if (type is FunctionType) {
692 return type.parameters; 698 return type.parameters;
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 DartObject computeConstantValue() => baseElement.computeConstantValue(); 1066 DartObject computeConstantValue() => baseElement.computeConstantValue();
1061 1067
1062 @override 1068 @override
1063 void visitChildren(ElementVisitor visitor) { 1069 void visitChildren(ElementVisitor visitor) {
1064 // TODO(brianwilkerson) We need to finish implementing the accessors used 1070 // TODO(brianwilkerson) We need to finish implementing the accessors used
1065 // below so that we can safely invoke them. 1071 // below so that we can safely invoke them.
1066 super.visitChildren(visitor); 1072 super.visitChildren(visitor);
1067 baseElement.initializer?.accept(visitor); 1073 baseElement.initializer?.accept(visitor);
1068 } 1074 }
1069 } 1075 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698