| Index: pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
 | 
| diff --git a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
 | 
| index 92eade940472411cdbf0410e14a1c2f5ce88a4f9..fa647841cbb3f046e89cb31e7173ce65ad9da33c 100644
 | 
| --- a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
 | 
| +++ b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
 | 
| @@ -410,51 +410,20 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest {
 | 
|    }
 | 
|  
 | 
|    @failingTest
 | 
| -  test_constructor_initializers_field() async {
 | 
| -    await super.test_constructor_initializers_field();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| +  @_fastaProblem
 | 
|    test_constructor_initializers_field_notConst() async {
 | 
| +    // Fasta generates additional `#errors` top-level variable.
 | 
|      await super.test_constructor_initializers_field_notConst();
 | 
|    }
 | 
|  
 | 
|    @failingTest
 | 
| +  @_fastaProblem
 | 
|    test_constructor_initializers_field_withParameter() async {
 | 
| +    // https://github.com/dart-lang/sdk/issues/30251
 | 
|      await super.test_constructor_initializers_field_withParameter();
 | 
|    }
 | 
|  
 | 
|    @failingTest
 | 
| -  test_constructor_initializers_superInvocation_named() async {
 | 
| -    await super.test_constructor_initializers_superInvocation_named();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| -  test_constructor_initializers_superInvocation_namedExpression() async {
 | 
| -    await super.test_constructor_initializers_superInvocation_namedExpression();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| -  test_constructor_initializers_superInvocation_unnamed() async {
 | 
| -    await super.test_constructor_initializers_superInvocation_unnamed();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| -  test_constructor_initializers_thisInvocation_named() async {
 | 
| -    await super.test_constructor_initializers_thisInvocation_named();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| -  test_constructor_initializers_thisInvocation_namedExpression() async {
 | 
| -    await super.test_constructor_initializers_thisInvocation_namedExpression();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
| -  test_constructor_initializers_thisInvocation_unnamed() async {
 | 
| -    await super.test_constructor_initializers_thisInvocation_unnamed();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
|    test_constructor_redirected_factory_named() async {
 | 
|      await super.test_constructor_redirected_factory_named();
 | 
|    }
 | 
| @@ -551,11 +520,6 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest {
 | 
|    }
 | 
|  
 | 
|    @failingTest
 | 
| -  test_constructor_withCycles_const() async {
 | 
| -    await super.test_constructor_withCycles_const();
 | 
| -  }
 | 
| -
 | 
| -  @failingTest
 | 
|    test_defaultValue_refersToGenericClass_constructor() async {
 | 
|      await super.test_defaultValue_refersToGenericClass_constructor();
 | 
|    }
 | 
| @@ -946,6 +910,11 @@ class ResynthesizeKernelStrongTest extends ResynthesizeTest {
 | 
|    }
 | 
|  
 | 
|    @failingTest
 | 
| +  test_inferred_function_type_in_generic_class_constructor() async {
 | 
| +    await super.test_inferred_function_type_in_generic_class_constructor();
 | 
| +  }
 | 
| +
 | 
| +  @failingTest
 | 
|    test_inferred_function_type_in_generic_class_in_generic_method() async {
 | 
|      await super
 | 
|          .test_inferred_function_type_in_generic_class_in_generic_method();
 | 
| @@ -1914,6 +1883,16 @@ class _ExprBuilder {
 | 
|        }
 | 
|      }
 | 
|  
 | 
| +    if (expr is kernel.StaticInvocation) {
 | 
| +      kernel.Procedure target = expr.target;
 | 
| +      String name = target.name.name;
 | 
| +      List<Expression> arguments = _toArguments(expr.arguments);
 | 
| +      MethodInvocation invocation =
 | 
| +          AstTestFactory.methodInvocation3(null, name, null, arguments);
 | 
| +      invocation.methodName.staticElement = _getElement(target.reference);
 | 
| +      return invocation;
 | 
| +    }
 | 
| +
 | 
|      if (expr is kernel.ConstructorInvocation) {
 | 
|        var element = _getElement(expr.targetReference);
 | 
|  
 | 
| @@ -1935,6 +1914,53 @@ class _ExprBuilder {
 | 
|      throw new UnimplementedError('kernel: (${expr.runtimeType}) $expr');
 | 
|    }
 | 
|  
 | 
| +  ConstructorInitializer buildInitializer(kernel.Initializer k) {
 | 
| +    if (k is kernel.FieldInitializer) {
 | 
| +      Expression value = build(k.value);
 | 
| +      ConstructorFieldInitializer initializer = AstTestFactory
 | 
| +          .constructorFieldInitializer(false, k.field.name.name, value);
 | 
| +      initializer.fieldName.staticElement = _getElement(k.fieldReference);
 | 
| +      return initializer;
 | 
| +    }
 | 
| +
 | 
| +    if (k is kernel.RedirectingInitializer) {
 | 
| +      ConstructorElementImpl redirect = _getElement(k.targetReference);
 | 
| +      var arguments = _toArguments(k.arguments);
 | 
| +
 | 
| +      RedirectingConstructorInvocation invocation =
 | 
| +          AstTestFactory.redirectingConstructorInvocation(arguments);
 | 
| +      invocation.staticElement = redirect;
 | 
| +
 | 
| +      String name = k.target.name.name;
 | 
| +      if (name.isNotEmpty) {
 | 
| +        invocation.constructorName = AstTestFactory.identifier3(name)
 | 
| +          ..staticElement = redirect;
 | 
| +      }
 | 
| +
 | 
| +      return invocation;
 | 
| +    }
 | 
| +
 | 
| +    if (k is kernel.SuperInitializer) {
 | 
| +      ConstructorElementImpl redirect = _getElement(k.targetReference);
 | 
| +      var arguments = _toArguments(k.arguments);
 | 
| +
 | 
| +      SuperConstructorInvocation invocation =
 | 
| +          AstTestFactory.superConstructorInvocation(arguments);
 | 
| +      invocation.staticElement = redirect;
 | 
| +
 | 
| +      String name = k.target.name.name;
 | 
| +      if (name.isNotEmpty) {
 | 
| +        invocation.constructorName = AstTestFactory.identifier3(name)
 | 
| +          ..staticElement = redirect;
 | 
| +      }
 | 
| +
 | 
| +      return invocation;
 | 
| +    }
 | 
| +
 | 
| +    // TODO(scheglov) Support other kernel initializer types.
 | 
| +    throw new UnimplementedError('For ${k.runtimeType}');
 | 
| +  }
 | 
| +
 | 
|    Expression _buildIdentifier(kernel.Reference reference, {bool isGet: false}) {
 | 
|      Element element = _getElement(reference);
 | 
|      if (isGet && element is PropertyInducingElement) {
 | 
| @@ -2100,6 +2126,22 @@ class _KernelLibraryResynthesizerContextImpl
 | 
|    _KernelLibraryResynthesizerContextImpl(this._resynthesizer, this.library);
 | 
|  
 | 
|    @override
 | 
| +  ConstructorInitializer getConstructorInitializer(
 | 
| +      ConstructorElementImpl constructor, kernel.Initializer k) {
 | 
| +    if (k is kernel.LocalInitializer ||
 | 
| +        k is kernel.FieldInitializer && k.isSynthetic ||
 | 
| +        k is kernel.SuperInitializer && k.isSynthetic) {
 | 
| +      return null;
 | 
| +    }
 | 
| +    return new _ExprBuilder(this).buildInitializer(k);
 | 
| +  }
 | 
| +
 | 
| +  @override
 | 
| +  ElementImpl getElement(kernel.Reference reference) {
 | 
| +    return _getElement(reference.canonicalName);
 | 
| +  }
 | 
| +
 | 
| +  @override
 | 
|    Expression getExpression(kernel.Expression expression) {
 | 
|      return new _ExprBuilder(this).build(expression);
 | 
|    }
 | 
| @@ -2144,6 +2186,11 @@ class _KernelLibraryResynthesizerContextImpl
 | 
|        return _resynthesizer.getLibrary(name.name);
 | 
|      }
 | 
|  
 | 
| +    // If the name is private, it is prefixed with a library URI.
 | 
| +    if (name.name.startsWith('_')) {
 | 
| +      parentName = parentName.parent;
 | 
| +    }
 | 
| +
 | 
|      // Skip qualifiers.
 | 
|      bool isGetter = false;
 | 
|      bool isSetter = false;
 | 
| 
 |