Commit Graph

21 Commits

Author SHA1 Message Date
Konstantin Shcheglov 597f189eb4 Extension point for WorkManagerFactory(s).
I'm not quite happy that internal classes get into the extension point declaration.
But I guess that because of the nature of the work WorkManager(s) are doing, we have to have significant exposure to internals.

Also, onAnalysisOptionsChanged() and onSourceFactoryChanged()... these probably are better to implement as streams in InternalAnalysisContext.
Thoughts?

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

Review URL: https://codereview.chromium.org//1311773005 .
2015-08-26 09:45:19 -07:00
Paul Berry 7671bce82a Compute mixin application constructors in the ClassElement.constructors getter.
Previously we computed them during resolution, but this created a
problem: since the set of constructors for a mixin application depends
on the constructors in the superclass, and the superclass might itself
be a mixin application, it might theoretically be necessary to analyze
all files in the transitive import/export closure before it is
possible to compute the set of constructors for a class.  As a result,
in order to produce completion results after a non-incremental change
to file X, we have to re-analyze the entire transitive closure of
files importing or exporting X.  This takes prohibitively long.

This change moves the computation into the ClassElement.constructors
getter.  The computation is not cached, so now a change to file X only
requires rebuilding the element models for files directly importing X
(or directly importing files that contain X in their transitive export
closure).

Since the result of the computation is not cached, this will produce
an increase in analysis time, however since mixin applications are
used so rarely, the performance impact should be negligible.

Fixes #23732.

R=scheglov@google.com

Review URL: https://codereview.chromium.org//1215053003.
2015-06-30 07:35:26 -07:00
Paul Berry 21b65e700b Split BuildSourceClosuresTask into two tasks; remove unnecessary computation.
This splits BuildSourceClosuresTask into BuildSourceExportClosureTask,
which produces EXPORT_SOURCE_CLOSURE, and
BuildSourceImportExportClosureTask, which produces
IMPORT_EXPORT_SOURCE_CLOSURE.  IMPORT_SOURCE_CLOSURE is no longer
computed, since it was not being used.

This should reduce the amount of analysis work that needs to be rerun
before we can produce code completions, since we will no longer have
so recompute the import/export source closure (which could potentially
need recomputation for a large number of files) until just prior to
ResolveUnitReferencesTask, which in theory doesn't need to run in
order to produce code completions.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//1220743004.
2015-06-29 10:13:09 -07:00
Paul Berry 19d0ea816b Remove BuildFunctionTypeAliasesTask.
There seems to be no reason to do this as a separate step from
ResolveUnitTypeNamesTask.

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

Review URL: https://codereview.chromium.org//1211523003.
2015-06-24 08:08:05 -07:00
Brian Wilkerson c891a348ab Next steps toward HTML support
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1193143002.
2015-06-21 09:21:42 -07:00
Brian Wilkerson cb8b774fef Re-enable and add new HTML support
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1182303006.
2015-06-16 09:52:18 -07:00
Brian Wilkerson 980978c967 Support for parsing HTML in the new task model
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1185443002.
2015-06-11 13:24:20 -07:00
Konstantin Shcheglov f584413999 Build LIBRARY_ELEMENT after RESOLVED_UNIT6 for all units in the closure of a library.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1177963002.
2015-06-11 08:05:59 -07:00
paulberry@google.com 130376558f Add a task for computing all constant values in a compilation unit.
R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//1137873003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45719 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 22:18:02 +00:00
scheglov@google.com 73f176d45e Add LIBRARY_ERRORS result.
This result will work as a top-level target for Dart work manager.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1133703003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45668 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 23:11:13 +00:00
paulberry@google.com e51ffadb87 Add a task to the new task model for computing constant values.
Not yet implemented: proper handling of circular references.

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

Review URL: https://codereview.chromium.org//1125423004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45651 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 19:44:41 +00:00
paulberry@google.com 728e9b3a9e Create a task in the new task model to compute constant dependencies.
This is the first of several planned tasks for constant evaluation.

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

Review URL: https://codereview.chromium.org//1131953004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45624 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 00:36:45 +00:00
brianwilkerson@google.com e8c5b87478 Get computeError working
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1130763003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45604 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 18:30:40 +00:00
brianwilkerson@google.com ac3613e2bb Re-apply change to move to plugin package
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1094083003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45408 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-24 18:54:24 +00:00
brianwilkerson@google.com 3d536efcfe Revert breaking change
Review URL: https://codereview.chromium.org//1101213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45384 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 22:12:20 +00:00
brianwilkerson@google.com 24c853446a Convert analyzer and analysis_server to use the plugin package
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1063153004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45382 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 20:32:35 +00:00
scheglov@google.com 145cbc3750 Convert EnginePlugin.taskDescriptors into a getter.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1095113003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45289 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-20 16:12:43 +00:00
brianwilkerson@google.com d1d92d63fc Bug fixes and clean-up
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1096613004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45244 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 17:03:01 +00:00
scheglov@google.com 0ec685763a Use TaskInputBuilder to compute import/export source closures.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1045113005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44827 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 22:21:02 +00:00
scheglov@google.com f2df67f2fe ResolveLibraryTypeNamesTask to force type name resolution in parts.
Also clean ups in other tasks inputs.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1024973002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44623 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-21 01:08:20 +00:00
brianwilkerson@google.com 56ff9d92e7 Add engine plugin
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1026483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44589 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-19 20:08:05 +00:00