Commit Graph

334 Commits

Author SHA1 Message Date
Danny Tuppeny 3af09b5b26 Add support for invocation + list/map literal folding
Bug: https://github.com/Dart-Code/Dart-Code/issues/966
Change-Id: Id85471f095b26349e60e0b10f89b4465d4c9b138
Reviewed-on: https://dart-review.googlesource.com/58740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-06-07 09:05:33 +00:00
Paul Berry b74d27d1b2 Fix navigation_test.dart to use new MockAnalysisResult.
Change-Id: I282821c3d8566265616d54d9284ff077a562bd1a
Reviewed-on: https://dart-review.googlesource.com/58900
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-06-06 20:47:54 +00:00
Konstantin Shcheglov 8c20f26234 Use mock of AnalysisResult in analyzer_plugin.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ia185d6f24d3cd250dc0b42aecb64aea482e0a46a
Reviewed-on: https://dart-review.googlesource.com/58841
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-06-06 19:09:54 +00:00
Konstantin Shcheglov a9fef15ff3 Add FileResult and AnalysisDriver.getFileSync().
I thought that getSourceKind() might be not the best API. We are moving
away from Source, and it seems that we should stop using SourceKind as well.

R=brianwilkerson@google.com

Change-Id: I0fcff8dc8cefcd6d8fb899badab8037bf8d67775
Reviewed-on: https://dart-review.googlesource.com/58442
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-06-05 20:51:37 +00:00
Konstantin Shcheglov def6f6c86c Don't create linked groups when nothing was written.
In particular, if the type was invalid, so that we cannot write it.

R=brianwilkerson@google.com

Change-Id: I5499e17e2aa3527d21cab050b7fecfd3cd09efc7
Reviewed-on: https://dart-review.googlesource.com/55860
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-18 15:54:29 +00:00
Konstantin Shcheglov 62ffedefdd Rewrite writing types to using existing writeXYZ() methods.
Also extract code that ensures imports and writes prefixes into a
separate method.

R=brianwilkerson@google.com

Change-Id: Icd35af19435153bfaebd46f7611823e6a9830d20
Reviewed-on: https://dart-review.googlesource.com/55640
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-17 15:51:27 +00:00
Konstantin Shcheglov 53a51d17db Support for optional ImportPrefixGenerator to generate prefixes for new imports.
Only one import is generated for each library.
If there is already an import for a library, new prefix is not asked.
If a prefix was generated once, it is not possible to force another
import with a different prefix.

R=brianwilkerson@google.com

Change-Id: I1676a1953002060b5e7155ce90abf87b3bfe270e
Reviewed-on: https://dart-review.googlesource.com/55326
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-16 20:15:03 +00:00
Konstantin Shcheglov d9d7cb12a6 Replace DartFileEditBuilder.importLibraries() with importLibrary().
It now returns the text of the URI that will be actually used, so
we can show it in the quick fix message without computing it separately.

R=brianwilkerson@google.com

Change-Id: I16a455d8f6a3c3e3a9c5779c94d654de32992006
Reviewed-on: https://dart-review.googlesource.com/55501
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-16 18:46:22 +00:00
Danny Tuppeny 568e977a35 Update FoldingKinds enum, update specs and increase version number
Bug: https://github.com/dart-lang/sdk/issues/33033
Change-Id: Ieccfd90ead67a9803744c54db4eec8eea0b0403c
Reviewed-on: https://dart-review.googlesource.com/54920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-05-14 16:48:48 +00:00
Konstantin Shcheglov 964dae472c Issue 30577. Use AST to find position for the first directive.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/30577
Change-Id: If69df5f49228a3b698544dcf82ad0c34c1be84e8
Reviewed-on: https://dart-review.googlesource.com/54307
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-09 06:00:59 +00:00
Konstantin Shcheglov d624b8580a Add DartEditBuilder.writeReference().
R=brianwilkerson@google.com

Change-Id: Id8a09c8c53987af49905a4cf6fa6a11b55dbd90c
Reviewed-on: https://dart-review.googlesource.com/54062
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-07 19:52:48 +00:00
Konstantin Shcheglov 296ab86012 Revert "Add DartEditBuilder.writeTopLevelElementReference()."
This reverts commit 23a1534432.

Reason for revert: a different API is more suitable.

Original change's description:
> Add DartEditBuilder.writeTopLevelElementReference().
> 
> R=​brianwilkerson@google.com, paulberry@google.com
> 
> Change-Id: Ib1511a91a7f021002e4b2f109cebe82b2814985d
> Reviewed-on: https://dart-review.googlesource.com/53687
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
> Reviewed-by: Paul Berry <paulberry@google.com>

TBR=paulberry@google.com,scheglov@google.com,brianwilkerson@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ia5a8f1976d8ffc21de5672cce3dee73c3297cfcf
Reviewed-on: https://dart-review.googlesource.com/53881
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-07 03:50:28 +00:00
Konstantin Shcheglov 23a1534432 Add DartEditBuilder.writeTopLevelElementReference().
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ib1511a91a7f021002e4b2f109cebe82b2814985d
Reviewed-on: https://dart-review.googlesource.com/53687
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-05-04 16:37:26 +00:00
Konstantin Shcheglov b4a2259b5f Enhance DartEditBuilder.writeConstructorDeclaration() to support parameter/initializer/bodyWriter.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: If6be2f3e095ae03355c04ea3f6a8524e478c1552
Reviewed-on: https://dart-review.googlesource.com/52989
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-04-30 15:56:19 +00:00
Mike Fairhurst f22cdd8def Revert "Change completionTarget.forOffset to accept & wrap dangling AstNodes."
This reverts commit fbfe5691cb.

Reason for revert: Subtle backwards incompatibility, with no obvious win-win fix.

Original change's description:
> Change completionTarget.forOffset to accept & wrap dangling AstNodes.
>
> Deprecate the entryPoint parameter, but still accept it in place of what
> used to be (positionally) compilationUnit.
>
> Detect if we have a compilation unit or not; and in the case we don't,
> add a new protection by asserting that it has no parent (its the root of
> the dangling tree).
>
> Its more of an implementation detail that completion contributors don't
> work well on dangling nodes, so fix it up for clients rather than
> expecting them to do it themselves.
>
> Change-Id: I3e454734e5b515f4e536f7229d541ca8c6aed60c
> Reviewed-on: https://dart-review.googlesource.com/52645
> Reviewed-by: Paul Berry <paulberry@google.com>
> Commit-Queue: Mike Fairhurst <mfairhurst@google.com>

Change-Id: I64a6689f7862fb2d256b348491c79c58ee0fe1a9
Reviewed-on: https://dart-review.googlesource.com/52962
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-04-27 21:23:06 +00:00
Konstantin Shcheglov c17ef848d6 Don't try to add new imports before leading comments of another import.
By doing this we tried to fix keeping "// ignore: xyz" correct.
https://github.com/dart-lang/sdk/issues/32432

Unfortunately this breaks a more often case, when there is a license
comment before the first import directive, and there is no reliable
way to decide if a comment is a license or not.

R=brianwilkerson@google.com

Bug: https://github.com/flutter/flutter-intellij/issues/2169
Change-Id: Id5bdf7af48bd0b8748a53f8c5b3eb79ac2d6ae01
Reviewed-on: https://dart-review.googlesource.com/52940
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-04-27 20:59:09 +00:00
Paul Berry 010d8144bc Add missing copyright notice
Change-Id: I1283a9536c6ddad3c99e644cd8619e7202cfc5f6
Reviewed-on: https://dart-review.googlesource.com/52880
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-04-27 17:06:09 +00:00
Brian Wilkerson 1c5d1a56e7 Clean up some hints
Change-Id: I623a4d86912ad0666b75ad519c15c84b24a5b579
Reviewed-on: https://dart-review.googlesource.com/52861
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-04-26 22:29:06 +00:00
Mike Fairhurst fbfe5691cb Change completionTarget.forOffset to accept & wrap dangling AstNodes.
Deprecate the entryPoint parameter, but still accept it in place of what
used to be (positionally) compilationUnit.

Detect if we have a compilation unit or not; and in the case we don't,
add a new protection by asserting that it has no parent (its the root of
the dangling tree).

Its more of an implementation detail that completion contributors don't
work well on dangling nodes, so fix it up for clients rather than
expecting them to do it themselves.

Change-Id: I3e454734e5b515f4e536f7229d541ca8c6aed60c
Reviewed-on: https://dart-review.googlesource.com/52645
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-04-26 20:32:27 +00:00
Paul Berry 88099ffcc3 Stop importing front_end into analyzer_plugin.
The symbols we previously needed (SyntheticBeginToken and
SyntheticToken) are now exported from the analyzer as of
dc21d3ce9d.

Change-Id: I5d0901c544fed0983d45c1da1dccfd5659a7777c
Reviewed-on: https://dart-review.googlesource.com/52821
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-04-26 19:12:46 +00:00
Janice Collins 1afe71c08a Enable preview-dart-2 as default for analyzer.
Based on https://dart-review.googlesource.com/c/sdk/+/52340, but adds
the necessary plumbing through the test system to pass through
negations to strong and preview-dart-2.  Also adds support for those
negations to the analyzer.

Change-Id: I9793ff28bb593d25bbb0a2ed8736b5b53e0a62d8
Reviewed-on: https://dart-review.googlesource.com/52461
Commit-Queue: Janice Collins <jcollins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-04-26 17:01:12 +00:00
Mike Fairhurst 4bf738606b Fix (+test) dangling expression autocompletion for angular
Change-Id: If35f998eb7fe38f21e30bfba3d87c507c07ebc7c
Reviewed-on: https://dart-review.googlesource.com/52522
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-04-24 22:04:13 +00:00
Brian Wilkerson 7054d92a02 Remove some classes from the analyzer public API
Change-Id: Ic53a8426818b06f44c2876abd16c789589bf78b5
Reviewed-on: https://dart-review.googlesource.com/52421
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-04-24 15:28:15 +00:00
Konstantin Shcheglov 9976cddcd7 Shared cache of FileState contents.
This makes Flutter repo analysis about 12% faster.

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

Base: 76.2 74.9 75.9
After: 65.6 66.0 66.6 67.1
Change-Id: I5afffdae15eacf2c09c4ede40d7312c8827bae0c
Reviewed-on: https://dart-review.googlesource.com/51061
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-04-13 16:43:36 +00:00
Brian Wilkerson d3295ded48 Remove the SORT_MEMBERS refactoring from the spec
Change-Id: Ic8b8135f22d8c3c07d4ded661ac43d2d5105dc3f
Reviewed-on: https://dart-review.googlesource.com/48464
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-03-27 16:37:44 +00:00
Konstantin Shcheglov 6bd38cc912 Analysis Server API for 'Extract Widget' refactoring.
R=brianwilkerson@google.com

Change-Id: Ie6b7c349d304785ab6829770ebd3504c0affe8df
Reviewed-on: https://dart-review.googlesource.com/47943
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-03-22 20:25:29 +00:00
Konstantin Shcheglov 9f0e391e28 Rename writeParameterSource() to writeParameter() and make 'type' optional.
R=brianwilkerson@google.com

Change-Id: I0658a642f5877ba2c3e8e69e173fb9cfba4ef719
Reviewed-on: https://dart-review.googlesource.com/47584
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-03-21 21:00:19 +00:00
Konstantin Shcheglov 15bf72615d Fix for using isFinal/isConst with type in writeFieldDeclaration().
R=brianwilkerson@google.com

Change-Id: I73ae0f2e714b2820e327e9a9e5a98baf5a2df189
Reviewed-on: https://dart-review.googlesource.com/47560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-03-21 19:18:56 +00:00
Brian Wilkerson b15860f43a Convert analyzer_plugin tests to pass under preview-dart-2
Change-Id: I4531491524de0e93391a75a3972f249d604f0e2b
Reviewed-on: https://dart-review.googlesource.com/46568
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-03-15 16:54:59 +00:00
Konstantin Shcheglov e1909cb52a Update Outline protocol - change offset/length, add codeOffset/codeLength.
R=brianwilkerson@google.com

Change-Id: I4b5c03a21254f7c497adc4c043641b18599c5c39
Reviewed-on: https://dart-review.googlesource.com/45764
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-03-09 01:52:57 +00:00
Brian Wilkerson 602a8c2a7b Clean up usage of deprecated constants
Change-Id: I9005ba6e94529e15d8f7b21322591f4a9dabec47
Reviewed-on: https://dart-review.googlesource.com/45763
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-03-09 01:02:49 +00:00
Brian Wilkerson f5b5ae86b6 Respect comments when inserting imports (issue 32432)
Change-Id: I163818e60e21ee68bd621b8faa94b7ba9b545bcf
Reviewed-on: https://dart-review.googlesource.com/45526
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-03-07 20:47:42 +00:00
Brian Wilkerson 1d159e7c23 Rename annotation testing methods in Element
Change-Id: I0f60b9abd3de350e62d89eac0d690a1db40316b7
Reviewed-on: https://dart-review.googlesource.com/45080
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-03-05 17:23:48 +00:00
Brian Wilkerson 3d183f6999 Add support for selection ranges to ChangeBuilder
Change-Id: Icd4c1bcf2ecb66020a9a7f478a037c478e8a109f
Reviewed-on: https://dart-review.googlesource.com/42024
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-02-16 19:23:06 +00:00
Brian Wilkerson 0501c740ac Member overrides invoke the overridden member and the display label uses ellipses
Change-Id: I9cb2db1514a8a2798cb3ec69d3d71047573a8dd4
Reviewed-on: https://dart-review.googlesource.com/41903
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2018-02-16 14:12:27 +00:00
pq 35221ce1fc Override completion displayText implementation.
Change-Id: If19ccb00145ec4befec2be575af48709f122b511
Reviewed-on: https://dart-review.googlesource.com/40510
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-02-13 19:15:26 +00:00
Konstantin Shcheglov 7cffd55c41 Don't suggest anything right after double or integer literals.
R=brianwilkerson@google.com, danrubel@google.com

Change-Id: Ib8b9091daedb1e1921ae3c454e83a5b96d94a71a
Reviewed-on: https://dart-review.googlesource.com/40471
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-02-12 01:18:35 +00:00
Konstantin Shcheglov 456890cd2c Enable completion in AssertInitializer.
R=brianwilkerson@google.com, danrubel@google.com

Bug: https://github.com/flutter/flutter-intellij/issues/1101
Change-Id: Id17a701cac0e98afc373cf89089916cf5f983cff
Reviewed-on: https://dart-review.googlesource.com/40472
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-02-12 01:01:31 +00:00
pq 06614a7b19 Proposed API for optionally building override cc displayText.
Change-Id: Ic3ea3317da1220c7d396348ae93e40ab672ecc59
Reviewed-on: https://dart-review.googlesource.com/40500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-02-11 18:01:13 +00:00
pq a4ecc44c30 Completion protocol API for overrides.
Proposed API to allow IDEs to ask a suggestion for a displayText which may differ from the value to insert (the completion).

Also, adds a new OVERRIDE suggestion kind.

See: https://youtrack.jetbrains.com/issue/WEB-31130










Change-Id: Ic0644308d746ac7771bc27bc2ff2789444733af3
Reviewed-on: https://dart-review.googlesource.com/40101
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-02-09 17:57:17 +00:00
Konstantin Shcheglov ffd67154f7 Add a new optional field - 'id' to SourceChange.
R=brianwilkerson@google.com

Change-Id: Ibe85415be35982327593ffd1187ec74b1d037463
Reviewed-on: https://dart-review.googlesource.com/40102
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-02-08 20:13:11 +00:00
Konstantin Shcheglov f6febf35b1 Don't write EOLs before/after new class members.
R=brianwilkerson@google.com

Change-Id: Ie70423802985fc762fea2cb55a2936a3e3f3add0
Reviewed-on: https://dart-review.googlesource.com/39851
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-02-08 00:40:11 +00:00
Brian Wilkerson 39448ff521 Improve creation of overriding methods (issues 30730 and 30759)
Change-Id: I96a06f6ad2646d4590804c2e5d8d7f6ab95dbd74
Reviewed-on: https://dart-review.googlesource.com/39844
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-02-07 22:16:00 +00:00
Lasse R.H. Nielsen 6f78471687 New methods on Iterable, List, Set, Queue, Map.
Changes signature of Iterable.singleWhere.
Makes LinkedHashMap no longer be a HashMap.

Change-Id: I7a12fea533d42b0fc8357086649df38ad01f3cdd
Reviewed-on: https://dart-review.googlesource.com/39140
Commit-Queue: Leaf Petersen <leafp@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-02-07 06:12:53 +00:00
William Hesse 9c35cff5cd Revert "New methods on Iterable, List, Set, Queue, Map."
This reverts commit 0b59f24f97.

Reason for revert: Creates crashes in dart2js with kernel, see
https://luci-milo.appspot.com/buildbot/client.dart/dart2js-linux-d8-minified-1-5-be/9751

Original change's description:
> New methods on Iterable, List, Set, Queue, Map.
> Changes signature of Iterable.singleWhere.
> Makes LinkedHashMap no longer be a HashMap.
> 
> Change-Id: Ibd7e56e1ac03cb9fb10d19d1328d452fcd06d89f
> Reviewed-on: https://dart-review.googlesource.com/32541
> Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
> Reviewed-by: Leaf Petersen <leafp@google.com>

TBR=lrn@google.com,leafp@google.com

Change-Id: Iab904f5885a5213ae2e16ef496eed0b6843185f3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/39060
Reviewed-by: William Hesse <whesse@google.com>
2018-02-06 13:32:19 +00:00
Lasse R.H. Nielsen 0b59f24f97 New methods on Iterable, List, Set, Queue, Map.
Changes signature of Iterable.singleWhere.
Makes LinkedHashMap no longer be a HashMap.

Change-Id: Ibd7e56e1ac03cb9fb10d19d1328d452fcd06d89f
Reviewed-on: https://dart-review.googlesource.com/32541
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-02-06 11:17:46 +00:00
Brian Wilkerson 740a0e751e Rework part of DartChangeBuilder to deal better with type parameters (issue 31199)
Change-Id: I1946e6070c0dcffaa02f61b9c7f857168a050a27
Reviewed-on: https://dart-review.googlesource.com/38483
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-02-05 18:21:36 +00:00
Brian Wilkerson 0916cca7d2 Do not convert return type of enclosing function when adding async to nested closure (issue 30901)
Change-Id: I8293b7784f71d4ff7846a0cca6efbfa69847b7da
Reviewed-on: https://dart-review.googlesource.com/37646
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-30 21:57:10 +00:00
Dan Rubel 1231e90fee Code complete identifiers not directly referenced by the analyzer AST
The fasta parser sometimes "drops" unexpected tokens during recovery.
When this happens, the dropped or skipped token is not reported to
the listeners, and thus does not become part of the analyzer's AST.
These tokens are still in the token stream, but will not be found
by the existing CompletionTarget mechanism.

For example, the fasta parser parses
'if (v i) {}' as 'if (v) {}' and drops the 'i' token.

This CL introduces a new CompletionTarget.droppedToken field.
If a keyword or identifier has been dropped by the parser,
but overlaps the code completion offset, then that token
is placed into this new field.

In the example above, when code completing the 'i',
the CompletionTarget will now be
containingNode = '(v)'
entity         = ')'
droppedToken   = 'i'

Change-Id: I15e43529ab4a72de9500c521be278fa13ae68d99
Reviewed-on: https://dart-review.googlesource.com/31285
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-22 21:55:35 +00:00
Devon Carew 47a861ca85 Add two new element types to the protocol.
Bug:
Change-Id: I5a60081d7c8500590bbabb9ee6dce74fa611b0a3
Reviewed-on: https://dart-review.googlesource.com/14883
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-18 19:02:47 +00:00