| Index: pkg/analyzer/lib/src/kernel/resynthesize.dart
|
| diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart
|
| index cd0900ff2408307ca17057854b7e996964923d91..3c097f155cafdb8fbb9fd4d3dcd60ca1dac8c2b7 100644
|
| --- a/pkg/analyzer/lib/src/kernel/resynthesize.dart
|
| +++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart
|
| @@ -12,6 +12,7 @@ import 'package:analyzer/src/dart/element/type.dart';
|
| import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
|
| import 'package:analyzer/src/generated/testing/ast_test_factory.dart';
|
| import 'package:front_end/src/base/source.dart';
|
| +import 'package:front_end/src/fasta/kernel/redirecting_factory_body.dart';
|
| import 'package:kernel/kernel.dart' as kernel;
|
| import 'package:kernel/type_environment.dart' as kernel;
|
|
|
| @@ -394,11 +395,6 @@ class _KernelLibraryResynthesizerContextImpl
|
| }
|
|
|
| @override
|
| - ElementImpl getElement(kernel.Reference reference) {
|
| - return _getElement(reference.canonicalName);
|
| - }
|
| -
|
| - @override
|
| Expression getExpression(kernel.Expression expression) {
|
| return new _ExprBuilder(this).build(expression);
|
| }
|
| @@ -415,6 +411,30 @@ class _KernelLibraryResynthesizerContextImpl
|
| return _resynthesizer.getLibrary(uriStr);
|
| }
|
|
|
| + @override
|
| + ConstructorElementImpl getRedirectedConstructor(
|
| + kernel.Constructor kernelConstructor, kernel.Procedure kernelFactory) {
|
| + if (kernelConstructor != null) {
|
| + for (var initializer in kernelConstructor.initializers) {
|
| + if (initializer is kernel.RedirectingInitializer) {
|
| + return _getElement(initializer.targetReference.canonicalName)
|
| + as ConstructorElementImpl;
|
| + }
|
| + }
|
| + }
|
| + if (kernelFactory != null) {
|
| + kernel.Statement body = kernelFactory.function.body;
|
| + if (body is RedirectingFactoryBody) {
|
| + kernel.Member target = body.target;
|
| + if (target != null) {
|
| + return _getElement(target.reference.canonicalName)
|
| + as ConstructorElementImpl;
|
| + }
|
| + }
|
| + }
|
| + return null;
|
| + }
|
| +
|
| DartType getType(ElementImpl context, kernel.DartType kernelType) {
|
| if (kernelType is kernel.DynamicType) return DynamicTypeImpl.instance;
|
| if (kernelType is kernel.VoidType) return VoidTypeImpl.instance;
|
|
|