Commit Graph

2342 Commits

Author SHA1 Message Date
Brian Wilkerson 22f561e914 Reapply "Add support for generic function type syntax, part 1"
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2622303006 .
2017-01-11 14:10:05 -08:00
Brian Wilkerson 85b1e7abbe Revert "Add support for generic function type syntax, part 1"
Review-Url: https://codereview.chromium.org/2624283003 .
2017-01-11 13:30:52 -08:00
Brian Wilkerson 1cd918533d Add support for generic function type syntax, part 1
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2613383003 .
2017-01-11 13:12:10 -08:00
Konstantin Shcheglov 5a9c5ac1ec Issue 28068. Implement diagnostics domain for the new analysis driver.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/28068

Review-Url: https://codereview.chromium.org/2625493002 .
2017-01-09 12:07:15 -08:00
Konstantin Shcheglov 266280f0c4 Issue 28300. Reset refactoring when analysis started with the new analysis driver.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/28300

Review-Url: https://codereview.chromium.org/2626433002 .
2017-01-09 10:18:20 -08:00
Leaf Petersen 83fc4b6b46 Put a TypeProvider on the TypeSystem implementations.
Adding a TypeProvider instance to TypeSystem to avoid needing to
thread it through the various APIs, and to avoid having to change
the API every time a method which previously did not need to
access the TypeSystem suddenly does.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2590883004 .
2017-01-09 02:40:10 -08:00
Konstantin Shcheglov e80a54e432 Fix the rest of the completion tests with the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2618243002 .
2017-01-08 15:16:33 -08:00
Konstantin Shcheglov 7fc5bc3634 Remove REPLACE_IMPORT_URI Quick Fix.
I decided that it is not so useful to worth adding special support
for it with the new analysis driver.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2616163002 .
2017-01-06 14:56:20 -08:00
Konstantin Shcheglov 0377beb128 Update 'Add final field formal parameters' Quick Fix to support the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2618923003 .
2017-01-06 14:34:49 -08:00
Konstantin Shcheglov 188c087036 Run 'Inline Method' refactoring tests with the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2619053002 .
2017-01-06 13:51:02 -08:00
Brian Wilkerson 07895169be Remove code duplication
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2618983003 .
2017-01-06 10:55:55 -08:00
Konstantin Shcheglov e9794e37b5 Call processOptionsForDriver() before creating the driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2615903002 .
2017-01-05 11:10:01 -08:00
Konstantin Shcheglov d9930d86cd processOptionsForDriver() is never called with 'optionsRemoved'.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2612783004 .
2017-01-05 08:47:52 -08:00
Konstantin Shcheglov 9a3b6a09e5 Issue 28261. Add support for implementing generic methods in Quick Fix.
R=brianwilkerson@google.com
BUG= https://github.com/dart-lang/sdk/issues/28261

Review-Url: https://codereview.chromium.org/2618653002 .
2017-01-05 08:32:03 -08:00
Konstantin Shcheglov 1e43b4f270 Replace using MockSdk with FolderBasedDartSdk + summaries in AbstractContextTest(s).
It has some performance penalty (about 2-3 seconds in 35 seconds total).

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

Review-Url: https://codereview.chromium.org/2610823004 .
2017-01-04 14:39:24 -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 606bdb519f Cache results for priority files in AnalysisDriver.
Remove corresponding caching from Analysis Server.

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

Review-Url: https://codereview.chromium.org/2611523005 .
2017-01-03 17:04:58 -08:00
Konstantin Shcheglov 7e560a612f Enable the new analysis driver by default, use --disable-new-analysis-driver to disable.
R=paulberry@google.com, brianwilkerson@google.com, devoncarew@google.com
BUG=

Review-Url: https://codereview.chromium.org/2606283005 .
2017-01-03 14:50:17 -08:00
Brian Wilkerson bbf45b52e6 Guard against missing enclosing class (issue 28163)
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2609833002 .
2017-01-03 07:52:54 -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
Konstantin Shcheglov 7e15a96b1b Use AnalysisOptions.signature as a way to check compatibility.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2577943003 .
2016-12-15 13:01:06 -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 a8e9a1f108 Fix updating source factory in driver (issue 28086)
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2571353002 .
2016-12-14 13:08:23 -08:00
Konstantin Shcheglov 52c81e4a78 Fix for detecting lib/src. Sort fixes by relevance.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2572013002 .
2016-12-14 06:57:19 -08:00
Konstantin Shcheglov 3a422bceb7 Implement SearchEngine.searchMemberDeclarations() for the new driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2566393003 .
2016-12-13 14:06:15 -08:00
Konstantin Shcheglov 142473b8cb Implement SearchEngine.searchTopLevelDeclarations() for the new driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2572603003 .
2016-12-13 12:11:22 -08:00
Paul Berry cc2b071743 Fix up imports after d8c9645c26.
Review-Url: https://codereview.chromium.org/2567403002 .
2016-12-13 05:15:47 -08:00
Mike Fairhurst d8c9645c26 Reorganize InheritedRefenenceContributor to serve angular completion
Take the parts that I would have simply copied and pasted them into my
own code, and create new public & private methods to serve the new
organization.

Add an option to get the current class's accessors/methods along with
the inherited ones, because that's what I want.

Make opType a public member of DartCompletionRequest

Its used so heavily by so many of the autocomplete targets, it really
doesn't need to be hidden on the Impl.

Besides, I want to use InheritedReferenceContributor, which upcasts the
DartCompletionRequest into the Impl in order to grab this field -- but
for a large number of reasons I can't really use
DartCompletionRequestImpl. Therefore I need my own class to implement
DartCompletionRequest and therefore my code will only work with
InheritedReferenceContributor if it doesn't have to look outside the
interface for this information.

Change to enable the angular analysis project to do autocomplete

We don't have CompilationUnits, but we do have dart ASTs, and we want to
find the completion target with the same algorithm. The CompletionTarget
class's functionality doesn't depend on its member compilationUnit not
being null, so that isn't a problem for us. However, in `forOffset()`,
we cannot pass in a null unit, even though its only used to set the
`compilationUnit` member and otherwise only used as an `AstNode` which
we have.

So rather than using `compilationUnit` as the entry point of the
algorithm, add a new `AstNode` parameter to represent the entry point,
and when its null simply use the value of `compilationUnit`.

BUG=
R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2565633002 .
2016-12-12 14:29:53 -08:00
Brian Wilkerson 223513c81a Fix bug when packages file changes in new driver
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2570623002 .
2016-12-12 14:03:00 -08:00
Konstantin Shcheglov a5b2e62bda Fix for completion after the closing quote in a directive.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2572513003 .
2016-12-12 13:38:38 -08:00
Konstantin Shcheglov c4ed99acc9 Support for overlay only files in Analysis Server with the new driver.
Do we need this at all?

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

Review-Url: https://codereview.chromium.org/2571593002 .
2016-12-12 13:16:04 -08:00
Konstantin Shcheglov d564b0aaab Send errors notification without delay.
Update 'analysis.updateContent' integration test.

This might be OK from performance POV - errors are cheaper to send than
for example navigation. And this satisfies the goal of 'analyzing'
notification - that new errors are to be expected.

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

Review-Url: https://codereview.chromium.org/2567113003 .
2016-12-12 11:39:47 -08:00
Konstantin Shcheglov 2a7612f103 Implement 'analysis.occurrences' for the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2566223002 .
2016-12-12 10:07:19 -08:00
Konstantin Shcheglov a7222ac09d Implement 'analysis.outline' for the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2571513002 .
2016-12-12 09:09:45 -08:00
Konstantin Shcheglov 0728e4ee70 Implement 'analysis.getErrors' for the new driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2566013002 .
2016-12-11 15:27:57 -08:00
Konstantin Shcheglov 80e30c4c4e Implement 'analysis.getNavigation' for the new analysis driver.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2566883002 .
2016-12-11 15:23:03 -08:00
Brian Wilkerson 86c62a6bad Remove the command-line plugin
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2565993002 .
2016-12-11 10:59:19 -08:00
Konstantin Shcheglov 4fa3413596 Renames and comment tweaks for files.
R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2569623002 .
2016-12-11 10:11:07 -08:00
Brian Wilkerson a01afcd1d1 Remove the options plugin
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2569603002 .
2016-12-11 08:38:29 -08:00
Brian Wilkerson ebf5fbcd0e Remove references to the linter plugin
R=scheglov@google.com

Review-Url: https://codereview.chromium.org/2567863002 .
2016-12-10 10:00:20 -08:00
Konstantin Shcheglov 9ab69ab984 Implement SearchEngine.searchAllSubtypes() with the analysis driver.
Inline getSubClasses().

Add a couple of tests for SearchEngineImpl2 itself.

R=brianwilkerson@google.com
BUG=

Review-Url: https://codereview.chromium.org/2564913002 .
2016-12-09 09:32:49 -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
Konstantin Shcheglov 685b956840 Set empty namespaces for public/exportNamespace of synthetic libraries.
R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2556253004 .
2016-12-08 08:15:04 -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 0ea654a068 Remove the AnalysisOptionsProcessor
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2559523005 .
2016-12-07 10:51:33 -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
Paul Berry 1a172e935b Revert "Move the linter core to the analyzer package"
This reverts commit 6d9d5f53a1, which
was causing analysis server unit tests to fail.

TBR=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2561573003 .
2016-12-07 05:36:46 -08:00
Konstantin Shcheglov 402cd0b646 Implement 'Import Library' Quick Fix for the new analysis driver.
It turned out to be easier than I thought is would be.

The potential problem was to find correspondence between AnalysisResult
and the AnalysisDriver instance to request top-level declarations in.
But if we just include the AnalysisDriver into AnalysisResult, this
solves the problem.

This creates another problem though - now we need to be careful to
not cache an instance of AnalysisResult for a long time.

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

Review URL: https://codereview.chromium.org/2549143007 .
2016-12-06 15:00:53 -08:00
Konstantin Shcheglov 57c3002ede Implement 'Import Library' Quick Fix for project libraries using TopLevelDeclarationInSource.
Only the current implementation is done.

Implementation for the new analysis driver is not linked yet.

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

Review URL: https://codereview.chromium.org/2554113003 .
2016-12-06 14:24:22 -08:00
Brian Wilkerson 6d9d5f53a1 Move the linter core to the analyzer package
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2553203002 .
2016-12-06 09:42:26 -08:00