| Index: pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
|
| index 4093d37a6c08ff002cbf15da30d403c6635c9c47..1978c66b74564c33c379c86fc11a383c66458f2f 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
|
| @@ -4,26 +4,18 @@
|
|
|
| library fasta.kernel_mixin_application_builder;
|
|
|
| -import 'package:kernel/ast.dart' show InterfaceType, Supertype, setParents;
|
| +import 'package:kernel/ast.dart' show InterfaceType, Supertype;
|
|
|
| -import '../modifier.dart' show abstractMask;
|
| -
|
| -import '../source/source_class_builder.dart' show SourceClassBuilder;
|
| +import '../errors.dart' show internalError;
|
|
|
| import '../util/relativize.dart' show relativizeUri;
|
|
|
| import 'kernel_builder.dart'
|
| show
|
| - ConstructorReferenceBuilder,
|
| KernelLibraryBuilder,
|
| - KernelNamedTypeBuilder,
|
| KernelTypeBuilder,
|
| - KernelTypeVariableBuilder,
|
| LibraryBuilder,
|
| - MemberBuilder,
|
| MixinApplicationBuilder,
|
| - Scope,
|
| - TypeBuilder,
|
| TypeVariableBuilder;
|
|
|
| class KernelMixinApplicationBuilder
|
| @@ -48,77 +40,10 @@ class KernelMixinApplicationBuilder
|
| super(supertype, mixins, charOffset, fileUri);
|
|
|
| InterfaceType build(LibraryBuilder library) {
|
| - return buildSupertype(library)?.asInterfaceType;
|
| + return internalError("Unsupported operation.");
|
| }
|
|
|
| Supertype buildSupertype(LibraryBuilder library) {
|
| - if (builtType != null) return builtType;
|
| - KernelTypeBuilder s = this.supertype;
|
| - for (KernelTypeBuilder builder in mixins) {
|
| - s = applyMixin(s, builder);
|
| - }
|
| - builtType = s.buildSupertype(library);
|
| - return builtType;
|
| - }
|
| -
|
| - TypeBuilder applyMixin(TypeBuilder supertype, TypeBuilder cls) {
|
| - KernelLibraryBuilder library = this.library.partOfLibrary ?? this.library;
|
| - TypeBuilder mixin = cls.computeMixin(fileUri, charOffset, library);
|
| - KernelTypeBuilder intf;
|
| - if (cls != mixin) {
|
| - intf = cls;
|
| - }
|
| - List<KernelTypeBuilder> typeArguments;
|
| - List<TypeVariableBuilder> newTypeVariables;
|
| - if (typeVariables != null) {
|
| - assert(subclassName != null);
|
| - newTypeVariables = library.copyTypeVariables(typeVariables);
|
| - Map<TypeVariableBuilder, TypeBuilder> substitution =
|
| - <TypeVariableBuilder, TypeBuilder>{};
|
| - typeArguments = <KernelTypeBuilder>[];
|
| - for (int i = 0; i < typeVariables.length; i++) {
|
| - substitution[typeVariables[i]] = newTypeVariables[i].asTypeBuilder();
|
| - typeArguments.add(typeVariables[i].asTypeBuilder());
|
| - }
|
| - supertype = supertype.subst(substitution);
|
| - mixin = mixin.subst(substitution);
|
| - intf = intf?.subst(substitution);
|
| - }
|
| - // To reduce diff against dartk, we create a different name for mixin
|
| - // applications that have free type variables. We do this by setting
|
| - // [subclassName] when setting typeVariables.
|
| - String name = subclassName != null
|
| - ? "${subclassName}^${mixin.name}"
|
| - : "${supertype.name}&${mixin.name}";
|
| - SourceClassBuilder classBuilder =
|
| - library.mixinApplicationClasses.putIfAbsent(name, () {
|
| - SourceClassBuilder classBuilder = new SourceClassBuilder(
|
| - null,
|
| - abstractMask,
|
| - name,
|
| - newTypeVariables,
|
| - supertype,
|
| - intf == null ? null : <KernelTypeBuilder>[intf],
|
| - new Scope(<String, MemberBuilder>{}, <String, MemberBuilder>{},
|
| - library.scope.withTypeVariables(newTypeVariables),
|
| - isModifiable: false),
|
| - new Scope(<String, MemberBuilder>{}, null, null, isModifiable: false),
|
| - library,
|
| - <ConstructorReferenceBuilder>[],
|
| - charOffset,
|
| - null,
|
| - mixin);
|
| - library.addImplementationBuilder(name, classBuilder, charOffset);
|
| - if (newTypeVariables != null) {
|
| - for (KernelTypeVariableBuilder t in newTypeVariables) {
|
| - classBuilder.cls.typeParameters.add(t.parameter);
|
| - }
|
| - setParents(classBuilder.cls.typeParameters, classBuilder.cls);
|
| - }
|
| - return classBuilder;
|
| - });
|
| - return new KernelNamedTypeBuilder(
|
| - name, typeArguments, charOffset, library.fileUri)
|
| - ..builder = classBuilder;
|
| + return internalError("Unsupported operation.");
|
| }
|
| }
|
|
|