@@ -1303,19 +1303,20 @@ class Printer extends Visitor<Null> {
13031303 }
13041304
13051305 visitInstanceCreation (InstanceCreation node) {
1306- write ( '${ node .classNode }' );
1306+ writeClassReferenceFromReference ( node.classReference );
13071307 if (node.typeArguments.isNotEmpty) {
13081308 writeSymbol ('<' );
13091309 writeList (node.typeArguments, writeType);
13101310 writeSymbol ('>' );
13111311 }
1312- write ( ' {' );
1312+ writeSymbol ( ' {' );
13131313 bool first = true ;
13141314 node.fieldValues.forEach ((Reference fieldRef, Expression value) {
13151315 if (! first) {
13161316 writeComma ();
13171317 }
1318- write ('${fieldRef .asField .name }: ' );
1318+ writeWord ('${fieldRef .asField .name .name }' );
1319+ writeSymbol (':' );
13191320 writeExpression (value);
13201321 first = false ;
13211322 });
@@ -1339,8 +1340,7 @@ class Printer extends Visitor<Null> {
13391340 writeExpression (unusedArgument);
13401341 first = false ;
13411342 }
1342-
1343- write ('}' );
1343+ writeSymbol ('}' );
13441344 }
13451345
13461346 visitIsExpression (IsExpression node) {
@@ -2001,77 +2001,91 @@ class Printer extends Visitor<Null> {
20012001 }
20022002 }
20032003
2004+ void writeConstantReference (Constant node) {
2005+ writeWord (syntheticNames.nameConstant (node));
2006+ }
2007+
20042008 visitConstantExpression (ConstantExpression node) {
2005- writeWord (syntheticNames. nameConstant ( node.constant) );
2009+ writeConstantReference ( node.constant);
20062010 }
20072011
20082012 defaultConstant (Constant node) {
2009- final String name = syntheticNames.nameConstant (node);
2010- endLine (' $name = $node ' );
2013+ writeIndentation ();
2014+ writeConstantReference (node);
2015+ writeSpaced ('=' );
2016+ endLine ('$node ' );
20112017 }
20122018
20132019 visitListConstant (ListConstant node) {
2014- final String name = syntheticNames.nameConstant (node);
2015- write (' $name = ' );
2016- final String entries = node.entries.map ((Constant constant) {
2017- return syntheticNames.nameConstant (constant);
2018- }).join (', ' );
2019- endLine ('${node .runtimeType }<${node .typeArgument }>($entries )' );
2020+ writeIndentation ();
2021+ writeConstantReference (node);
2022+ writeSpaced ('=' );
2023+ writeWord ('ListConstant' );
2024+ writeSymbol ('<' );
2025+ writeType (node.typeArgument);
2026+ writeSymbol ('>(' );
2027+ writeList (node.entries, writeConstantReference);
2028+ endLine (')' );
20202029 }
20212030
20222031 visitSetConstant (SetConstant node) {
2023- final String name = syntheticNames.nameConstant (node);
2024- write (' $name = ' );
2025- final String entries = node.entries.map ((Constant constant) {
2026- return syntheticNames.nameConstant (constant);
2027- }).join (', ' );
2028- endLine ('${node .runtimeType }<${node .typeArgument }>($entries )' );
2032+ writeIndentation ();
2033+ writeConstantReference (node);
2034+ writeSpaced ('=' );
2035+ write ('SetConstant<' );
2036+ writeSymbol ('<' );
2037+ writeType (node.typeArgument);
2038+ writeSymbol ('>(' );
2039+ writeList (node.entries, writeConstantReference);
2040+ endLine (')' );
20292041 }
20302042
20312043 visitMapConstant (MapConstant node) {
2032- final String name = syntheticNames.nameConstant (node);
2033- write (' $name = ' );
2034- final String entries = node.entries.map ((ConstantMapEntry entry) {
2035- final String key = syntheticNames.nameConstant (entry.key);
2036- final String value = syntheticNames.nameConstant (entry.value);
2037- return '$key : $value ' ;
2038- }).join (', ' );
2039- endLine (
2040- '${node .runtimeType }<${node .keyType }, ${node .valueType }>($entries )' );
2044+ writeIndentation ();
2045+ writeConstantReference (node);
2046+ writeSpaced ('=' );
2047+ write ('MapConstant<' );
2048+ writeList ([node.keyType, node.valueType], writeType);
2049+ writeSymbol ('>(' );
2050+ writeList (node.entries, (entry) {
2051+ writeConstantReference (entry.key);
2052+ writeSymbol (':' );
2053+ writeConstantReference (entry.value);
2054+ });
2055+ endLine (')' );
20412056 }
20422057
20432058 visitInstanceConstant (InstanceConstant node) {
2044- final String name = syntheticNames. nameConstant (node );
2045- write ( ' $ name = ' );
2046- final sb = new StringBuffer ( );
2047- sb. write ( '${ node .classNode }' );
2059+ writeIndentation ( );
2060+ writeConstantReference (node );
2061+ writeSpaced ( '=' );
2062+ writeClassReferenceFromReference ( node.classReference );
20482063 if (! node.classNode.typeParameters.isEmpty) {
2049- sb. write ('<' );
2050- sb. write (node.typeArguments. map ((type) => type. toString ()). join ( ', ' ) );
2051- sb. write ('>' );
2064+ writeSymbol ('<' );
2065+ writeList (node.typeArguments, writeType );
2066+ writeSymbol ('>' );
20522067 }
2053- sb.write (' {' );
2054- bool first = true ;
2055- node.fieldValues.forEach ((Reference fieldRef, Constant constant) {
2056- final String name = syntheticNames.nameConstant (constant);
2057- if (! first) {
2058- sb.write (', ' );
2059- }
2060- sb.write ('${fieldRef .asField .name }: $name ' );
2061- first = false ;
2068+ writeSymbol (' {' );
2069+ writeList (node.fieldValues.entries, (entry) {
2070+ writeWord ('${entry .key .asField .name .name }' );
2071+ writeSymbol (':' );
2072+ writeConstantReference (entry.value);
20622073 });
2063- sb.write ('}' );
2064- endLine (sb.toString ());
2074+ endLine ('}' );
20652075 }
20662076
20672077 visitStringConstant (StringConstant node) {
2068- final String name = syntheticNames.nameConstant (node);
2069- endLine (' $name = "${escapeString (node .value )}"' );
2078+ writeIndentation ();
2079+ writeConstantReference (node);
2080+ writeSpaced ('=' );
2081+ endLine ('"${escapeString (node .value )}"' );
20702082 }
20712083
20722084 visitUnevaluatedConstant (UnevaluatedConstant node) {
2073- final String name = syntheticNames.nameConstant (node);
2074- write (' $name = (' );
2085+ writeIndentation ();
2086+ writeConstantReference (node);
2087+ writeSpaced ('=' );
2088+ writeSymbol ('(' );
20752089 writeExpression (node.expression);
20762090 endLine (')' );
20772091 }
0 commit comments