Commit Graph

192 Commits

Author SHA1 Message Date
Konstantin Shcheglov 1f41c3778c Extract more unit-test like OutlineComputerTest.
R=brianwilkerson@google.com

Bug:
Change-Id: Ibdadbd656d6cd85cd01a6a68d425dbd20a0b07ea
Reviewed-on: https://dart-review.googlesource.com/16420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-10-25 04:27:39 +00:00
Devon Carew a5c2256455 Send test element kinds for test outline items.
Bug:
Change-Id: Iebea8d4b9705c726e297722ef1678e1a2cd1ea96
Reviewed-on: https://dart-review.googlesource.com/12841
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-11 17:00:41 +00:00
Devon Carew fd4528fffb Make closing labels slightly less noisy.
Bug:
Change-Id: If916adb1cceab14c9260f288bf59878c6955f3ce
Reviewed-on: https://dart-review.googlesource.com/9000
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-09-27 18:52:25 +00:00
Brian Wilkerson f6e3e1f549 Add outline support for the test package
Change-Id: Iff938d55082b3b222cf801ea53d4eaf5feb1e094
Reviewed-on: https://dart-review.googlesource.com/6980
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-09-19 18:59:54 +00:00
Devon Carew 2b3b0272c4 Switch to using specific throws calls instead of general throwsA() calls.
Bug:
Change-Id: Id604dca1b8c3060c1d12c9ed0b1493771d2eb0d6
Reviewed-on: https://dart-review.googlesource.com/5883
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2017-09-14 18:04:44 +00:00
Devon Carew b12d010064 Remove the use of deprecated package:test API.
Bug:
Change-Id: I671678117f72efac5efd60d7b4e459dffcce47c6
Reviewed-on: https://dart-review.googlesource.com/5542
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-09-13 21:55:00 +00:00
Brian Wilkerson 23bcc17a61 Use the NavigationCollector from analyzer_plugin to avoid duplication
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/3002253002 .
2017-08-25 07:25:16 -07:00
Danny Tuppeny 0647d9a228 Improvements to analysis server closing labels (#30411)
* Tweak comment that was based on integration test verison.

See #30285

* Include additional 1/2-line spans that end on same lines as >2 line spans.

See #30285

* Add tests to ensure no unwanted closing labels from multiline expressions.

See #30285

* Don't show closing labels for code inside interpolated strings.

See #30285

* Remove unwanted @soloTest.

See #30285

* Make casing of test names consistent.

See #30285

* Add a constructor and make fields final.

See #30285

* Use putIfAbsent for adding to map.

See #30285

* Shorten closing labels constructor.

See #30285

* Run "Sort members" on closing labels files.

See #30285

* Remove unnecessary type annotations.

See #30285
2017-08-11 11:04:34 -07:00
Danny Tuppeny 619f2995ab Implement analysis server closing labels (work-in-progress) (#30372)
* Add empty closing labels computer/visitor and tests.

See #30285

* Add initial implementation and test for closing labels.

See #30285

* Add various tests for analyzer closing labels.

See #30285

* Fail tests if errors occur.

Without this the notifications will never come through and the test will time out. This causes them to fail right away on errors.

See #30285

* Add test and fix for crash that occurred during testing.

See #30285

* Remove unnecessary abs().

See #30285

* Remove question that has been answered (yes).

See #30285

* Remove unnecessary .argumentList on spansManyLines check.

See #30285

* Add test for prefixed import and constructor names.

The behaviour seems like what we want, though need to confirm if this is the best way to do it.

See #30285

* Add additional prefixed tests and another TODO.

See #30285

* Fix method invocations to show full target/name.

See #30285

* Fix constructor invocations to not use toString().

See #30285

* Convert most closing label tests to unit tests.

See #30285
2017-08-09 14:13:47 -07:00
Konstantin Shcheglov b1589bf879 Replace typed_mock with mockito in analysis_server.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2991773002 .
2017-07-26 08:14:25 -07:00
Brian Wilkerson 8bbf373a5e Remove the analysus.reanalyze request from the plugin API
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2988743002 .
2017-07-25 12:10:52 -07:00
Konstantin Shcheglov 939d8aaf6d Issue 30238. Fix for subscribing for a notifications with already cached analysis result.
With the new 'sendCachedToStream' option we can control that whether
cached analysis result is also reported into the 'results' stream when
it is desirable (when we do this to send analysis notifications from
the stream listener). Or not, when it is not desirable, e.g. when we
ask becaue we need the results unit for Quick Assists.

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

Review-Url: https://codereview.chromium.org/2989633002 .
2017-07-25 10:28:25 -07:00
Konstantin Shcheglov 00d5012906 Format analyzer, analysis_server, analyzer_plugin, front_end and kernel with the latest dartfmt.
...instead of mixing formatting with actual changes in many CLs.

R=ahe@google.com, paulberry@google.com, sigmund@google.com
BUG=

Review-Url: https://codereview.chromium.org/2975253002 .
2017-07-13 16:28:18 -07:00
Konstantin Shcheglov 78f78feaf8 Don't include *.yaml files in 'analysis.analyzedFiles' notification.
R=brianwilkerson@google.com, jwren@google.com
BUG=

Review-Url: https://codereview.chromium.org/2980653002 .
2017-07-11 14:19:15 -07:00
Konstantin Shcheglov b3fe985371 Use AnalysisDriver.getCachedResult() for 'implemented' notification.
In general case we cannot use getResult() in this notification.
We generate these notifications after analysis is complete in scheduler.
But if there is no cached result, getResult() will schedule analysis.
So, we might get into a loop.

In practice this worked, because IDEA always makes files priority,
so their results cached, and then subscribes for notifications.
But in general case we need this protection.

This also means that the 'implemented' notification works (and will
work) only for priority files.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2965533002 .
2017-06-29 09:57:20 -07:00
Konstantin Shcheglov 256d6fa704 Remove the stale test for discarding notifications.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2961173002 .
2017-06-28 14:27:38 -07:00
Konstantin Shcheglov 911263f240 Remove the old index.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2963773003 .
2017-06-28 13:44:05 -07:00
Brian Wilkerson 9ddb832e10 Generate constants in server as we do in plugin
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2960073002 .
2017-06-28 08:21:33 -07:00
Brian Wilkerson 55d735911b Remove the unused operations queue
R=devoncarew@google.com

Review-Url: https://codereview.chromium.org/2957643002 .
2017-06-23 09:04:13 -07:00
Konstantin Shcheglov 9600dab0e0 Enable 'analysis.implemented' with the new analysis driver.
It is not very efficient on large files, but works well enough for small
files. I will work on making it more efficient in following CLs.

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

Review-Url: https://codereview.chromium.org/2942753002 .
2017-06-16 09:13:45 -07:00
Brian Wilkerson a0d7d64f0b Convert more tests
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2936123002 .
2017-06-13 19:38:59 -07:00
Brian Wilkerson 4da8380881 Convert more tests to use the new driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2939803002 .
2017-06-13 12:04:25 -07:00
Brian Wilkerson 1e9ae646ff Clean up some hints
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2939723002 .
2017-06-13 09:24:50 -07:00
Brian Wilkerson 67ff4d4c47 Convert more tests to the new driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2933943002 .
2017-06-12 14:10:14 -07:00
Brian Wilkerson 65d05524ce Remove some unnecessary tests for non-driver mode
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2935733003 .
2017-06-12 11:31:09 -07:00
Brian Wilkerson d9749ef0ac Get the highlights test to work with the new driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2934863002 .
2017-06-12 11:30:24 -07:00
Brian Wilkerson 265ef252ae Write type parameters when writing members (issue 29714)
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2909943004 .
2017-05-30 12:19:15 -07:00
Brian Wilkerson 1b4679cacd Clean-up several warnings
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2912883003 .
2017-05-30 09:04:41 -07:00
Brian Wilkerson a7cc00e01a Make server forward getNavigation requests to plugins
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2908633002 .
2017-05-25 14:49:35 -07:00
Brian Wilkerson 7d26ff6d4f Remove some more library directives
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2884233004 .
2017-05-17 08:02:08 -07:00
Dan Rubel d566906167 cleanup unused incremental resolution
* remove unused analyzer incremental resolution
* remove unused Token.applyDelta method

Patch Set 1 is the original CL that was landed and reverted
https://codereview.chromium.org/2876993005

Patsh Set 2 contains additional fixes and test changes

R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2884853002 .
2017-05-16 07:53:17 -04:00
Brian Wilkerson 0b5bee6c66 Fix a failing test (TBR)
Review-Url: https://codereview.chromium.org/2877353003 .
2017-05-15 09:49:22 -07:00
Brian Wilkerson fb982f5476 Make server use the common protocol classes
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2879273002 .
2017-05-15 09:35:46 -07:00
Brian Wilkerson 38143be701 Fix an error to fix the bots (TBR)
Review-Url: https://codereview.chromium.org/2883883003 .
2017-05-15 09:11:12 -07:00
Brian Wilkerson 27f9e5e4ce Reverse the sense of the flag to make it easier to find test that need to be converted
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2884593003 .
2017-05-15 08:40:40 -07:00
Brian Wilkerson 3085734ef6 Generate common types into a separate library
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2880443006 .
2017-05-13 08:12:14 -07:00
Brian Wilkerson e6c8092cea Enable analysis driver in tests where possible
R=danrubel@google.com, scheglov@google.com

Review-Url: https://codereview.chromium.org/2868353002 .
2017-05-10 09:13:25 -07:00
Brian Wilkerson 863bd921e1 Remove the non-driver versions of several tests
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2863593004 .
2017-05-05 13:46:03 -07:00
Brian Wilkerson e55812a3f2 Unify the server and plugin versions of the generators
R=devoncarew@google.com

Review-Url: https://codereview.chromium.org/2844273003 .
2017-04-28 07:46:29 -07:00
Brian Wilkerson 207fffe067 Send re-analyze requests to plugins
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2843093002 .
2017-04-26 12:36:26 -07:00
Brian Wilkerson 5695e95902 Add support for three more plugin requests
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2834993002 .
2017-04-22 09:02:30 -07:00
Brian Wilkerson 61d5c85b48 Allow navigation from var when there is an inferred type (issue 29091)
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2769813005 .
2017-03-23 10:34:09 -07:00
Konstantin Shcheglov 6d79ee2602 Issue 27214. Get any AnalysisDriver for getNavigation().
This means that we will able to analyze any file, even outside all
analysis roots.

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

Review-Url: https://codereview.chromium.org/2689213016 .
2017-02-17 09:13:59 -08:00
Konstantin Shcheglov 663b7f665e Analysis.getHover should return the field's documentation for field formal parameters.
Also return the parameter's element with completion suggestion.

R=brianwilkerson@google.com
BUG= https://github.com/flutter/flutter-intellij/issues/385

Review-Url: https://codereview.chromium.org/2681233005 .
2017-02-10 08:49:40 -08:00
Konstantin Shcheglov 44bab19cb3 Implement 'analysis.analyzedFiles' notification with the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2612723002 .
2017-01-04 07:12:47 -08:00
Konstantin Shcheglov eaca15cd4d Fix analysis.getNavigation with the new analysis driver.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/28125

Review-Url: https://codereview.chromium.org/2582753003 .
2016-12-16 10:52:47 -08:00
Brian Wilkerson 8c946a6b9b Apply error processors in the new driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2577913002 .
2016-12-14 16:07:06 -08:00
Brian Wilkerson c99adefae7 Get some tests running using the analysis driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2562083002 .
2016-12-09 08:32:39 -08:00
Paul Berry ae6fd961a1 Prepare for decoupling analyzer ASTs from element model.
This CL creates top level accessor functions which may be used to map from AST data structures to their corresponding elements and types, and begins using those accessor functions throughout the SDK.  It also adds empty interfaces ResolutionTarget and ResolutionType, which are implemented by Element and DartType respectively.

In a future CL, I will change the types stored in the AST to ResolutionTarget and ResolutionType, rather than specific element types; this will decouple the ASTs from the element model.  The presence of the accessor functions will allow clients to continue accessing elements and types in a type-safe way.

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

Review URL: https://codereview.chromium.org/2551023005 .
2016-12-07 11:08:14 -08:00
Brian Wilkerson 20baedc660 Reapply "Move the linter core to the analyzer package"
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2559773002 .
2016-12-07 09:57:17 -08:00