Commit Graph

1019 Commits

Author SHA1 Message Date
John Messerly 2d5525fc4a Merge pull request #319 from dart-lang/closure-qualify
Qualified exports and inheritance for Closure
2015-09-25 10:53:37 -07:00
John Messerly 28f1e80cd6 fix some errors in our SDK, mostly around numbers, see issue #103
also improved codegen of JSNumber's methods

R=leafp@google.com

Review URL: https://codereview.chromium.org/1348453004 .
2015-09-18 17:10:02 -07:00
Vijay Menon bf99bdc21c Remove redundant call
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1357713006 .
2015-09-18 15:40:35 -07:00
John Messerly bea9ae786a add language tests & run them in karma 2015-09-16 16:00:46 -07:00
John Messerly bcec623909 fixes #315, order of libraries in the HTML file
the lesson here is never use .importedLibraries ... we might want to change it in analyzer to use LinkedHashSet ...

R=vsm@google.com

Review URL: https://codereview.chromium.org/1337993004 .
2015-09-15 09:13:18 -07:00
John Messerly ff1b78ca42 fix a few more codegen issues:
* don't generate script tag
* handle U+2028 and U+2029
* handle name conflict with constructor

R=vsm@google.com

Review URL: https://codereview.chromium.org/1347453002 .
2015-09-14 17:06:28 -07:00
Olivier Chafik 58f1ca9259 Qualified exports and inheritance for Closure (fixes core.Object issue) 2015-09-14 14:07:02 +01:00
John Messerly 637c2c83de fixes #314, super method tear offs
R=leafp@google.com

Review URL: https://codereview.chromium.org/1310513013 .
2015-09-10 17:18:21 -07:00
John Messerly dc560e572c fix readability regressions from previous block-scope CL
also reverts the simple incremental compile code, it wasn't aware of our own compiler's version.

also fixes a warning from analyzer

R=leafp@google.com

Review URL: https://codereview.chromium.org/1305413006 .
2015-09-09 15:52:17 -07:00
John Messerly 99bdee4f8d fix implicit_scope_test and builtin_identifier_test
these were generating invalid JS code

R=vsm@google.com

Review URL: https://codereview.chromium.org/1328303002 .
2015-09-08 16:56:50 -07:00
John Messerly 7263daed54 fix dynamic type literal
it doesn't have a library

R=leafp@google.com

Review URL: https://codereview.chromium.org/1310943005 .
2015-09-04 15:57:32 -07:00
John Messerly badedeaf16 fix cascade on ThisExpression
R=leafp@google.com

Review URL: https://codereview.chromium.org/1309383003 .
2015-09-04 15:28:38 -07:00
Vijay Menon 33ad4d9600 Reformat
Olivier: running presubmit locally (for me) reformats a few files.  May be a pub upgrade issue to get on the latest formatter.

TBR=ochafik@google.com

Review URL: https://codereview.chromium.org/1322673004 .
2015-09-02 12:53:05 -07:00
Olivier Chafik 8ebe4c8a09 Merge pull request #286 from dart-lang/closure-annotations
Output Closure annotations when --closure (very experimental feature)
2015-09-02 18:34:54 +01:00
John Messerly 707b9cc09c triage remaining async tests
one fix, two rejected statically

R=leafp@google.com

Review URL: https://codereview.chromium.org/1319523007 .
2015-08-31 17:49:41 -07:00
Vijay Menon b0abb3b302 Some preliminary support for quasi-generics
This just expands John's earlier hack on min/max.  No downward
inference, etc, but it captures some simple cases.  Worthwhile?

Testing whether this makes much of a difference on our larger code bases.

R=jmesserly@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1317933005 .
2015-08-31 09:56:41 -07:00
John Messerly 9c832d6a6b makes tests faster, see #304
this doesn't completely address the issue, but it knocks off some of the time.
also attempt to stabilize error message order.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1321103002 .
2015-08-28 10:14:16 -07:00
John Messerly c4b754b041 use the real matchers for running language tests
R=vsm@google.com

Review URL: https://codereview.chromium.org/1321683004 .
2015-08-28 09:27:36 -07:00
Olivier Chafik 59cf5dd893 Output some basic type annotations for the Closure Compiler when --closure is set. 2015-08-27 16:30:20 +01:00
Vijay Menon 604b199ed3 Make implicit casts hints
This appears to cut out about 1/3 of the strong mode errors reported
in angular2.  The actual cases removed that I looked at seem fine - e.g., we may inject an implicit cast, but it'll work fine at runtime.

Fixes #302

R=leafp@google.com

Review URL: https://codereview.chromium.org/1310053005 .
2015-08-26 15:01:59 -07:00
John Messerly 74c760066b implement null aware ops, fixes #249
this also implements multitest support, which fixes #280

Fixes some other preexisting bugs:
* MetaLets did not simplify themselves correctly in some nested cases
* Library prefixed identifiers did not work as lvalues in opassign
* dsetindex/dput/[]= methods did not return a value
* checker did not correctly handle invalid constructor field initializers
* cascades did not correctly work with method invocations(?)
* postfix ++/-- did not correctly generate lvalues in some cases

The good news: because this reuses on our existing lvalue/metalet helpers, it managed to flush out a lot of bugs in other features that use them.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1316723003 .
2015-08-25 15:13:18 -07:00
Vijay Menon 50eb282f87 Infer parameter types on overrides
Fixes #105

This overlaps with brian's recent CL moving override inference logic.  If this looks good, we'll need to move it over as well.

R=brianwilkerson@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1311863005 .
2015-08-25 10:45:08 -07:00
John Messerly e420033f7c sort errors so they appear in stable order
should be the same order analyzer_cli uses

R=vsm@google.com

Review URL: https://codereview.chromium.org/1299993004 .
2015-08-20 08:59:48 -07:00
Vijay Menon 136396c107 Regen js_test.txt
I'm seeing this diff locally on presubmit.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1300203002 .
2015-08-19 13:09:37 -07:00
Leaf Petersen 8d36859187 Attach type info to extension method and object method tear-offs
Fixes #189.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1293293002 .
2015-08-19 10:01:12 -07:00
John Messerly 38065257a2 fixes #292, report async_helper test failures
R=vsm@google.com

Review URL: https://codereview.chromium.org/1289673007 .
2015-08-19 08:35:41 -07:00
Vijay Menon 8f9c38b128 Enable is and as checks on non-ground types
Failures generate a StrongModeError.  Fixes #236.  Partially addresses #238.

Some issues to do:
- We're too eager to throw a StrongModeError.  E.g., <int>[] is List<String> will throw.
- We don't differentiate between implicit and explicit casts.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1298893003 .
2015-08-19 06:15:04 -07:00
Vijay Menon d3bc427f66 Cleanup InferableOverride
We don't use this anymore.

R=leafp@google.com

Review URL: https://codereview.chromium.org/1296723002 .
2015-08-14 16:09:20 -07:00
Vijay Menon c0100939c2 Implement more of dart:mirrors
This unblocks angular.

See #199

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1252953003 .
2015-08-07 12:40:34 -07:00
John Messerly ae53ea3f15 fix testChecker to include test inside
R=leafp@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org/1273343002 .
2015-08-07 09:59:53 -07:00
John Messerly c6a6488cd2 add special case for min/max, fixes #281
R=leafp@google.com

Review URL: https://codereview.chromium.org/1253903004 .
2015-08-05 11:08:15 -07:00
John Messerly cbe23ee268 implement exports, fixes #141
R=vsm@google.com

Review URL: https://codereview.chromium.org/1263583005 .
2015-08-04 17:23:13 -07:00
John Messerly b393e12c6b fixes #197, don't generate casts that always pass
R=vsm@google.com

Review URL: https://codereview.chromium.org/1261783005 .
2015-08-04 15:42:13 -07:00
John Messerly 8422d7ab48 fix language_tests.js to use strict mode
we weren't running a bunch of tests on the bots :|
amazingly, none were broken yet
this also fixes karma.conf log level, and disables some spammy prints from one of the tests

R=vsm@google.com

Review URL: https://codereview.chromium.org/1257233008 .
2015-08-03 14:08:28 -07:00
John Messerly c5f4228119 format with dart_style 0.2.0
R=vsm@google.com

Review URL: https://codereview.chromium.org/1268813003 .
2015-07-31 09:28:05 -07:00
Olivier Chafik 8426fa9e17 Added bin/devrun.dart, which runs DDC's output with iojs or d8 (issue #225) 2015-07-29 14:17:56 +01:00
John Messerly 49d101c1c4 format with dart_style 0.2.0-rc.3
this unblocks null aware ops

R=vsm@google.com

Review URL: https://codereview.chromium.org/1266483003 .
2015-07-28 18:19:55 -07:00
John Messerly 9137a4538c fixes #221, initial sync*, async, async* implementation
also fixes #270

R=vsm@google.com

Review URL: https://codereview.chromium.org/1243503007 .
2015-07-28 16:52:23 -07:00
John Messerly cc47aa0ce0 update analyzer and dart_style
R=vsm@google.com

Review URL: https://codereview.chromium.org/1258663002 .
2015-07-27 09:36:56 -07:00
John Messerly 8f6761dd4a add test related to #264 and #228
R=vsm@google.com

Review URL: https://codereview.chromium.org/1252773002 .
2015-07-23 10:03:45 -07:00
John Messerly c56eec5708 fixes dart.throw to work for non-objects
language tests use this, for example

R=vsm@google.com

Review URL: https://codereview.chromium.org/1245023004 .
2015-07-23 09:34:41 -07:00
John Messerly bbf292018a allow await to be any value, fixes part of #264
Review URL: https://codereview.chromium.org/1248213002 .
2015-07-22 16:06:31 -07:00
John Messerly 7252228557 fix truncate call to use extension method
R=vsm@google.com

Review URL: https://codereview.chromium.org/1249043006 .
2015-07-22 14:52:40 -07:00
John Messerly 394836eaa2 fixes #259, clone ast before mutation
R=vsm@google.com

Review URL: https://codereview.chromium.org/1245013005 .
2015-07-21 15:36:55 -07:00
John Messerly 60aba749ca fixes #219, able to compile multiple entry points
also speeds up codegen_test by reusing the analysis context
BatchCompiler is pretty close to how analyzer_cli works now (other than missing features)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1235503010.
2015-07-16 17:41:33 -07:00
John Messerly c4267e5d35 analyzer fixes
found these in the "dart analysis" tool window
(after excluding test files and such)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1239803005.
2015-07-15 10:00:20 -07:00
Vijay Menon f50661aac4 Add support for Enums
Fixes #248

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1224083017.
2015-07-14 17:48:38 -07:00
John Messerly edf237c202 fix coverage of sdk build
R=vsm@google.com

Review URL: https://codereview.chromium.org/1223103003.
2015-07-14 17:05:42 -07:00
Vijay Menon 8ccef442a3 Fixes #254 - Better stacktrace support
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1233553005
2015-07-14 13:33:01 -07:00
John Messerly bc4e0f2a38 fixes #6, refactor to use AnalysisError/Listener throughout dev_compiler
Main goal here was to get rid of the enter/exit compilation unit tracking, to allow further Compiler/Server refactoring. We can get the Uri/LineInfo/contents off Source, which AnalysisError already has
SummaryReporter is now fairly generic.

TODOs for the future:
* figure out what to do about ErrorCodes, in particular dev_compiler prefix feels off.
* skip the intermediate StaticInfo types? They're really just builders now for AnalysisError.
* don't classify all existing messages as "AnalyzerError" ... just print them ...
* skip logger. For our command line program, stdout is part of its "API", IMO it shouldn't use logging for those messages. Consider Pub, which uses stdout/err for its messages, and uses logging for more detailed troubleshooting.

R=pquitslund@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1230903002.
2015-07-10 10:15:08 -07:00