Commit Graph

1589 Commits

Author SHA1 Message Date
Jennifer Messerly c305d183c3 fix #29504, dcall on object member when a temporary was involved.
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2848153002 .
2017-05-01 10:57:49 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Vijay Menon 7bedf63e1e dart:mirrors workaround for generic methods
Fixes #29509

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2852723002 .
2017-04-28 20:02:13 -07:00
Vijay Menon 334373b1dc Temporarily disable overlapping summary check
Turning this off to unblock the current roll.  We'll try flipping the
flag internally and shaking out the last violators.

R=keertip@google.com

Review-Url: https://codereview.chromium.org/2853543002 .
2017-04-28 11:08:05 -07:00
Bob Nystrom 7f7c681893 Fix a batch of DDC SDK compile errors.
R=floitsch@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2848703003 .
2017-04-27 17:27:02 -07:00
Vijay Menon aa3966dc84 Fix hot dynamic check in WhereIterator
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2843423002 .
2017-04-27 06:35:37 -07:00
Konstantin Shcheglov 8e76c78cce Cache path -> URI mapping in SourceMapPrintingContext.
This improves DDC compiling DDC from 30 to 25 seconds.

R=jmesserly@google.com, vsm@google.com
BUG=

Review-Url: https://codereview.chromium.org/2839733003 .
2017-04-24 19:32:10 -07:00
Vijay Menon 75b7bea014 Snapshot DDC trained on itself
Note: path.canonicalize appears to normalize windows paths (c:/ vs c:\).

Fixes #29119

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

Review-Url: https://codereview.chromium.org/2836483002 .
2017-04-21 16:19:57 -07:00
Jennifer Messerly d26bb56575 fix #27971, implement generic function RTTI
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2832913003 .
2017-04-21 15:40:44 -07:00
Jennifer Messerly bed6f8242a add an option to turn off errors from strong mode is-checks
This adds an option and also has our tests run with it turned off.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2835743002 .
2017-04-21 15:24:32 -07:00
Jacob Richman 7149b90c7c Tighten up handling of JS types and add test.
Side effect of this:
Fix bug where helpers in js_mirrors were specifying that name had to have type String when it could really also be a JS Symbol as well.
Fix bug where top level JS interop members using the external keyword but no @JS keyword were not implemented.
Update js_typed_interop_test.dart so it can work in DDC.
Add regression test for jsify call with native function type arguments.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2827333003 .
2017-04-21 08:44:00 -07:00
Vijay Menon 21c38e6c8c Various DDC fixes for windows
This gets most tests compiling and running on Windows.

Fixes #27450
Fixes #27797
Fixes #28752

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2833633002 .
2017-04-20 11:30:57 -07:00
Vijay Menon b98729503c Fix ddc perf issue
This brings compilation time on large_class_declaration_test down from 30s to 4s.  Just analysis is about 3.2s.  (All #s without snapshotted tools.)

Fixes #29234

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2834663002 .
2017-04-20 11:24:35 -07:00
Vijay Menon 1112ad24cc Make conflicting summary check configurable
Not sure this is a great idea.  DDC will go awry if multiple copies of
the same type exist.  Can analysis or any other analyzer-based tool?

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

Review-Url: https://codereview.chromium.org/2829493002 .
2017-04-20 09:20:08 -07:00
Vijay Menon 8a64625d81 Regenerate DDC artifacts
TBR=jacobr@google.com

Review-Url: https://codereview.chromium.org/2830983002 .
2017-04-19 16:26:22 -07:00
Jacob Richman 0dbb32f406 Run formatter on dev_compiler.
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2830503002 .
2017-04-18 16:16:14 -07:00
Jacob Richman b280a7803d Dev compiler debugger related tweaks.
Optimize dynamic call tracking using random sampling.
Apply source maps to improve dynamic call tracking accuracy.
Dynamic calls within the sdk are now attributed correctly.

Fix bug formatting modules where we were incorrectly flagging them as JS.

BUG=
R=jmesserly@google.com, vsm@google.com

Review-Url: https://codereview.chromium.org/2811343002 .
2017-04-17 14:57:31 -07:00
Vijay Menon a3d2e49198 Revert "Revert "Report error if the same uri appears in multiple summaries.""
Relanding after fixing package_bundle_reader_test.dart.

Note, original CL (already reviewed here: https://codereview.chromium.org/2781483007/) is patch set 1.

Test fix is patch set #2.

R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2825503002 .
2017-04-17 10:11:21 -07:00
Vijay Menon dcdccf4750 Revert "Report error if the same uri appears in multiple summaries."
This reverts commit 2afa21bb2c.

Breaking the bots.

TBR=jmesserly@google.com
BUG=

Review-Url: https://codereview.chromium.org/2821933002 .
2017-04-17 08:07:36 -07:00
Vijay Menon 2afa21bb2c Report error if the same uri appears in multiple summaries.
Fixes #27025

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

Review-Url: https://codereview.chromium.org/2781483007 .
2017-04-17 07:32:59 -07:00
Jennifer Messerly b76e2d67cf fix #29346, ensure all nodes are implemented by DDC's code generator
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2822633003 .
2017-04-14 10:10:50 -07:00
Alan Knight 04bb68bb09 Better DDC sourcemap generation for lambdas
This doesn't fix the entire problem, there's still a Chrome issue that it's not clear we can work around, but it helps some. https://bugs.chromium.org/p/chromium/issues/detail?id=676388

There are three distinct issues here affecting Chrome sourcemap usage for DDC programs with single-line lambdas.

1 - We may introduce a synthetic "as SomeType" in a parameter. The synthetic token ends up with a large negative length, from its offset to the beginning of the file, which can confuse sourcemaps.

2 - We have no entry for the blank line following the lambda. The devtools asks for the mapping from (selectedLine, 0) to (selectedLine +1, 0) and if there's no mapping for either it refuses to set the breakpoint. So this artificially forces the mapping from the last character on the line to be to the beginning of the next line instead.

3 - With a lambda we introduce a constructed Return JS node and make a block. Those nodes weren't getting annotated, so they had no source information.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2815443003 .
2017-04-12 11:31:16 -07:00
Vijay Menon bc3089838c Reify implicit casts for FutureOr
Before landing, two issues to resolve:
(1) We appear to allow sideways casts now without static error - e.g.,

List<Object> -> FutureOr<List<String>>

Is that intended?  If so, it breaks an assumption that implicit casts
are from supertype to subtype.

(2) LUB and FutureOr

It appears that the LUB of, e.g., String and Future<String> is Object.
See fixes in tests to record casts back to FutureOr.

Fixes #29251

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2801683004 .
2017-04-07 17:33:34 -07:00
Vijay Menon 10c5de82c8 Invoke debugger on nsm
Missed this one when I added debugger statements earlier

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2565183004 .
2017-04-07 14:45:09 -07:00
Jennifer Messerly 8ada796a86 fix #29233, final fields can be settable in a mock
also fix #29273, user mixins can override native methods

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2803673007 .
2017-04-07 14:12:49 -07:00
Vijay Menon 5c3bcff375 DDC fix for foreign futures
Fixes #29287

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2804113002 .
2017-04-06 14:52:59 -07:00
Jennifer Messerly 247fc68d21 fix #29228, let* precedence should match generated expression
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2804833002 .
2017-04-05 12:40:42 -07:00
Vijay Menon aa3fba7d8d Preserve async markers when parsing js_ast
Fixes #29252

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2797873002 .
2017-04-05 12:13:22 -07:00
Jennifer Messerly e4e7dffadb fix #29182, generate top level const fields lazily
This fixes an ordering issue, but also may help load time.

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2797443007 .
2017-04-04 16:18:46 -07:00
Jacob Richman 509bcd58e1 Fix type checks and display for JS interop types.
Re-enable formatter test that had been disabled when someone changed type
name display for Foo<dynamic> types.
Fix bug in how type names were displayed for JS interop types.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2789663005 .
2017-04-03 08:34:20 -07:00
Vijay Menon 08f085727e Fix ignore on FutureOr
I'll look into adding tests - these eventually supposed to *not* get ignored (see #27223)

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2788933002 .
2017-03-31 09:30:16 -07:00
Jacob Richman a7465d942f Update test expectations to reflect errors that are now warning.
BUG=

Review-Url: https://codereview.chromium.org/2785183003 .
2017-03-30 14:54:35 -07:00
Vijay Menon 84864e3415 DDC fix for Edge
Patch from zjd.

R=jacobr@google.com

Review-Url: https://codereview.chromium.org/2780903004 .
2017-03-29 12:22:45 -07:00
Jennifer Messerly 1c504f8945 Fix #28120, strong mode allows field overrides
Fix #28119, DDC supports field overrides without @virtual
Fix #28801, devirtualize private fields in DDC where possible
Fix #28589, stop supporting @virtual in strong mode

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

Review-Url: https://codereview.chromium.org/2781443003 .
2017-03-28 10:26:36 -07:00
Vijay Menon 50ceaa4c04 Fix for #29003
This is an alternative to the other CL.  It just uses the result of
dart.mixin instead of declaring a new class.  That preserves the assumption (at least at runtime) that the mixin class directly inherits from Object.

We were also not declaring interfaces for ClassTypeAliases.

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2783443002 .
2017-03-27 16:06:13 -07:00
Vijay Menon ac68d598cf Add patch code for List.filled growable param
Looks like a missing param doesn't break patch_sdk.  I think this was a recent add.

Fixes #28508

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

Review-Url: https://codereview.chromium.org/2771953004 .
2017-03-24 14:27:47 -07:00
Leaf Petersen dba842bcc8 Handle casts from Number to FutureOr<double>.
Fixes https://github.com/dart-lang/sdk/issues/29128 .

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2772573003 .
2017-03-23 13:33:33 -07:00
Vijay Menon 053d2ce14f Fix for dcall on callable class
(Note, regenerated files aren't being uploaded)

Fixes #29148

R=leafp@google.com

Review-Url: https://codereview.chromium.org/2774623004 .
2017-03-23 13:14:58 -07:00
Vijay Menon c3505f7d72 Fix async iterator runtime type errors
Seeing errors on the bots triggered by a recent SDK change (FutureOrT typing?).  See travis for current breakage.

TBR=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2769883002 .
2017-03-22 20:15:00 -07:00
Kevin Moore 2340c8f6df Clarify in dev_compiler docs the reason for the angular whitelist hack
Related to https://github.com/dart-lang/sdk/issues/27255

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2772433002 .
2017-03-22 11:36:11 -07:00
Jennifer Messerly 132ddcaacf fix errors and warnings in DDC
TBR=vsm@google.com,jacobr@google.com

Review-Url: https://codereview.chromium.org/2768693003 .
2017-03-21 20:12:05 -07:00
Jennifer Messerly 4f9fff9ebd fix #29108, improve inference error messages
R=leafp@google.com

Review-Url: https://codereview.chromium.org/2757233004 .
2017-03-20 18:12:46 -07:00
Jennifer Messerly f021a7019b fixes #27586, prefer downwards context type in generic inference
fixes #27625, Object constraints were not tracked in inference
fixes #27933, pin return type from downwards inference

We now prefer to pick the bound (lower or upper) that had some information on, and it also improves inference error messages somewhat (still a ways to go).

The way this works is we now have a type representing an unknown type: ?. We use ? when performing downward inference steps, instead of `dynamic`. This allows more accurate tracking of type constraints.

For example: given:

    var x = await Future.wait([a, b]);

Future.wait<T>'s argument type is Iterable<Future<T>>. Since we didn't know T, we previously pushed down Iterable<Future<dynamic>>. The dynamic caused loss of information. Now we push down Iterable<Future<?>>, allowing us to infer the right type there.

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

Review-Url: https://codereview.chromium.org/2456803004 .
2017-03-17 16:59:56 -07:00
Jennifer Messerly 13d6c5cd98 fix ddc build, adds some unsupported methods to dart:io
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2756463006 .
2017-03-17 16:23:52 -07:00
Jacob Richman 00dd9f26a6 use js_ast to more efficiently turn the JSON into a string.
js_ast will notice the string only contains double quotes so will enclose
it with single quotes.
Parsing a string appears to be a bit more efficient than parsing JSON.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2757603005 .
2017-03-17 08:17:47 -07:00
Vijay Menon 24fd5ced4f Expand ignore whitelist to include FutureOr
See internal bug 36371258.

We're hitting type errors of the form:

CastError: Casting value of type '_Future' to incompatible type 'FutureOr<int>'

I suspect these type errors were there but just ignored before - does this seem a reasonable extension to the whitelist?

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2752203003 .
2017-03-16 20:05:09 -07:00
Vijay Menon 2fd1f5ebf1 Fix FutureOr runtime check
Fixes #29062

This is taken straight from Jen's CL here:

https://codereview.chromium.org/2456803004/

R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2750393003 .
2017-03-16 12:54:22 -07:00
Jacob Richman 9484ac8bdf Format all dart dev compiler files
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2752163002 .
2017-03-15 21:34:25 -07:00
Jacob Richman b4828c39cf Fix for bug when binding non-symbolized members on native classes
BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2757503002 .
2017-03-15 18:56:04 -07:00
Vijay Menon 338304a6c7 Fix DDC patch
TBR'ing to get build green.

TBR=rnystrom@google.com

Review-Url: https://codereview.chromium.org/2749703006 .
2017-03-15 09:23:49 -07:00