Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart |
| index f1fbe6df79052d04964fb89d3731fca2e411b38c..e41c22171ed97744c74290c530ae2521803834b4 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart |
| @@ -58,7 +58,6 @@ import '../js_emitter.dart' |
| show |
| ClassStubGenerator, |
| CodeEmitterTask, |
| - computeMixinClass, |
| Emitter, |
| InterceptorStubGenerator, |
| MainCallStubGenerator, |
| @@ -234,8 +233,13 @@ class ProgramBuilder { |
| "${superclass} of $c.")); |
| } |
| if (c is MixinApplication) { |
| - c.setMixinClass(_classes[computeMixinClass(cls)]); |
| - assert(c.mixinClass != null); |
| + ClassEntity effectiveMixinClass = |
| + _elementEnvironment.getEffectiveMixinClass(cls); |
| + c.setMixinClass(_classes[effectiveMixinClass]); |
| + assert( |
| + c.mixinClass != null, |
| + failedAt(cls, |
| + "No class for effective mixin ${effectiveMixinClass} on $cls.")); |
|
Emily Fortuna
2017/06/13 17:22:50
nit: >80 char here
|
| } |
| }); |
| @@ -327,7 +331,7 @@ class ProgramBuilder { |
| void collect(ClassElement element) { |
| allocatedClasses.add(element); |
| if (element.isMixinApplication) { |
| - collect(computeMixinClass(element)); |
| + collect(_elementEnvironment.getEffectiveMixinClass(element)); |
| } |
| if (element.superclass != null) { |
| collect(element.superclass); |
| @@ -743,7 +747,7 @@ class ProgramBuilder { |
| // MixinApplications run through the members of their mixin. Here, we are |
| // only interested in direct members. |
| - if (!onlyForRti && !_elementEnvironment.isUnnamedMixinApplication(cls)) { |
| + if (!onlyForRti && !_elementEnvironment.isMixinApplication(cls)) { |
| _elementEnvironment.forEachClassMember(cls, visitMember); |
| if (cls is ClassElement) { |
| // TODO(johnniwinther): Support constructor bodies for entities. |
| @@ -802,7 +806,7 @@ class ProgramBuilder { |
| _worldBuilder.directlyInstantiatedClasses.contains(cls); |
| Class result; |
| - if (_elementEnvironment.isUnnamedMixinApplication(cls) && !onlyForRti) { |
| + if (_elementEnvironment.isMixinApplication(cls) && !onlyForRti) { |
| assert(!_nativeData.isNativeClass(cls)); |
| assert(methods.isEmpty); |
| assert(!isClosureBaseClass); |