Commit Graph

646 Commits

Author SHA1 Message Date
Brian Wilkerson b85c68a73c Collect and print information about the worst completion results
Change-Id: I38e1d2a587f80ed4ee0da75f875b94aff922fe3a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142064
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-04-01 21:45:48 +00:00
Jaime Wren a14d41958e Modify the completion_metrics.dart file to ignore named arguments in dynamic or unknown method calls.
This is a follow up on https://dart-review.googlesource.com/c/sdk/+/140775

Change-Id: Id84271f1bc8559f516c2c4e09c2b66dc10462f3f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141915
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-04-01 18:26:32 +00:00
Jaime Wren 11d6bc6055 Comment out the currently incomplete available suggestions work to ensure that the output is accurate for non-available suggestions users
Change-Id: I094392cb81edf5c0c7b11702ba42e5d2c80a1453
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141760
Commit-Queue: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-03-30 22:08:19 +00:00
Brian Wilkerson 93313eb244 Enable omit_loval_variable_types in analysis_server_client
Change-Id: I21271bfc6b2b7949fcafc5f91f23f8364697bcfc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141580
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-30 03:59:07 +00:00
Brian Wilkerson 8969b1839c Enable omit_local_variable_types in analysis_server
Change-Id: I7e5c13d40fd276854601681fc84be321e6031b10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141583
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-30 03:58:44 +00:00
Brian Wilkerson a564026dc7 Remove the need for a --corpus flag from completion_metrics
Change-Id: Id395b3f4d58a072c435d97920a573379439d8580
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141471
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-28 17:50:53 +00:00
Brian Wilkerson 2b4f12f3c5 Remove the need for a --corpus flag from relevance_metrics
Change-Id: I7dacc57728258a9cbbe481950d618bbe73bfa22f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141470
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-28 17:50:44 +00:00
Brian Wilkerson 7e724e70b0 Sort non-generated files in analyis_server and add a test to ensure they stay that way
Change-Id: I6c7a38cefa69f46737bd50eefe2fbb88c127017b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141520
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-28 17:12:03 +00:00
Sam Rawlins 1aab8bccd0 Add a dev mode to Migrator preview site compiler
Change-Id: I355ca9f89371e497370664ed8733a581c5958ae5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140763
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-03-25 14:49:32 +00:00
Brian Wilkerson 2d0fed35bb Update the ArgListContributor to have new relevance scores
This also includes a new metric computation showing how often function
typed parameters have closures as arguments.

Change-Id: I8999cc3935bcc7514ebba90a8a4d246b2f236c42
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140702
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Jaime Wren <jwren@google.com>
2020-03-24 17:00:55 +00:00
Jaime Wren dd95365f76 Optimization for the MeanReciprocalRankComputer.  This change doesn't have the object hold onto the list of ranks for the entire duration of a run, but has a running sum instead (similar to ArithmeticMeanComputer).
This would have been an over-optimization originally, but at this point, we have 10 of these computer objects in completion_metrics.dart, and we are running this algorithm with up to 1.2 million ranks.

(Assuming that an int takes 4 bytes which I believe is true...) On a recent run of Brians, 29.4 MB of data was the running total of all the ranks.  With this change, the same data will be stored with 10 doubles and 10 ints.

Change-Id: If97ca18e78782c02a3ca0a3ed9d6a9725f5a05ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140321
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-21 19:50:36 +00:00
Brian Wilkerson 49c3fd32da Measure how often context type information is available
Change-Id: I4dc3fea554ec16665e7ca5e4cfb1e577403a8ec9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139861
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-17 23:28:55 +00:00
Brian Wilkerson f617f92c15 Capture the syntactic metrics removed from relevance-metrics
Change-Id: I89f7112ad31f41b0b6bc406156f4371fa373d62c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139842
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-17 19:35:55 +00:00
Brian Wilkerson 169b88654d Split out metrics computations for static members
Also did a little cleanup and sorted the file.

Change-Id: I7bb288345abf851dd88d6f7cf28e4d49ade75ec6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139829
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-17 19:23:27 +00:00
Jaime Wren 810d85d4cf Measure and report the average number of milliseconds it takes per code completions.
Tests to come for the new class.

Change-Id: I387ec41966e8db674c0be26124a9dcb8abeeb30a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-16 19:58:20 +00:00
Konstantin Shcheglov 51f5636daf Report FLUTTER_GET_WIDGET_DESCRIPTION_CONTENT_MODIFIED when a file is changed during the request.
R=brianwilkerson@google.com

Change-Id: I9d77df28dd16fdaf30ba4dd04fe8cfff221c236d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139144
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-03-12 01:09:00 +00:00
Jaime Wren a7b8401517 Add a Stopwatch to time the completion_metrics.dart
Change-Id: I05ba8ac79ffa6a63c1cf66a79410d289d3659a29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139062
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-11 18:24:09 +00:00
Jaime Wren 1d5601e7f9 Modify the completion_metrics.dart algorithm to compute the set of completion suggestions with useNewRelevance set to true and false, and printing out each set of results for comparison.
Change-Id: I2510d247b1ee7397cfb5a01e6e87a3015543bc31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139036
Commit-Queue: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-03-11 17:33:59 +00:00
Jaime Wren 699f4b7395 Add additional metrics into the completion metrics algorithm, MRR broken apart by type member completions, and non-type member completions
Change-Id: I5fd0c6b0ac1f9f0450ba630964e335488046a698
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138912
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-10 19:48:21 +00:00
Brian Wilkerson d673c176ae Start implementing new relevance scores for members of a type
Change-Id: I5594da6c9f1b71d239593131c02b5b10a57a4725
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138907
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-10 17:28:51 +00:00
Konstantin Shcheglov 83378633e1 Add the attachment with the content of the file being analyzed.
Change-Id: I75b1c61e2d04cd5e03ef4375e97ef3c9f4add874
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138384
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-03-10 04:57:20 +00:00
Jaime Wren 005c5d7b52 Add an additional MMR "Max Rank 5" metric to the output of the completion_metrics.dart
Change-Id: I00ff65853eaef85bd33d76e930d7ba1d39783a14
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138882
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-09 21:54:20 +00:00
Brian Wilkerson 52ad8dc2d2 Gather metrics on super invocations
This only looks at method invocations and property accessors. It doesn't
look at operator invocations. While it might be interesting, I doubt it
would be significantly different.

Change-Id: I51ffd612fdbf5b60470bd40cbe90f3c2b82fe1e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138883
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-09 21:47:40 +00:00
Jaime Wren f5dae48fac Add an ArgParser to completion_metrics.dart in the same manner as relevance_metrics.dart (https://dart-review.googlesource.com/c/sdk/+/138700)
Change-Id: I7a1cc9b6f042cff42b267ceda20233e061d167f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-09 20:33:30 +00:00
Brian Wilkerson 7bc171483e Latest changes to the relevance metrics tool
I created a class to hold the methods that compute feature scores.

I moved more of the code into the feature computer.

I addressed a couple of TODO items.

I implemented a couple of extra ways of viewing the data so that I could
convince myself of the right feature definition for the feature that uses
the context type.

Change-Id: I448eb74e93e854a75be32d2a16ab0b50e295f4a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138700
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-07 20:01:27 +00:00
Jaime Wren 69851f34c5 Remove the unused type hierarchy from the completion_metrics.dart
Change-Id: I71d4f2518f107d296b359f34c4a00c0e0a472d18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138568
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2020-03-06 00:16:31 +00:00
Brian Wilkerson bf5171cfd1 Add support for reporting how an accessed member related to the context type and extract feature computation
Change-Id: Id5cd64ac5aaa8b5f502f978e4dab5f9502efb47c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138560
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-05 18:42:49 +00:00
pq 2a13c38ca7 corpus support
Basic support for running metrics over a corpus (e.g., directory containing n packages).

Change-Id: Ie92fc6d035edbe57c1581ccb2bee9b60ea9594d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-03-04 20:36:36 +00:00
Brian Wilkerson c01417a00f Add more data and improve output
Change-Id: Ib99336a26a83c9d502f1e7d1873151387e68c364
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138263
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-03 23:02:13 +00:00
pq af9d78555e make git clone recursive
Change-Id: I967bc82d2b9dece0e3f60b8ea30ff76365e91540
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138261
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-03-03 21:36:23 +00:00
pq b774160615 handle null exception params
(This occurs if there is no catch keyword.)



Change-Id: I3d8d561f33f7d626b590d78be44d5cce2ec73ad0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138108
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-03-03 19:31:31 +00:00
pq 258cb9f0ae fix pub get
Change-Id: I2328e683d0838b777b03183aa04b07e4d7f02246
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138200
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-03-03 19:05:44 +00:00
Paul Berry aaa63b511c Make migration codegen traverse directories in a stable order.
Fixes #40505.

Bug: https://github.com/dart-lang/sdk/issues/40505
Change-Id: I846c4262845a30417ae2cac91997a65692473e42
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138060
Reviewed-by: Devon Carew <devoncarew@google.com>
Reviewed-by: Janice Collins <jcollins@google.com>
2020-03-03 16:42:51 +00:00
Paul Berry 6bd202e4d4 Sort declarations in generate_resources.dart
Change-Id: If4222c778226bf20d143991d0fd3ad03a4d6c6a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138040
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
2020-03-03 16:42:51 +00:00
Brian Wilkerson 1c34d8ce57 Add a new command-line flag for server to enable the new relevance computations
Change-Id: If4c9e95a6e5e804fe480cf8a061ff95ec37651e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138002
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-03-02 18:55:32 +00:00
pq 8c06eb107d relevance computer fixes && corpus support
* addresses memory issues
* prints stacktraces
* fixes an unsafe cast and adds a null check

This is ripe for refactoring if you want to tweak how we're clearing inheritanceManager or generally address hygiene.

It's better enough to be useful as is though and if anyone wants to analyze a corpus, they'll want these fixes...



Change-Id: Ic3b623cb3915c26f4ba691e5c2ee979d1e41d51c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137683
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2020-02-27 21:45:14 +00:00
Brian Wilkerson 2d3b8fd0a7 Add completion metrics table of distance by depth
Change-Id: I22d62dada840476f786952c69b4371ed1bc4b080
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137660
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-02-27 21:27:43 +00:00
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