Chromium Code Reviews| Index: lib/compiler/implementation/dart_backend/renamer.dart |
| diff --git a/lib/compiler/implementation/dart_backend/renamer.dart b/lib/compiler/implementation/dart_backend/renamer.dart |
| index fc1a477a5ef324b68d0548d148d158c390bb8ead..20dcc9a969c84c0457feb90ad9241cf1a2f15a6d 100644 |
| --- a/lib/compiler/implementation/dart_backend/renamer.dart |
| +++ b/lib/compiler/implementation/dart_backend/renamer.dart |
| @@ -101,7 +101,7 @@ void renamePlaceholders( |
| return result.toString(); |
| } |
| - String renameConstructor(Element element, DartType type, |
| + String renameConstructor(Element element, ConstructorPlaceholder placeholder, |
| Function renameString, Function renameElement) { |
| assert(element.isConstructor()); |
| StringBuffer result = new StringBuffer(); |
| @@ -109,8 +109,10 @@ void renamePlaceholders( |
| if (element.name != element.getEnclosingClass().name) { |
| // Named constructor or factory. Is there a more reliable way to check |
| // this case? |
| - result.add(renameType(type, renameElement)); |
| - result.add('.'); |
| + if (!placeholder.isRedirectingCall) { |
|
Anton Muhin
2012/10/30 15:23:44
where do we add super./this. prefix?
Roman
2012/10/30 15:52:09
Nowhere, the placeholder is placed for selector no
|
| + result.add(renameType(placeholder.type, renameElement)); |
| + result.add('.'); |
| + } |
| String prefix = '${element.getEnclosingClass().name.slowToString()}\$'; |
| if (!name.startsWith(prefix)) { |
| // Factory for another interface (that is going away soon). |
| @@ -120,7 +122,9 @@ void renamePlaceholders( |
| name = name.substring(prefix.length); |
| result.add(name); |
| } else { |
| - result.add(renameType(type, renameElement)); |
| + assert(!placeholder.isRedirectingCall); |
| + if (placeholder.isRedirectingCall) throw 'e'; |
|
Anton Muhin
2012/10/30 15:23:44
isn't assert enough?
Roman
2012/10/30 15:52:09
Sorry, that was my way to ensure that placeholder
|
| + result.add(renameType(placeholder.type, renameElement)); |
| } |
| return result.toString(); |
| } |
| @@ -281,7 +285,7 @@ void renamePlaceholders( |
| (Element constructor, List<ConstructorPlaceholder> placeholders) { |
| for (ConstructorPlaceholder ph in placeholders) { |
| renames[ph.node] = |
| - renameConstructor(constructor, ph.type, rename, renameElement); |
| + renameConstructor(constructor, ph, rename, renameElement); |
| } |
| }); |
| sortedForEach(placeholderCollector.privateNodes, (library, nodes) { |