Commit Graph

2966 Commits

Author SHA1 Message Date
paulberry@google.com 0b9ed18603 Allow completions to wait for analysis without requiring a busy wait loop.
Two new methods are added to the AnalysisContext which return
Futures--the futures complete with the result of analysis once it's
available, avoiding the need for a busy wait loop in the completion engine.

The futures are guaranteed to complete eventually (provided that
analysis reaches quiescence).  If it is determined that the requested
analysis will never become available (e.g. because analysis was
requested for a file or file/library combination that is not subject
to analysis), the future will be completed with an
AnalysisNotScheduledError, so that the client isn't stalled forever
waiting for analysis results.

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42339 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-12 18:22:34 +00:00
brianwilkerson@google.com 77b819cd76 Report pub status
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42328 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-12 17:40:04 +00:00
brianwilkerson@google.com 44b69647a3 Rework instrumentation API
R=danrubel@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42321 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-12 16:00:23 +00:00
scheglov@google.com 956e9e41ed Fix for exchaning comparison operators arguments.
R=danrubel@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42299 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-11 21:07:14 +00:00
danrubel@google.com 45bebf8b76 filter imported element suggestions to reduce number of results sent to client
BUG=
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42289 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-11 17:18:13 +00:00
brianwilkerson@google.com f58bf4dbc9 Remove old instrumentation
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42267 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 21:53:08 +00:00
danrubel@google.com 6995092b9d code completion for dynamic type elements
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42261 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 19:09:29 +00:00
brianwilkerson@google.com 2fc10f606d Shutdown instrumentation
R=danrubel@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42260 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 19:04:28 +00:00
brianwilkerson@google.com 8e7dd100f1 Code clean-up
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42252 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 17:06:19 +00:00
brianwilkerson@google.com bdb6a6a61f Instrument communications
R=danrubel@google.com, lukechurch@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42250 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 16:48:08 +00:00
scheglov@google.com 583b9447f5 Rollback r42232.
R=danrubel@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42233 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 01:18:57 +00:00
scheglov@google.com bd65677ec2 Comment out the function causing CPU burn up.
TBR

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42232 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-10 00:46:26 +00:00
danrubel@google.com e24f040b46 skip completion if client closed stream
BUG=
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42229 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 23:57:12 +00:00
danrubel@google.com 4247fe2550 bound the time waiting for analysis to complete
BUG=
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42228 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 23:54:06 +00:00
scheglov@google.com 897a446835 Sort Quick Fixes. Make lower priorities more relavant than higher.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42227 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 22:23:27 +00:00
brianwilkerson@google.com 0a8dc970d2 Hooks for instrumentation
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42218 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 20:14:42 +00:00
scheglov@google.com 495cb6d5bf Issue 21801. Index redirecting constructor invocations.
R=brianwilkerson@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21801

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42202 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 02:21:07 +00:00
scheglov@google.com e30b2b313d Ignore ButtonType when computing an extracted method return type.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42201 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-09 02:19:54 +00:00
scheglov@google.com 3b73b01511 Issue 21740. Allow inlining local variables declared in SwitchCase.
R=paulberry@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21740

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42191 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 22:33:07 +00:00
danrubel@google.com f0bc442ea4 cache suggestions on change in priority sources
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42189 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 22:00:16 +00:00
danrubel@google.com dc9f446021 update computeFast/Full now that completion manager is long lived
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42188 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 21:56:56 +00:00
scheglov@google.com e73e5faaad Getters should not have parameters.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42183 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 21:04:44 +00:00
danrubel@google.com 8ef4de75cd include lower relevance suggestions only if they are already cached
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42172 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 18:56:43 +00:00
danrubel@google.com cbbcadc423 remove unused cache arguments
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42167 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 16:59:02 +00:00
danrubel@google.com c3a22ba02d invoke computeCache when priority sources change
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42160 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-08 12:04:32 +00:00
danrubel@google.com 2d6a8357f3 make completion managers responsible for their own caches
- move cache out of CompletionDomainHandler into CompletionManager
- make CompletionManager longer lived
- move context and source fields out of DartCompletionManager and into superclass
- encapsulate information related to a specific request in new CompletionRequest rather than in the manager
- remove request specific information from CompletionManager creation
- use same ContextManager instance for consecutive requests on the same context/source pair

BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42157 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-07 19:31:59 +00:00
scheglov@google.com d0ec660798 Add an option for incremental resolution of API breaking changes.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42113 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 17:10:29 +00:00
brianwilkerson@google.com 1d4ba5fba7 Add paging support
R=paulberry@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42084 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-03 15:54:20 +00:00
scheglov@google.com 354081528c Update local functions methods/functions.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42078 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 23:51:10 +00:00
scheglov@google.com 2427406da3 Fix for NPE in navigation after some incremental changes.
TBR

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42058 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-02 02:07:10 +00:00
scheglov@google.com 20d82e5135 Compressed/optimized navigation notification.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42049 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-01 22:21:28 +00:00
paulberry@google.com c5a938fde2 Allow the contents of the analysis cache to be inspected via http debugging.
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41975 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-26 00:51:55 +00:00
scheglov@google.com 283b78e260 Add --enable-incremental-resolution option.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41971 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 20:53:10 +00:00
paulberry@google.com 002769a47c Coalesce analysis server output messages into a single write call.
This ensures that only one call to stdout.write() is made per run of
the event loop, so the output of the analysis server should not fall
behind the rate of analysis.

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41969 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 20:39:49 +00:00
paulberry@google.com 8a12fbbb59 Use write instead of writeln for client/server communication.
We have observed that each string sent from the server to the client
using stdout.write() takes at least one cycle of the event loop to
complete.  Since writeln() is implemented using two calls to write(),
this means that streaming of messages to the client was almost always
falling behind the actual rate of analysis, resulting in very annoying
delays for the user.

As a stopgap, send each message from server to client using a single
call to write().  This doesn't completely solve the problem, but it
should reduce its impact while we work on a better solution.

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41959 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-25 16:06:30 +00:00
danrubel@google.com 369b7f3918 fix broadcast streams
BUG=
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41940 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 20:26:59 +00:00
danrubel@google.com 8745f2073a new onPriorityChanged event stream
BUG=
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41935 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 17:56:17 +00:00
scheglov@google.com 0cd030eeb8 Issue 21613. Fix for renaming FieldFormalParameterElement.
R=paulberry@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21613

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41929 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 16:00:28 +00:00
scheglov@google.com 2996ef1754 Issue 21650. Fix linked positions added after insert code buffers.
R=brianwilkerson@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21650

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41928 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 15:52:58 +00:00
scheglov@google.com a255faf85c Exchanging operands of a comparision operator should invert the operator.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41927 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 15:51:47 +00:00
scheglov@google.com 52d55e933d Issue 21662. Fix 'Sort Members' when both directives and declarations are updated.
R=paulberry@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21662

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41926 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 15:50:19 +00:00
danrubel@google.com be636515be refactor import caching to exclude suggestions for inherited members
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41925 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 12:28:07 +00:00
scheglov@google.com 703b744966 Issue 21655. Don't import self when add type declaration.
R=paulberry@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21655

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41869 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 22:10:57 +00:00
danrubel@google.com a714eb2faf cache import suggestions
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41865 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 19:31:31 +00:00
danrubel@google.com 5977fec49b discard code completion cache if context or other sources change
BUG=
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41860 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 18:40:23 +00:00
danrubel@google.com 4a50ed6cf8 cleanup hints
BUG=
R=brianwilkerson@google.com, paulberry@google.com, scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41852 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-20 14:03:18 +00:00
scheglov@google.com 91c02b4a8e Issue 21618. Fix for empty code for 'dynamic' type.
R=brianwilkerson@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=21618

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41838 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 17:42:29 +00:00
scheglov@google.com 438fbd7f6b Cache ElementLocation instance and index key/location ids.
This saves us about 9% of time, as the previous CL.
From 22294 ms to 20040 ms.

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41814 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 23:02:14 +00:00
scheglov@google.com 58587a470e Rollback r41807.
As discussed, it is not compatible with the incremental analysis.

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41809 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 18:50:28 +00:00
scheglov@google.com 4032b4d86b Use shorter DartElementLocation.
This improves analyzer + analysis_server analysis time from 21841 ms to 19839 ms.
I.e. about 9% faster.

However it is still 25% slower than without index at all - 15593 ms.

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41807 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 16:21:01 +00:00