Commit Graph

83 Commits

Author SHA1 Message Date
danrubel e13a49fdfa (TBR) "fix" test_no_duplicate_notifications
Review URL: https://codereview.chromium.org/1542433002 .
2015-12-19 11:41:32 -05:00
Paul Berry de3a1b22c8 Merge remote-tracking branch 'origin/master' into analyzer-breaking-0.27 2015-12-07 07:04:07 -08:00
danrubel 79a8654e5f (TBR) increase pumpEventQueue to finish analysis
Review URL: https://codereview.chromium.org/1508523002 .
2015-12-06 17:26:27 -05:00
Brian Wilkerson 600fc17de1 Clean-up the registration of plugins
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1487953002 .
2015-12-02 13:25:28 -08:00
Brian Wilkerson b2728c15a6 Revert "Fix test failures on the bots"
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1468623002 .
2015-11-20 14:04:11 -08:00
Brian Wilkerson 6b45d6544c Fix test failures on the bots
R=scheglov@google.com

Review URL: https://codereview.chromium.org/1467623002 .
2015-11-20 11:48:35 -08:00
Konstantin Shcheglov a689bf4180 Report error for ignored priority file. Ignore subscription for ignored files.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1462693002 .
2015-11-18 17:31:58 -08:00
Konstantin Shcheglov abe8d87e0e Implement AnalysisServer.getContainingContext() using ContextManager.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1455163005 .
2015-11-18 14:10:35 -08:00
Konstantin Shcheglov de6925a23e Add ApplyChangesStatus to AnalysisContext.applyChanges() and use it in DAS.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1448173002 .
2015-11-16 19:42:15 -08:00
Konstantin Shcheglov 041e61a0f6 Ensure that RESOLVED_UNITx ready once for every library.
...instead of ensuring this separately for complete closures of every library.

This improves initial analysis performance from about 44 seconds to 39.
This also makes WorkOrder.moveNext less expensive - to about 5.6% during initial analysis.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/1412273004 .
2015-10-23 13:25:56 -07:00
pq 9989687a25 Revert server test extension manager "fix".
BUG=

Review URL: https://codereview.chromium.org/1398043006 .
2015-10-14 22:10:47 -07:00
pq 3188a74994 More extension manager unification.
Addresses bot test failures: http://build.chromium.org/p/client.dart/builders/pkg-mac-be/builds/1531/steps/pkg%20%20tests%20failures/logs/stdio.

(See https://codereview.chromium.org/1398033004/ for background.)

Marking TBR in quest for build greenness.

Review URL: https://codereview.chromium.org/1401403005 .
2015-10-14 21:22:26 -07:00
Brian Wilkerson 9ad256cf18 Move the wire protocol support into the public API
R=paulberry@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1398293002 .
2015-10-11 07:34:28 -07:00
Brian Wilkerson 908708d655 More fixes for failures on the Windows bot
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1266923004 .
2015-08-05 08:13:28 -07:00
Brian Wilkerson 0c6872acef Hook for overriding the ContextManager and some code clean-up (with more to follow)
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1223413003 .
2015-07-13 10:20:13 -07:00
Konstantin Shcheglov 19a87506bc Fix for the server test.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1196213005.
2015-06-22 10:03:06 -07:00
Konstantin Shcheglov b8067b5fb9 Compute RESOLVED_UNIT for all units in all of the libraries of the closure before verifying.
This fixes many co19 tests, so I guess it might solve the problems with constants you mentioned.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1183533002.
2015-06-11 10:47:26 -07:00
Brian Wilkerson 06a3fd1984 Fix more tests for the new task model
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1159623013
2015-06-02 09:06:53 -07:00
Brian Wilkerson ad52c9eab9 Add support for specifying files needing analysis
R=scheglov@google.com

Review URL: https://codereview.chromium.org//1152013002
2015-05-21 14:34:04 -07:00
brianwilkerson@google.com ac3126da13 Fix exception in stack trace from issue 23348
R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45493 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 16:03:58 +00:00
scheglov@google.com 9efb25fa50 Use package:test_reflective_loader instead of reflective_tests.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45365 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 20:54:29 +00:00
danrubel@google.com ec456501b5 do not suggest elements from internal sdk libs
BUG=dartbug.com/23104
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44939 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-07 16:52:43 +00:00
scheglov@google.com b03f3cd6a3 If the file belongs to any analysis root, check whether we're in it now.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44445 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-12 21:46:43 +00:00
scheglov@google.com 9df7bc68b5 Allow sending duplicate notifications.
This will "unfix" dartbug.com/22210 , but at the same time it will
remove most of of expensive AnalysisContext calculations introduced
in https://code.google.com/p/dart/source/detail?r=44305

It reduces "notices" tag percentage from 15 to a little above 3.

Also, we don't produce errors for external sources, which was the
main problem in dartbug.com/22210.

There is also the same expensive computation in execution domain.
I will address it in a separate CL.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44330 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-09 16:57:28 +00:00
scheglov@google.com 60d4a29500 Fix for subscribing for notifications for files in packages.
Unfortunately this fix makes the server about 20% slower.

This is mostly because of the check in scheduleNotificationOperations(),
as required to fix dartbug.com/22210. I think it is much cheaper to send
duplicate notifications, like outline or navigation, than to check if
they should not be sent.

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44305 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-06 22:55:20 +00:00
paulberry@google.com e3d272c1dd Don't send notifications for disposed contexts.
This ensures that once analysis.flushResults is implemented, we won't
accidentally send a stale notification for a file after flushing its
results.

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44275 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-06 01:15:13 +00:00
brianwilkerson@google.com cd58e290c4 Reformat
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44151 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-02 22:43:12 +00:00
brianwilkerson@google.com 92e3e1b94a Fix notifications for nested packages
R=paulberry@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43620 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 22:57:44 +00:00
paulberry@google.com b40a5702b3 Fix async/await type checking in analyzer.
This required making the "async" library into TypeProvider so that we
can create Future<...> types when doing resolution and error/hint
checking.

BUG=21888,22053,22091,22092,22160,22164
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43361 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-02 20:58:37 +00:00
paulberry@google.com f9f324ca9b Avoid redundant notifications when a file is analyzed in multiple contexts.
BUG=dartbug.com/22210
R=danrubel@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43315 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 21:42:48 +00:00
scheglov@google.com ad01eca4e2 Fix NPE in tests.
TBR

R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42937 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-15 22:09:00 +00:00
scheglov@google.com a38a503d86 Replace @ReflectiveTestCase() with @reflectiveTest.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42821 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-13 17:11:24 +00:00
paulberry@google.com d0c5b78efa Add tests for AnalysisServer.getAnalysisContextForSource.
BUG=dartbug.com/21898
R=danrubel@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42422 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-17 02:38:10 +00:00
paulberry@google.com 2546490ed5 Ensure that AnalysisContext futures are completed when context disposed.
It's possible for the analysis server to create or destroy contexts in
the background while the user is working (as a result of changes on
the filesystem).  This ensures that if any code completions are
waiting for analysis when that happens, they are aborted.

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42416 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-16 23:41:56 +00:00
paulberry@google.com 27b38e807c Convert analysis_server_test.dart to use reflective tests.
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42413 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-16 22:30:07 +00:00
scheglov@google.com 8affb6c015 Upgrade unittest to be able to use isNotEmpty.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42380 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-16 04:07:37 +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
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 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
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 b8da9bc651 Format and sort analyzer and analysis_server packages.
R=brianwilkerson@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41792 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-17 22:23:53 +00:00
danrubel@google.com fabddbd918 add ContextsChangedEvent
BUG=
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41786 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-17 17:14:48 +00:00
paulberry@google.com 02dada3dec Avoid analysis server crash when reanalyze invoked during analysis.
BUG=dartbug.com/21448
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41372 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-28 21:15:59 +00:00
paulberry@google.com 245168938e Merge analysis server's mocks.dart and mocks2.dart into one file.
There were competing implementations of MockAnalysisContext and
MockSource, but one of the implementations was only used in one place
(analysis_server_test.dart), so it's been switched over to use the
other implementation.

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39826 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-03 19:45:42 +00:00
paulberry@google.com 8d8ee25cff Merge analysis_testing package into analysis_server.
Note that analysis_server already contains a file test/mocks.dart, so
the mocks.dart file from analysis_testing has been imported as
test/mocks2.dart.  I will merge these two into a single file in a
future CL.

R=scheglov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39814 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-03 18:11:42 +00:00
paulberry@google.com f556420f97 Rename some bools in the analysis server API.
R=brianwilkerson@google.com, jwren@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39604 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 16:39:49 +00:00
paulberry@google.com 0c0fd777a6 Finish modifying analysis server to make use of code generation.
Generated code is used to produce the response to these requests:
- analysis.updateOptions
- analysis.updateContent
- analysis.setSubscriptions
- analysis.setPriorityFiles
- analysis.setAnalysisRoots
- server.shutdown
- server.setSubscriptions

Generated code is used to produce these requests:
- server.shutdown
- server.getVersion
- server.shutdown
- server.connected

Generated code is used to produce these notifications:
- completion.results
- analysis.overrides
- analysis.outline
- analysis.occurrences

Generated code is used to decode these notifications:
- server.status

In addition, some dead code was removed, the 'protocol.dart' and
'protocol2.dart' files were combined, and the fields Response.result,
Request.params, and Notification.params were made private (to
encourage future use of the generated code).  Also, some overly
verbose import statements were cleaned up by using "hide" rather than
"show".

R=danrubel@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39516 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-25 10:48:16 +00:00
paulberry@google.com e18327f317 Make more use of generated code in analysis server.
The following generated classes are now used:
- CompletionRelevance
- CompletionSuggestion
- CompletionSuggestionKind
- ErrorFixes
- HighlightRegion
- HighlightRegionType
- HoverInformation
- LinkedEditGroup
- LinkedEditSuggestion
- LinkedEditSuggestionKind
- SourceChange

Generated code is used to produce these notifications:
- analysis.errors
- analysis.highlights
- analysis.navigation
- search.results
- server.error
- server.status

Generated code is used to produce the response to these requests:
- analysis.getErrors
- analysis.getHover
- edit.getAssists
- edit.getFixes
- server.getVersion

Generated code is used to handle these notifications in unit testing:
- analysis.highlights
- analysis.navigation

In addition, these methods have been removed, since they are no longer
needed:
- Notification.getParameter
- Result.setEmptyResult
- Result.setResult

R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39511 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-24 08:39:41 +00:00
paulberry@google.com 34699f46d5 Start using code-generated protocol classes in analysis server.
This updates the handlers for analysis.getErrors,
server.setSubscriptions, and analysis.setSubscriptions with simpler
versions that make use of the code-generated protocol classes, and
replaces the classes AnalysisError and AnalysisService with their
code-generated versions.

It also removes some dead code.

R=jwren@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39376 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 18:29:41 +00:00
paulberry@google.com 80352fd61c Fix analysis server to only send SERVER_STATUS when subscribed to.
R=brianwilkerson@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39065 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-09 16:36:39 +00:00