Commit Graph

809 Commits

Author SHA1 Message Date
pq a54d4eb149 recurse to install corpus dependencies
Change-Id: I5d4f27bcd8d57212e3b11faf1a8e6feeba4f308d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-27 17:10:13 +00:00
pq 8fb0e62bab corpus index updates
removed "bad" repos.

Change-Id: Iaa17a3134468c57f6c158b5ef5af9a1cd854b7f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137424
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-26 23:19:11 +00:00
Brian Wilkerson ede57f9ed4 Add some finer grained analysis around arguments
Change-Id: I1eb106a8a28a3de4fc6160794b098afb46d8aef1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137400
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-26 22:27:11 +00:00
pq 97aac77d7f corpus path fixes
Change-Id: Id7a5d219cb5dd25dff77ce9167728ce769aed3e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137288
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-26 17:30:07 +00:00
pq 26acdfb310 clone and update corpus repos
Running this with `data/itsallwidgets_repos.txt` as an argument, should produce
a directory `third_party/download` populated with cloned repos ready for
analysis (`flutter pub get` will have been run).


Change-Id: I5f5c553a4f880c9970e502b4efa9359f224a68aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137242
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-25 23:46:14 +00:00
pq af99f4ba9b itsallwidgets corpus repo data
Change-Id: I5ae23e923651240d7404185afefab9c4fb88f005
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137260
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-25 22:34:06 +00:00
Brian Wilkerson 74c22eb789 Stop gathering information about the class of child nodes
While this information is interesting, it isn't useful, so there isn't
any reason to continue to collect it.

Change-Id: I9da5664d200787cb673fa1c468e9995ce94cf459
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136855
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-25 20:37:59 +00:00
Brian Wilkerson e187e42593 Stop producing trailing spaces when writing the last column of tabular data
Change-Id: I386795a266a81f0a1b9c0d71a1465c2642084498
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136522
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-20 01:57:45 +00:00
Brian Wilkerson 3dc8cb0d2b Minor improvements to metrics gathering
Differentiate between class references and constructor references when
the class name comes first.

Start gathering data for general cases (start of expression, start of
statement) to determine whether we need fine-grained handling based on
the context or whether all expressions (for example) follow the same
distribution.

Change-Id: Iec403474aa19a3468fd15c0b90ec26392bf040f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136440
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-19 18:01:34 +00:00
Brian Wilkerson 36a6d509ba More improvements to completion metrics computation
Change-Id: Idbab7d6cb14d45e850a08f5ca87e15c90c434664
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136300
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-18 22:29:24 +00:00
Brian Wilkerson 87b7275704 Print completion metrics for similar contexts side-by-side
Change-Id: I9e6b2c68804ebb1f94aa360967f9288e651bc686
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135966
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-14 20:19:37 +00:00
Brian Wilkerson c84b9230cc Store strings as labels for completion metrics
This simplifies the existing code and will simplify the next change I
want to make.

Change-Id: I0acc67655dd78bf380f49cfdf2cb7643c7d595d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135882
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-14 17:58:47 +00:00
Brian Wilkerson 63c8bb7e46 Collect information about the AST structure at completion points
There might be a better way to get this information, but if we have a
constructor invocation the identifier is resolved to a class element
rather than a constructor element. This is an attempt to be able to tell
the difference between those two cases.

Change-Id: I6086d53c108686a42162108f764758bb97cffc3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135761
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-13 21:46:18 +00:00
Brian Wilkerson e75c9192a1 Start converting dartdoc style in analysis_server
Change-Id: I013659a0f34dafce4c091dc534e2ab8ef0469217
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135491
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-13 15:00:03 +00:00
Brian Wilkerson 86b1b9d03c Enhance member depth completion metrics
This now looks in mixins (which were ignored before) and finds matches
from interfaces, reporting the interfaces separately from the superclass
and mixin chain.

Change-Id: Id5f3379261e1ec184dc347abb371693481b65680
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135528
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-12 22:16:32 +00:00
Brian Wilkerson 4f6a5811fc Add json support to completion metrics computation
Change-Id: I43e987c946dc5c3b200ced14c132a31cc97b5f29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135560
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-12 21:03:37 +00:00
Brian Wilkerson 680e109ad2 Gather more code completion metrics
The code is now gathering both element and token data in several places
where it used to gather only one of the two (using a new utility method).

The metrics are now better labeled to make the output easier to read.

It's also gathering a new metric: the distance between the static type
of a target and the class in which a referenced member is declared.

Change-Id: I566c02b069749221983ec960b8a67b293052bd93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135400
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-11 23:55:15 +00:00
Brian Wilkerson 7ce78365bf Remove the old relevance analyzer
Change-Id: I8537fafa4997e9470e8b4c3f2a2f5b730ae3aa5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135360
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-11 19:55:54 +00:00
Brian Wilkerson cbc9c47145 An initial attempt to gather metrics to guide ranking of suggestions
Change-Id: Ic06466dfe5919cc3a462e35fb6328a02bc795229
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135342
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-02-11 19:13:54 +00:00
Devon Carew 8f5b1ea9bb [nnbd preview] general UI improvements to the NNBD preview tool
Bug: https://github.com/dart-lang/sdk/issues/40487
Change-Id: I0864720d6a7f9d24a4582bb0034cbcb2875a54fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134767
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-06 23:37:55 +00:00
Jaime Wren efefe78522 [completion metrics] Add a simple CLI at the start of completion_metrics.dart. This will allow run configurations in IntelliJ hold onto the directory paths instead of being hard coded.
Change-Id: I90680e9a867a5dc48f20bfd8fac3ecece6177c3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134740
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-06 19:00:32 +00:00
Devon Carew 0631e949b2 [migration tool] fail the CI if the generated files haven't been rebuilt
Change-Id: I824f8528b5b2bf2efec4121e017d77bab5b6ab60
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134468
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2020-02-05 20:25:39 +00:00
Jaime Wren 5d3c91b68e Fix the MeanReciprocalRankComputer computation math, the computed MRR computation was not the MRR, follow up tests coming soon.
Change-Id: I3ae4486eada3ab41b21190050a7a7a2368432004
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134414
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-05 19:18:51 +00:00
Devon Carew f51187a18d [migration tool] convert the javascript code in the migration tool to dart
Change-Id: I5145be275dda77de3c25d80a13812803217d6452
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134403
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-04 21:46:08 +00:00
Jaime Wren 270829d7eb Refactor the CompletionMetricsComputer class into three classes: a subclass and two concrete classes, AbstractCompletionMetricsComputer, CompletionCoverageMetrics and RelevanceAnalyzerMetrics.
This change breaks up the lengthy algorithm, and greatly speeds up the Relevance Analyzer tests.

Change-Id: I4273bcabe7399f80aa751c5963a53fa04e1b4d25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134381
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-02-04 19:34:56 +00:00
Jaime Wren e5d5434715 Standard output improvement from metrics_util.dart to print "<no counts>" if the counter has no counts.
Change-Id: I3d01f539670bb8d57f6b04b16cc4f92aaa2aa1c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134201
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-02-03 22:50:07 +00:00
Jaime Wren 78fe10c3be Completion metrics change- add missing documentation in the relevance_analyzers.dart file, as well as adding DartCompletionRequest as an input to the analyzers
Change-Id: I31c2523252f2574f092b44ec8b67d346804ac856
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134220
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-03 20:50:26 +00:00
Devon Carew 5f5e1db141 [nnbd tool] move nnbd preview tool resources to individual files
Change-Id: I7f3690e34d94e3d7f361b31447a5ae60cf01a1ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134140
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-02-03 00:38:34 +00:00
Jaime Wren d772141960 Initial RelevanceAnalyzer support in the completion_metrics.dart algorithm with an initial example implementation of RHSOfAsExpression
Change-Id: Icaf3e80cb4d634f5871d576d3344210d631641c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134092
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-31 21:41:47 +00:00
Brian Wilkerson bff11ba6ec Enable always_declare_return_types in analysis_server
Change-Id: I9b06753cf552c9f50ea2abd7f3fa5ba9adecb526
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134085
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-31 17:45:24 +00:00
Brian Wilkerson 5d7f3093fd Update the lsp generator to generate return types for all methods
Change-Id: Id1a90d770aa772327011ee8ccc7a13f0ca6f8de4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133961
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-30 21:43:43 +00:00
Brian Wilkerson 0d3571b52f Add return types to more methods in analysis_server
Change-Id: Ib61c92d65e6170a1b5cd3e3d24affb3a3fa16bb9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133760
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-29 20:18:20 +00:00
Jaime Wren 1ec1b4d68b Completion metrics cleanup for FieldFormalParameters.
Change-Id: Id9151e182446ea0cb21141230e0378cc8cd6efa8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133668
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-29 17:47:56 +00:00
Jaime Wren 1aea141b6e In completion_metrics.dart, skip files that have analysis errors
Change-Id: Iae95f7370b6dd6725af607bcc794373b675d6914
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133666
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-29 17:40:16 +00:00
Jaime Wren 34e271a64b Don't include library directives in the completion metrics computations.
Change-Id: Ic86383ad23a55c92b079f8b55d24ce7c33f29c5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133681
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-29 07:36:02 +00:00
Jaime Wren b1be0d58a1 completion_metrics.dart change, don't expect completions when the completed token would be a dynamic type.
This change improves the number of successful completions from 96.2% to 98.2% on the collection library.

Change-Id: I6dffa3b6ad6c92be482ca0810c1c0aa558fdcbde
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133545
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-28 19:25:29 +00:00
Jaime Wren 213c80c5dd Add a new counter in completion_metrics.dart to count and report the number of each token that was a miss.
Change-Id: Id78b1f65b4e75b3321f18be04e0589d521852c12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133502
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-28 17:21:03 +00:00
Jaime Wren ff1cd53725 completion_metrics.dart improvement with named arguments in method invocations.
Named arguments, i.e. the 'foo' in 'method_call(foo: 1)' should not be included, by design, the completion engine won't suggest named arguments already it the source.

This improvement changes the percent of successful completions from 95.4% to 96.2% with the collection package.

Change-Id: I182c09b62acfc28ed3ae852e1c8e500c6a2f4f3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133501
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-28 17:12:58 +00:00
Jaime Wren 59e8068169 Introduce and use a new class to compute the mean reciprocal rank after a run of the code completion metrics execution.
Change-Id: I72ee7fdc500d6310231b3b03a2722e63feee251a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133439
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-28 07:43:37 +00:00
Jaime Wren c352c6c0b8 Cleanup and refactoring in completion_metrics.dart
Change-Id: I46dd8b9f05d44dcb1d3d2f1088b95845427005c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133428
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-27 19:41:19 +00:00
Brian Wilkerson 9609975262 Update generators to not produce type annotations for variable declarations
Change-Id: Ia19c94b430192c606d12449011503d5ca8172feb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133380
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-25 16:31:15 +00:00
Brian Wilkerson 9918987c59 Enable prefer_if_null_operators and prefer_spread_collections in analysis_server
Change-Id: I14fa2e9a3196be1d5f5d7991104e7363c72b3fe9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133334
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-25 16:31:07 +00:00
Brian Wilkerson 3d7dd5bfe0 Remove the notion of required fixes from dartfix and the server
Change-Id: I55389e1978d11820142961b5997d2187d1e61bae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132973
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-01-24 01:05:41 +00:00
Jaime Wren 7fccd778db Cleanup from a previous PR, additional assertion in Place constructor
Change-Id: I77bdc6dabfdaa38357d81ec60d0c88bfd84fb2b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132807
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-22 18:03:58 +00:00
Jaime Wren 4ad5fab957 Refactor _placementInSuggestionList to not use the dart:math Point class to represent Place, this has been replaced by a new class.
Change-Id: I6750667e878e16c816caa80760fd8763bba97ccb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132780
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-22 00:13:39 +00:00
Jaime Wren 5d13a11ad7 Counter utility class for printing additional metrics from the completion_metrics.dart file.
Change-Id: I7ade0e367bf264b7698f99717da6f956bb01ade7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132683
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-21 21:49:19 +00:00
Brian Wilkerson 5584c96fde Enable prefer_single_quotes in analysis_server
All of the changes except in the analysis options file are from dartfix.

Change-Id: Icd9bf02ad07f71d1fc365979c7dfe18a792dc595
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132624
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-21 17:52:52 +00:00
Brian Wilkerson 7070347bbb Generate single quoted strings where possible
Change-Id: I27546bbfb85f78021e515d00c2531b83b47fc71f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132480
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-20 21:52:34 +00:00
Jaime Wren 407cd2bf3b Completion metric improvement: re-map PREFIX ElementKinds to LIBRARY ElementKinds which are the kinds used by the completion engine.
Change-Id: I5f3b81986d993f208dea5a7df3d550bc1486de12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132445
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-01-20 04:54:11 +00:00
Brian Wilkerson 93ebbe2c7a Enable use_function_type_syntax_for_parameters in analysis_server
Change-Id: I93cddc986c23e53557c647befc92d118b3d6ed43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132459
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-19 17:11:11 +00:00