Commit Graph

64 Commits

Author SHA1 Message Date
smok@google.com d182624b92 Make ClassNode visit type parameters in visitChildren
Review URL: https://chromiumcodereview.appspot.com//10831406

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11057 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 15:18:28 +00:00
antonm@google.com 593c74ee2a Fix a warning.
TBR=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10855203

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10852 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-16 18:25:54 +00:00
antonm@google.com e8ec16c681 Support new try/catch syntax.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10831328

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10721 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-15 12:58:57 +00:00
ahe@google.com d47c99d041 Support for new catch syntax in dart2js
Committing on behalft of: Alexander Aprelev <aprelev@gmail.com>

BUG=3758

Review URL: https://chromiumcodereview.appspot.com//10857013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10704 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-15 09:51:18 +00:00
smok@google.com 56aeac8cf2 Fix unparse of sendset and add Unparser constructor TODO
Review URL: https://chromiumcodereview.appspot.com//10824280

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10591 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-13 17:53:45 +00:00
antonm@google.com 894911a4b0 Refactor send and sendset unparsing.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10854113

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10559 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-13 10:15:50 +00:00
antonm@google.com bf6a549072 Fix some operator madness (see incr_op_test for more details.)
I am planning to refactor SendSet unparse to reduce code duplication.

R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10826245

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10553 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-13 07:49:25 +00:00
antonm@google.com db0b3f41d4 Remove unused method.
TBR=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10832245

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10509 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-10 14:53:44 +00:00
smok@google.com 7807c22f01 Fix dart2js tests, unparser initializer with closure.
TBR=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10855073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10434 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-09 08:27:08 +00:00
smok@google.com e636d1cafd A visitor that builds a map from node to "Usage".
A renamer just renames "usages" according to its type.
This allows us to split various send-guessing logic and renaming.
No scopes yet.

Review URL: https://chromiumcodereview.appspot.com//10836128

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10433 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-09 07:49:11 +00:00
antonm@google.com d084d02749 First take on support of library private names.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10826186

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10367 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 08:05:45 +00:00
rnystrom@google.com 0bc9b19740 Rename BadNumberFormatException -> FormatException.
Review URL: https://chromiumcodereview.appspot.com//10850034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10354 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-07 20:56:59 +00:00
antonm@google.com d26512406d Properly parse operator declarations without return type.
Formerly, 'operator' token was parsed as a return type, fix it.
Emit a space if operator name is 'negative' as otherwise it's
unparsed as 'operatornegative'.

R=ahe@google.com,smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10836034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10283 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-06 11:36:11 +00:00
antonm@google.com 833a6c0cd3 Improve renaming of constructors and factories.
Unfortunately, this implementation is not bug free, see comments
for detailed discussion.

R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10828121

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10232 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 13:56:30 +00:00
smok@google.com e842adc7ae Get back recording 'implements' and 'extends' keyword on NodeList
as suggested by Peter in https://chromiumcodereview.appspot.com/10786028/

Review URL: https://chromiumcodereview.appspot.com//10832129

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10214 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-03 08:03:16 +00:00
antonm@google.com d39132ea71 Fix interpolation unparse.
Formerly, string interpolation parts were put into a node list with null
delimiter, which was converted to single space string.  That lead to extra
space when unparsing interpolation: '$a $b' -> '$a  $b'.

Make empty string delimiter explicit and do not augument it with an additional
space.

R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10824113

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10073 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 17:43:50 +00:00
antonm@google.com 6065dd688b Properly unparse as operator.
It requires spaces like 'is' does.

R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10828093

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10055 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 12:46:56 +00:00
antonm@google.com 37254909d3 Better cascade support.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10843002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10053 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 12:15:11 +00:00
smok@google.com ec4e5592a6 Refactor prettyprinter, keep track of currently opened nodes,
output begin and end token for all nodes.

Review URL: https://chromiumcodereview.appspot.com//10837017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10049 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 10:09:07 +00:00
antonm@google.com 50ef55d111 Support cascade receivers.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10821101

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10048 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 09:39:26 +00:00
antonm@google.com beb0a3c380 Support signed constants.
R=smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10828076

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10039 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-31 08:01:18 +00:00
smok@google.com 9f7a2372ef dart2dart: Introduce Renamer that is used by renaming unparser
to rename identifiers before printing them out. The renamer
renames top-level elements to avoid conflicts.

Review URL: https://chromiumcodereview.appspot.com//10795064

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9847 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-24 12:23:25 +00:00
smok@google.com 99a7fc3910 Enhance ClassNode prettyprint
TBR=antonm@google.com

Review URL: https://chromiumcodereview.appspot.com//10779031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9702 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-17 13:47:42 +00:00
smok@google.com 93fc339aa3 Enhance prettyprint for TypeAnnotation
Review URL: https://chromiumcodereview.appspot.com//10792013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9659 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-16 10:36:24 +00:00
floitsch@google.com 1bada9731e Transform (x && y) && z into x && (y && z).
Review URL: https://chromiumcodereview.appspot.com//10696192

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9626 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-13 11:44:12 +00:00
smok@google.com 6cb768b4a2 Fix factory constructors unparse:
class A{
  A.fromFoo();
}
=>
class A{
  AfromFoo();
}

and also print out initializers.

Review URL: https://chromiumcodereview.appspot.com//10692186

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9623 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-13 08:34:56 +00:00
smok@google.com 13c270849a PrettyPrinter, some enhancements for FunctionExpression and Send.
Review URL: https://chromiumcodereview.appspot.com//10690164

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9589 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-12 10:33:00 +00:00
smok@google.com 6f953c1d3d dart2dart fix "get" appearing before type in typed getter.
Example:
String get foo() {return smth;}
=>
get String foo() {return smth;}

Review URL: https://chromiumcodereview.appspot.com//10695171

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9587 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-12 09:36:58 +00:00
smok@google.com 3fa18d1a27 Fix unparsing of variable definitions.
Example affecting method with method args:
foo(f(arg)){}

would unparse to:
foo(var f(arg)){}

Also correctly unparse variable definition modifiers.

Review URL: https://chromiumcodereview.appspot.com//10735053

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9550 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 14:00:34 +00:00
lrn@google.com 9010ea745c Add "external" prefix to methods and constructors.
This is expected to be added to the language specification, for allowing the specification of methods with externally bound implementations.

Review URL: https://chromiumcodereview.appspot.com//10697096

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9456 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 06:37:51 +00:00
smok@google.com 7b3401dd48 Fix const unparse. Example:
foo([var a = const[]]) {}
used to unparse to:
foo([var a = []]) {}

Review URL: https://chromiumcodereview.appspot.com//10689104

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9439 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-06 12:57:27 +00:00
smok@google.com 4c9d8416cf Some enhancements of PrettyPrinter for NodeList, LiteralList.
Review URL: https://chromiumcodereview.appspot.com//10701090

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9437 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-06 11:51:44 +00:00
smok@google.com 90424cecb1 Fix unparsing of prefix increments.
http://code.google.com/p/dart/issues/detail?id=3909

Review URL: https://chromiumcodereview.appspot.com//10698092

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9393 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-04 10:31:33 +00:00
johnniwinther@google.com 3fd74bb898 Various token issues fixed in the compiler
Review URL: https://chromiumcodereview.appspot.com//10697003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9199 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 13:33:26 +00:00
johnniwinther@google.com 37a58c918e Token.slowCharLength used in SourceSpan.
Assertion changed to handle empty tokens.
getBeginToken() bugs fixed.
getLibraryOrScriptName() added to LibraryElement.
Optional uri argument added to spanFromNode.

Committed: https://code.google.com/p/dart/source/detail?r=9160

Review URL: https://chromiumcodereview.appspot.com//10697003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9166 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 13:54:39 +00:00
johnniwinther@google.com d23b5d707d Token.slowCharLength used in SourceSpan.
Assertion changed to handle empty tokens.
getBeginToken() bugs fixed.
getLibraryOrScriptName() added to LibraryElement.
Optional uri argument added to spanFromNode.

Review URL: https://chromiumcodereview.appspot.com//10697003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9160 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 12:39:41 +00:00
ahe@google.com 7b31e54ab7 Implement override checks.
First attempt committed as: https://code.google.com/p/dart/source/detail?r=9108

Review URL: https://chromiumcodereview.appspot.com//10575033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9151 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 09:07:36 +00:00
antonm@google.com 38bf8c295b Revert "Implement override checks."
TBR=ahe@google.com

Review URL: https://chromiumcodereview.appspot.com//10666052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9112 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 14:36:00 +00:00
ahe@google.com 7f2041bf11 Implement override checks.
Review URL: https://chromiumcodereview.appspot.com//10575033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9108 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-26 12:51:55 +00:00
antonm@google.com c5da3327ca Add null check.
R=ahe@google.com,smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10582038

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8936 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-20 19:33:03 +00:00
antonm@google.com b2c9f8e853 Add a test for operator[] unparse.
Review URL: https://chromiumcodereview.appspot.com//10583016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8860 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-19 18:09:51 +00:00
antonm@google.com 8dfcfaa11d Better PrettyPrinter output for Return nodes, display tokens and expression.
Review URL: https://chromiumcodereview.appspot.com//10546174

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8774 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 10:13:16 +00:00
floitsch@google.com b5acd09f81 Fix most warnings and other minor cleanups.
Review URL: https://chromiumcodereview.appspot.com//10557003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8719 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-15 13:26:35 +00:00
smok@google.com a426ea512c PrettyPrinter: add an ability to prefix node fields, so instead of:
<NodeList>
we will see:
<statements:NodeList>

(of course if that NodeList is statements for some function expression for example).

nextPrefix

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10532150

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8690 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 21:17:25 +00:00
antonm@google.com 280d4b2f8b Fix unparse for empty initializer or conditionStatement.
R=ahe@google.com,smok@google.com

Review URL: https://chromiumcodereview.appspot.com//10543051

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8665 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 15:37:55 +00:00
ahe@google.com 91e2b7794c Resolution based tree-shaking.
Review URL: https://chromiumcodereview.appspot.com//10542073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8543 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 12:35:34 +00:00
smok@google.com 9d38888d91 Remove printDebugInfo from Unparser
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10456080

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8478 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-09 10:54:41 +00:00
smok@google.com 4e9e66ed71 New Prettyprinter class that converts Node-tree to string.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10449021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8436 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 12:17:21 +00:00
ngeoffray@google.com 5e9caaa372 Only generate assert in checked mode.
Review URL: https://chromiumcodereview.appspot.com//10540052

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8430 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-08 10:21:22 +00:00
smok@google.com f1b603d68f Fix unparsing "for in" constructs.
Source:
main() {
for (var a in b) {
}
}

Bad unparse result:
main(){for (var ainb) {}}

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com//10535054

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8399 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-07 15:18:16 +00:00