Commit Graph

9115 Commits

Author SHA1 Message Date
Florian Loitsch 07552fb3f6 Mark analyzer test as slow.
Review URL: https://codereview.chromium.org/1781343002 .
2016-03-11 13:52:02 +01:00
Stephen Adams dc95698672 Type inference cleanup
- No longer attribute queries to type inference. Queries are attributed to client.

- Remove vestigial CPA code

- Don't compare target sets for additions and deletions if they are
  the same (most of the time we revisit the dynamic call site due to
  a change in a returned result).

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1777393003 .
2016-03-10 17:25:22 -08:00
Konstantin Shcheglov 4e8e1e2e04 Improve search for constructors and import elements.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1778363003 .
2016-03-10 14:57:42 -08:00
Konstantin Shcheglov 5271cd3259 Fix for indexing synthetic elements.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1779233002 .
2016-03-10 10:57:08 -08:00
Sigmund Cherem f80b3d0ce0 Update status on cpsir bot: these new tests crash the compiler for a known
reason.

TBR=sra@google.com

Review URL: https://codereview.chromium.org/1777293003 .
2016-03-10 10:04:01 -08:00
Brian Wilkerson f42380ccbb Improve the error message when there is an infinite loop in tasks
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1783853002 .
2016-03-10 09:04:26 -08:00
Brian Wilkerson 83df52b590 Move more behavior out of ContextManagerCallbacks and into ContextManager
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1784523002 .
2016-03-10 08:36:35 -08:00
Brian Wilkerson ec08de7df8 Get more data to track down issue 25884
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1775913005 .
2016-03-10 08:21:40 -08:00
Brian Wilkerson 1a455bcb9d Move element handles out of generated
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1780883002 .
2016-03-10 07:40:33 -08:00
Johnni Winther 78e8677f83 Fix shared messages.
Remembered to publish, forgot to test!

Review URL: https://codereview.chromium.org/1780803004 .
2016-03-10 11:20:56 +01:00
Johnni Winther b31a2566d4 Use specific messages for const constructor with body.
BUG=
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1768143003 .
2016-03-10 10:09:17 +01:00
danrubel d26d023ce7 update tests for execution on windows
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1774623006 .
2016-03-09 22:33:35 -05:00
Brian Wilkerson ef1c632679 Clean up some warnings (issue 25964)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1778663006 .
2016-03-09 17:32:49 -08:00
Brian Wilkerson d03381c587 Fix NPE in rename local (issue 25933)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1776743006 .
2016-03-09 17:02:15 -08:00
Stephen Adams ae13804e09 dart2js: Destroy some type inference graph edges after type inference.
Removing the `_assignments` and `users` collections from TypeInformation
nodes causes interior nodes (e.g. Phi, Narrow) to become unreachable and
available for GC. This seems to trim 1%-5% off the final heap of an SSA
compile.

R=sigmund@google.com

Committed: https://github.com/dart-lang/sdk/commit/e85ac191344cdbecfdd39d99ff50209bb3dc837f

Reverted: https://github.com/dart-lang/sdk/commit/9292d1bc2baa05c4ac97ec12d8d922811a181d02

Review URL: https://codereview.chromium.org/1776533002 .
2016-03-09 16:45:19 -08:00
Konstantin Shcheglov 4d48fa56d0 Listen for context add/remove and unit invalidation to update the index.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1783503004 .
2016-03-09 14:52:19 -08:00
Stephen Adams 9292d1bc2b Revert "dart2js: Destroy some type inference graph edges after type inference."
BUG=

Review URL: https://codereview.chromium.org/1775253004 .
2016-03-09 14:07:48 -08:00
danrubel 14983f0a26 extract resource path test utils
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1777913003 .
2016-03-09 16:26:14 -05:00
Konstantin Shcheglov 00b6f98166 Separate index objects for each analysis context.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1778113002 .
2016-03-09 13:24:12 -08:00
Stephen Adams 42070892a4 Create map for dump_info on demand.
Saves about 1% of heap for non --dump-info compile.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1777823002 .
2016-03-09 13:15:05 -08:00
Brian Slesinsky ae009e0870 Fix regression for import suggestions
Imports weren't being suggested for implicit source files,
for example files from other analysis roots.

BUG=
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1759333002 .
2016-03-09 12:59:46 -08:00
Stephen Adams e85ac19134 dart2js: Destroy some type inference graph edges after type inference.
Removing the `_assignments` and `users` collections from TypeInformation
nodes causes interior nodes (e.g. Phi, Narrow) to become unreachable and
available for GC. This seems to trim 1%-5% off the final heap of an SSA
compile.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1776533002 .
2016-03-09 12:47:10 -08:00
Konstantin Shcheglov 5a927c7373 Add hacks into build_sdk_summaries to workaround bugs in build tools.
Paul thinks that there is a bug in gyp or make, and we should generate
only one output. So, we generate the whole bundle with all summaries
and index information. And then we have separate actions that take
this bundle and extract one output each - spec.sum and strong.sum files.

R=paulberry@google.com, whesse@google.com
BUG=

Review URL: https://codereview.chromium.org/1775973003 .
2016-03-09 11:37:17 -08:00
Konstantin Shcheglov 21ed1750ce Issue 25962. Check for the number of arguments vs. number of required parameters.
Unfortunately I was not able to reproduce the problem.

R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/25962

Review URL: https://codereview.chromium.org/1776353003 .
2016-03-09 11:33:01 -08:00
pq e7e205f00b Add error codes to server protocol (#25958).
See: https://github.com/dart-lang/sdk/issues/25958

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1774913006 .
2016-03-09 10:44:03 -08:00
Bob Nystrom 8defa5f77c Split resolver_test.dart into smaller files.
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1782463002 .
2016-03-09 10:42:09 -08:00
pq fb3eae598a CLI support for enableConditionalDirectives.
BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1778683004 .
2016-03-09 10:04:41 -08:00
pq 402f27e26d Fix enableConditionalDirectives option handling.
Net-net: we weren't copying this value over when copying context options.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1774213003 .
2016-03-09 10:01:28 -08:00
Asger Feldthaus 40f6c6934c dart2js cps: Do field calls directly instead going through the adapter.
E.g. obj.foo$1(x) becomes obj.foo.call$1(x).

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org/1776473006 .
2016-03-09 15:59:49 +01:00
Asger Feldthaus cb46f224f6 dart2js cps: Inline constructor bodies that are only called once.
ConstructorBodyElements do not exist in the type inference graph, so
we can't rely on it to tell us if such a method has a single call site.

BUG=
R=kmillikin@google.com

Review URL: https://codereview.chromium.org/1779723002 .
2016-03-09 14:00:25 +01:00
Johnni Winther 7b7cfb66ab Add source information to variable declarations in CPS.
This adds a source mapping to variable declarations in the beginning of a JS function, that points to the start of the corresponding Dart method:

foo: function() {
  var a, b;
  ^

maps to

foo() {
      ^

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1772703002 .
2016-03-09 10:02:16 +01:00
Bob Nystrom 528f6c01a7 Clean up some copy/paste in a test.
Almost all of these tests had the same few steps, so I pulled that out
into a helper function and used that.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1780623002 .
2016-03-08 17:40:46 -08:00
Stephen Adams d367741ead Recognize identical() ConstantValues as equal.
This fast path is not used when interning ConstantValues but is
beneficial when the ConstantValue is the key of a HashMap.

BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1777483006 .
2016-03-08 17:18:27 -08:00
Konstantin Shcheglov 5b117e9e18 Use the fact that some index lists are sorted.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1776143002 .
2016-03-08 13:43:43 -08:00
Konstantin Shcheglov 3af20476d1 Add AnalysisContext.onResultInvalidated(descriptor).
This method will be used to remove index entries corresponding to
invalidated resolved units.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1776023002 .
2016-03-08 12:55:06 -08:00
Konstantin Shcheglov 15bfead120 Sort strings in the index.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1774253002 .
2016-03-08 12:45:29 -08:00
Paul Berry c497c026fe Fix summary generation in "package-summary-only" mode.
If we aren't doing full analysis, then we can't use
`context.librarySources` to find out the set of library sources (because
it doesn't include sources that haven't been examined yet).  Instead, we
have to query each source to find out its type.

R=scheglov@google.com

Review URL: https://codereview.chromium.org/1770323003 .
2016-03-08 12:14:11 -08:00
Bob Nystrom cb7aa02116 Type check for-in statements.
This does nominal checking on the iterable expression used in a for-in
statement:

1. It must implement Iterable.
2. The type argument to Iterable must be assignable to the variable's
   type.

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

Review URL: https://codereview.chromium.org/1771153002 .
2016-03-08 11:25:49 -08:00
Stephen Adams ea480cdf0f Fix typo in TypeInformationSystem.joinTypeMasks
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1771253002 .
2016-03-08 10:55:15 -08:00
Paul Berry 1f8ea5448e Add an analyzer_cli option to disable analysis (for faster summary generation)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1772923002 .
2016-03-08 09:25:20 -08:00
Brian Wilkerson d8786ac278 Change when enum constant elements are created to fix bug in re-creating ASTs from existing element models
R=paulberry@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1771243002 .
2016-03-08 08:45:44 -08:00
Asger Feldthaus 7772152fa1 dart2js cps: Keep interceptors in a separate field.
Previously, the "receiver" of an InvokeMethod would be either be the
"Dart receiver" or an interceptor, depending on the calling convention.
Likewise, the argument list was possibly prefixed by the Dart receiver.

Now, the receiver is always the Dart receiver, and the arguments are
the Dart arguments and the interceptor is in a field specific for the
interceptor.

The old way was very inconvenient in the CPS, it has led to several
bugs already, and it's just unintuitive that "receiver" can mean two
very different things.

FunctionDefinition no longer has a thisParameter, but
instead a receiverParameter and an interceptorParameter.  These are
named to correspond exactly with the names used in InvokeMethod.

The concept of 'this' has been removed from the CPS IR to hopefully
avoid confusion between 'Dart this' and 'JS this'.  There is now only
receiver and interceptor, and which one corresponds to the JS 'this'
is irrelevant.

The Tree IR has not changed.  The Tree IR builder is thus responsible
for translating the calling convention into the JS receiver and
argument list.  The Tree needs to know the order in which the operands
are evaluated, so it makes sense to keep this form in the Tree.

R=sra@google.com

Review URL: https://codereview.chromium.org/1761903002 .
2016-03-08 13:43:20 +01:00
Johnni Winther 7cbfcd69ca Updates from comments.
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1683063002 .
2016-03-08 10:36:58 +01:00
Johnni Winther 583fd470d8 Add source location to function declarations.
Temporarily adds source location to function declarations in the new source info system.

R=sigmund@google.com

Review URL: https://codereview.chromium.org/1773553002 .
2016-03-08 10:30:13 +01:00
pq 24ac0d4e2d Fix cycle in override check.
BUG=
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1769253002 .
2016-03-07 14:09:58 -08:00
Konstantin Shcheglov b9ee5c20eb Implement SearchEngine.searchMemberReferences().
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1768353002 .
2016-03-07 13:41:12 -08:00
pq 4528052e98 Validation of @mustCallSuper overrides.
Carried over and refined from https://codereview.chromium.org/1767843002/.

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/1773803002 .
2016-03-07 13:37:35 -08:00
Konstantin Shcheglov f2111c2497 Search for direct and indirect subclasses.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1770083002 .
2016-03-07 11:30:44 -08:00
Konstantin Shcheglov 2293a22b7f Implement searchMemberDeclarations() / searchTopLevelDeclarations().
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1770953002 .
2016-03-07 11:14:05 -08:00
Brian Wilkerson 687119c56d Prepare to publish a new alpha version for DDC
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1768303002 .
2016-03-07 11:01:25 -08:00