Chromium Code Reviews| Index: pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart |
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart |
| index 34cd076d3c0941f0a6eec0baa1e8520d82735286..9a3bd3e376ae78e5a948bd4f027655a4f291a59c 100644 |
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart |
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart |
| @@ -46,11 +46,15 @@ class SExpressionStringifier extends Indentation implements Visitor<String> { |
| return decorator(node, s); |
| } |
| + String visitThisParameter(Parameter thisParameter) { |
| + return thisParameter == null ? '' : visit(thisParameter) + ' '; |
| + } |
|
asgerf
2015/03/18 13:28:25
I think we try to avoid `visitXXX` names for metho
sra1
2015/03/19 10:42:51
Done.
|
| String visitFunctionDefinition(FunctionDefinition node) { |
| String name = node.element.name; |
| + String thisName = visitThisParameter(node.thisParameter); |
| String parameters = node.parameters.map(visit).join(' '); |
| String body = visit(node.body); |
| - return '$indentation(FunctionDefinition $name ($parameters) return\n' |
| + return '$indentation(FunctionDefinition $name $thisName($parameters) return\n' |
|
asgerf
2015/03/18 13:28:25
Long line
sra1
2015/03/19 10:42:51
Done.
|
| '$body)'; |
| } |
| @@ -68,6 +72,7 @@ class SExpressionStringifier extends Indentation implements Visitor<String> { |
| String visitConstructorDefinition(ConstructorDefinition node) { |
| String name = node.element.name; |
| if (name != '') name = '$name '; |
| + String thisName = visitThisParameter(node.thisParameter); |
| String parameters = node.parameters.map(visit).join(' '); |
| if (node.body != null) { |
| String initializers = indentBlock(() { |
| @@ -80,10 +85,10 @@ class SExpressionStringifier extends Indentation implements Visitor<String> { |
| }); |
| }); |
| String body = visit(node.body); |
| - return '$indentation(ConstructorDefinition $name($parameters) return' |
| + return '$indentation(ConstructorDefinition $name$thisName($parameters) return' |
|
asgerf
2015/03/18 13:28:25
Long line
sra1
2015/03/19 10:42:51
Done.
|
| ' (\n$initializers)\n$body)'; |
| } else { |
| - return '$indentation(ConstructorDefinition $name($parameters) return)'; |
| + return '$indentation(ConstructorDefinition $name$thisName($parameters) return)'; |
| } |
| } |
| @@ -443,7 +448,9 @@ class _Namer { |
| } |
| String getName(Node node) { |
| - assert(_names.containsKey(node)); |
| - return _names[node]; |
| + //assert(_names.containsKey(node)); |
| + //return _names[node]; |
| + if (_names.containsKey(node)) return _names[node]; |
| + return '<<${node}>>'; |
|
asgerf
2015/03/18 13:28:25
It's not clear if this is leftover debugging code
sra1
2015/03/19 10:42:51
I have reverted this change, and added a TODO to m
|
| } |
| } |