OLD | NEW |
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.element; | 5 library analyzer.src.dart.element.element; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 if (_kernelSupertype == null) { | 1258 if (_kernelSupertype == null) { |
1259 _kernelMixins = <kernel.Supertype>[]; | 1259 _kernelMixins = <kernel.Supertype>[]; |
1260 kernel.Supertype supertype = _kernel.supertype; | 1260 kernel.Supertype supertype = _kernel.supertype; |
1261 if (supertype != null) { | 1261 if (supertype != null) { |
1262 if (_kernel.mixedInType != null) { | 1262 if (_kernel.mixedInType != null) { |
1263 _kernelMixins.add(_kernel.mixedInType); | 1263 _kernelMixins.add(_kernel.mixedInType); |
1264 } | 1264 } |
1265 while (supertype.classNode.isSyntheticMixinImplementation) { | 1265 while (supertype.classNode.isSyntheticMixinImplementation) { |
1266 var superNode = supertype.classNode; | 1266 var superNode = supertype.classNode; |
1267 var substitute = kernel.Substitution.fromSupertype(supertype); | 1267 var substitute = kernel.Substitution.fromSupertype(supertype); |
1268 var thisMixin = substitute.substituteSupertype(superNode.mixedInType); | 1268 |
1269 _kernelMixins.add(thisMixin); | 1269 var superMixin = superNode.mixedInType; |
| 1270 if (superMixin != null) { |
| 1271 var thisMixin = substitute.substituteSupertype(superMixin); |
| 1272 _kernelMixins.add(thisMixin); |
| 1273 } |
| 1274 |
1270 supertype = substitute.substituteSupertype(superNode.supertype); | 1275 supertype = substitute.substituteSupertype(superNode.supertype); |
1271 } | 1276 } |
1272 _kernelMixins = _kernelMixins.reversed.toList(); | 1277 _kernelMixins = _kernelMixins.reversed.toList(); |
1273 } | 1278 } |
1274 _kernelSupertype = supertype; | 1279 _kernelSupertype = supertype; |
1275 } | 1280 } |
1276 } | 1281 } |
1277 | 1282 |
1278 /** | 1283 /** |
1279 * Resynthesize explicit fields and property accessors and fill [_fields] and | 1284 * Resynthesize explicit fields and property accessors and fill [_fields] and |
(...skipping 8269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9549 | 9554 |
9550 @override | 9555 @override |
9551 DartObject computeConstantValue() => null; | 9556 DartObject computeConstantValue() => null; |
9552 | 9557 |
9553 @override | 9558 @override |
9554 void visitChildren(ElementVisitor visitor) { | 9559 void visitChildren(ElementVisitor visitor) { |
9555 super.visitChildren(visitor); | 9560 super.visitChildren(visitor); |
9556 _initializer?.accept(visitor); | 9561 _initializer?.accept(visitor); |
9557 } | 9562 } |
9558 } | 9563 } |
OLD | NEW |