| Index: sdk/lib/_internal/compiler/implementation/closure.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/closure.dart b/sdk/lib/_internal/compiler/implementation/closure.dart
|
| index 6abb7bd1113721252116155b45b0f4946b600be3..2fd29dacc6e7b5c837c8061ecd7f3bde81ce885c 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/closure.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/closure.dart
|
| @@ -671,9 +671,17 @@ class ClosureTranslator extends Visitor {
|
| || enclosingElement.kind == ElementKind.GETTER
|
| || enclosingElement.kind == ElementKind.SETTER);
|
| enclosingElement = enclosingElement.enclosingElement) {
|
| - SourceString surroundingName =
|
| - Elements.operatorNameToIdentifier(enclosingElement.name);
|
| - parts = parts.prepend(surroundingName.slowToString());
|
| + // TODO(johnniwinther): Simplify computed names.
|
| + if (enclosingElement.isGenerativeConstructor() ||
|
| + enclosingElement.isGenerativeConstructorBody() ||
|
| + enclosingElement.isFactoryConstructor()) {
|
| + parts = parts.prepend(
|
| + Elements.reconstructConstructorName(enclosingElement));
|
| + } else {
|
| + SourceString surroundingName =
|
| + Elements.operatorNameToIdentifier(enclosingElement.name);
|
| + parts = parts.prepend(surroundingName.slowToString());
|
| + }
|
| // A generative constructors's parent is the class; the class name is
|
| // already part of the generative constructor's name.
|
| if (enclosingElement.kind == ElementKind.GENERATIVE_CONSTRUCTOR) break;
|
|
|