Commit Graph

22783 Commits

Author SHA1 Message Date
Danny Tuppeny 2dbf91ff13 Add support for parsing Maps from the LSP spec
Change-Id: Ieafcacb3ba2f6be8d3232025d22fa5ec94de5352
Reviewed-on: https://dart-review.googlesource.com/c/85768
Commit-Queue: Danny Tuppeny <dantup@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-04 14:27:19 +00:00
Paul Berry 43cd8ba822 Merge commit '4eeebc46cff4e47e6265e86f4774da103d060aa1' into analyzer
Conflicts:
	pkg/analyzer/CHANGELOG.md
	pkg/analyzer/pubspec.yaml
2018-12-03 12:20:40 -08:00
Danny Tuppeny 0a7cf2a513 Allow nulls for union values where the field can be null or undefined
Change-Id: If0fea932c1534e8a6a151e67b16ad78cb14ec98d
Reviewed-on: https://dart-review.googlesource.com/c/85743
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-12-03 16:34:16 +00:00
Danny Tuppeny 179b96e796 Remove unnecessary awaits in LSP tests
Change-Id: I7a3fb27a43593561b4793514909699d2a09e2f88
Reviewed-on: https://dart-review.googlesource.com/c/85744
Auto-Submit: Danny Tuppeny <dantup@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-03 16:32:07 +00:00
Martin Kustermann 2260758ffe [infra] Make --keep-generated-files work with -n option
Makes the --keep-generated-files flag an option for the test.py command
only, not part of a named configuration passed in with the -n flag
and defined in tools/bots/test_matrix.json.

Change-Id: If67c2848cf6fc15e4cb7167ce23eeb3eb9bd1684
Reviewed-on: https://dart-review.googlesource.com/c/85705
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-12-03 15:35:40 +00:00
Paul Berry 7af0ba8dbf Merge commit '4088bb1302cebbb6922e1292037bc60127f1f852' into analyzer 2018-12-03 07:19:08 -08:00
Paul Berry 9a7f42d05a Merge commit 'dc346e6fdd89663388f8ae4e6767d6ece597c278' into analyzer 2018-12-03 06:35:54 -08:00
Paul Berry be529425d2 Prepare for a future breaking change to the UriResolver class.
See https://dart-review.googlesource.com/c/sdk/+/85726 for the
breaking change that is anticipated.

Change-Id: I4ba84a0e70bf5b3c62191c053ba9de7aee71ac93
Reviewed-on: https://dart-review.googlesource.com/c/85728
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-12-03 14:29:30 +00:00
Peter von der Ahé 16cfb6c922 Remove TypeInferrerDisabled
Change-Id: I9ff7f3723c3acb05bc2649cda47b8c516f6523d9
Reviewed-on: https://dart-review.googlesource.com/c/85760
Auto-Submit: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-03 13:32:58 +00:00
Peter von der Ahé f9ee5da8f8 Add BodyBuilder.legacyMode getter
Change-Id: Ica42e03aed4a0789811bd0d654e1ac9f9a8251c8
Reviewed-on: https://dart-review.googlesource.com/c/85712
Auto-Submit: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-03 13:20:27 +00:00
Peter von der Ahé cd6ecf19fa Clone metadata in BodyBuilder instead of type inference
Change-Id: Iaf1344455c45693902d89c866c93395670e56251
Reviewed-on: https://dart-review.googlesource.com/c/85711
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2018-12-03 13:18:08 +00:00
Peter von der Ahé 4088bb1302 Remove prepareTopLevelInference from base builder API
Change-Id: I87fd423c30c184e4775291a0a45176cba618d8e6
Reviewed-on: https://dart-review.googlesource.com/c/85710
Auto-Submit: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-03 12:33:21 +00:00
Peter von der Ahé cc003934fc Use modifiers to store some flags
Change-Id: I1848186917d5538266e4eb5d6a76e07435d2d871
Reviewed-on: https://dart-review.googlesource.com/c/85707
Commit-Queue: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-03 12:27:39 +00:00
Peter von der Ahé 0fe6f76ffb Improve handling of duplicated declarations
Change-Id: Ib13a14908c8c6a1fc8e78c1bf5b031317945a344
Reviewed-on: https://dart-review.googlesource.com/c/85682
Commit-Queue: Peter von der Ahé <ahe@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-12-03 10:11:36 +00:00
Paul Berry 6f5d6db9c2 Cherry-pick analyzer CHANGELOG and pubspec from analyzer-0.33 branch.
Also includes changes to the kernel and front_end pubspecs, since
those packages are tightly coupled to the analyzer.

These changes were made on the analyzer-0.33 branch in preparation for
previous releases of the analyzer.  Merging them to the master branch
makes it easier to keep the pubspec and CHANGELOG files up to date on
that branch.

Change-Id: I08a7bdcd49b6b2396166953131927656eca2c563
Reviewed-on: https://dart-review.googlesource.com/c/85727
Auto-Submit: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-01 17:23:47 +00:00
Paul Berry 5b00611568 Revert "Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request."
This reverts commit 3428cc6dae.

Reason for revert: Unintentional breaking API change

Original change's description:
> Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request.
> 
> This CL changes "analysis.reanalyze" API. We decided to repurpose it. It was not
> used for some time now in IntelliJ, and AFAIK has never been used in VS Code.
> 
> R=​brianwilkerson@google.com, paulberry@google.com
> 
> Change-Id: I7510b0189197c9f3f848b0fc59a7b2bd22889ac7
> Reviewed-on: https://dart-review.googlesource.com/c/85523
> Reviewed-by: Paul Berry <paulberry@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@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: I6a3e874278f4cf976363a0c7f80f7a65a0a03acf
Reviewed-on: https://dart-review.googlesource.com/c/85723
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-11-30 21:03:30 +00:00
Jacob MacDonald f72f07793b Handle null initializer, this is being hit internally when compiling large
projects.

I don't know the exact situation that is being hit here and if something else
is going on, or continuing here is sane. It does appear to work though.

Change-Id: I7cbdf59f954ed80e0a9c71430b5661a335e21d9b
Reviewed-on: https://dart-review.googlesource.com/c/85402
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
2018-11-30 17:07:41 +00:00
Paul Berry 63770042aa Merge commit '80c23f87a3e3123d7e337c1fc8bc3b5ec49b34a0' into analyzer 2018-11-30 08:12:45 -08:00
danrubel 80c23f87a3 Update more analyzer error codes to be generated
This updates more analyzer error codes to be generated
from the corresponding CFE error code.

Several of these analyzer error codes had multiple CFE error
codes mapped to them. In these situations, new analyzer error
codes were added to match the existing CFE error codes:

* EXTERNAL_FACTORY_WITH_BODY
* EXTERNAL_FACTORY_REDIRECTION
* CATCH_SYNTAX_EXTRA_PARAMETERS

Change-Id: Ib1cbb9e04d2092e4859e2cfadbcc85e03093f808
Reviewed-on: https://dart-review.googlesource.com/c/85431
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-11-30 15:00:36 +00:00
Jens Johansen 7f8e6f8bb6 Be more verbose in loops etc in kernel
Benchmarks have shown that old-style for-loops are faster than for-in
for instance.

Golem says

ia32

whole stack (i.e. including utf8 and change to VariableIndexer)

AstToBinaryP90 (Intel Core i5)	6.617% (0.4 noise)
AstToBinary (Intel Xeon)	5.158% (0.4 noise)
AstToBinaryP90 (Intel Xeon)	5.104% (0.4 noise)
AstToBinaryP50 (Intel Xeon)	5.148% (0.4 noise)
AstToBinary (Intel Core i5)	6.579% (0.4 noise)
AstToBinaryP50 (Intel Core i5)	6.741% (0.4 noise)

by itself (i.e. compared to a build with utf8 and change to VariableIndexer)

AstToBinaryP90 (Intel Core i5)	0.7724% (0.0 noise)
AstToBinaryP50 (Intel Core i5)	0.7848% (0.0 noise)
AstToBinary (Intel Core i5)	0.8559% (0.0 noise)
AstToBinaryP90 (Intel Xeon)	0.7730% (0.1 noise)
AstToBinaryP50 (Intel Xeon)	0.8195% (0.1 noise)
AstToBinary (Intel Xeon)	0.9319% (0.1 noise)



x64

whole stack (i.e. including utf8 and change to VariableIndexer)

AstToBinaryP90 (Intel Core i5)	5.555% (0.2 noise)
AstToBinaryP50 (Intel Xeon)	6.352% (0.4 noise)
AstToBinaryP50 (Intel Core i5)	5.395% (0.5 noise)
AstToBinary (Intel Xeon)	6.928% (0.5 noise)
AstToBinaryP90 (Intel Xeon)	7.180% (0.5 noise)
AstToBinary (Intel Core i5)	5.824% (0.5 noise)

by itself  (i.e. compared to a build with utf8 and change to VariableIndexer)

AstToBinaryP90 (Intel Core i5)	0.1039% (0.0 noise)
AstToBinaryP50 (Intel Core i5)	0.6154% (0.0 noise)
AstToBinary (Intel Core i5)	0.7640% (0.1 noise)
AstToBinaryP50 (Intel Xeon)	1.268% (0.1 noise)
AstToBinary (Intel Xeon)	1.457% (0.1 noise)
AstToBinaryP90 (Intel Xeon)	1.512% (0.1 noise)



Change-Id: If091a3a01f2fe6574712946a01644413033739b6
Reviewed-on: https://dart-review.googlesource.com/c/85341
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 13:15:47 +00:00
Jens Johansen 17d322b62a Handle AmbiguousBuilder in computeRedirecteeType
We get an AmbiguousBuilder if there are more than one redirecting
factory with the same name. We shouldn't crash though.

Fixes #35266.

Bug: 35266
Change-Id: I1ac0babdde49c4ca3966e6af5c580191baac0873
Reviewed-on: https://dart-review.googlesource.com/c/85390
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 12:58:07 +00:00
Jens Johansen 5410bc4098 Fix rare crash in type inference engine
Before this CL, running fasta compile on these 3 tests would make it
crash in type inference because the enclosingClass on a constrcutor
is null:

tests/language_2/const_error_multiply_initialized_test.dart
tests/language_2/constructor_duplicate_final_test.dart
tests/language_2/field3_test.dart

Note that these tests are all multi-tests and they are here run
unprocessed. The compiler crashes only after issuing errors.
The crash likely happens because of multiple definitions of
constructors with the same name.

This is a cut-down version that crashed prior to this CL:

```
class C {
  final d;

  C() {}
  C(this.d) {}
}
```

Fixes #35258.

Change-Id: I350c55428932ef0ae76f78875177b08acf95cdfc
Reviewed-on: https://dart-review.googlesource.com/c/85363
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-11-30 12:57:17 +00:00
Jens Johansen 8db293ed70 Lazy VariableIndexer in ast_to_binary.dart
Often a VariableIndexer was initialized with no use.
This CL eliminates that by creating it as needed.

Golem says:

ia32

whole stack (i.e. together with the utf8 stuff)

AstToBinary (Intel Xeon)	4.265% (0.3 noise)
AstToBinaryP50 (Intel Xeon)	4.364% (0.3 noise)
AstToBinaryP90 (Intel Xeon)	4.365% (0.3 noise)
AstToBinaryP90 (Intel Core i5)	5.890% (0.3 noise)
AstToBinary (Intel Core i5)	5.772% (0.3 noise)
AstToBinaryP50 (Intel Core i5)	6.004% (0.4 noise)

by itself (i.e. compared to the one with hte utf8 stuff)

AstToBinary (Intel Xeon)	0.4910% (0.0 noise)
AstToBinaryP50 (Intel Xeon)	0.6186% (0.0 noise)
AstToBinaryP90 (Intel Xeon)	0.6415% (0.0 noise)
AstToBinaryP90 (Intel Core i5)	1.974% (0.1 noise)
AstToBinary (Intel Core i5)	1.854% (0.1 noise)
AstToBinaryP50 (Intel Core i5)	2.072% (0.1 noise)


whole stack (i.e. together with the utf8 stuff)

whole stack

AstToBinaryP90 (Intel Core i5)	5.457% (0.2 noise)
AstToBinaryP50 (Intel Xeon)	5.150% (0.4 noise)
AstToBinary (Intel Xeon)	5.552% (0.4 noise)
AstToBinaryP90 (Intel Xeon)	5.756% (0.4 noise)
AstToBinaryP50 (Intel Core i5)	4.809% (0.4 noise)
AstToBinary (Intel Core i5)	5.099% (0.5 noise)

by itself (i.e. compared to the one with hte utf8 stuff)

AstToBinaryP50 (Intel Core i5)	-0.6758% (-0.1 noise)
AstToBinary (Intel Core i5)	-0.0593% (-0.0 noise)
AstToBinaryP90 (Intel Core i5)	1.292% (0.0 noise)
AstToBinaryP50 (Intel Xeon)	0.6355% (0.0 noise)
AstToBinaryP90 (Intel Xeon)	0.9089% (0.1 noise)
AstToBinary (Intel Xeon)	0.9836% (0.1 noise)

Change-Id: Ia9a86958f9a9280c6ee40695fe3020debb8312a5
Reviewed-on: https://dart-review.googlesource.com/c/85340
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 12:39:27 +00:00
Aske Simon Christensen c45abca648 Get rid of double colons in override error messages.
Change-Id: Ice49347ab20fcf02971abe724b7233ca5fdf03e5
Reviewed-on: https://dart-review.googlesource.com/c/85582
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-11-30 11:36:23 +00:00
Aske Simon Christensen 8ab76a521a Use new type printer for bound errors on method calls.
Change-Id: I3b098a1fd1d52718e19c37816dd1a19680bdf0f6
Reviewed-on: https://dart-review.googlesource.com/c/85581
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-11-30 11:36:23 +00:00
Jens Johansen e520f2480a Do UTF8 encoding slightly differently when serializing kernel
Instead of creating two small-ish utf8lists for every string we encode,
do fewer bigger allocations and convert to utf8 via a (new) method that
will hopefully eventually be moved into String.

Golem says:

ia32

AstToBinaryP90 (Intel Core i5)	3.995% (0.2 noise)
AstToBinary (Intel Core i5)	3.992% (0.2 noise)
AstToBinaryP50 (Intel Core i5)	4.015% (0.2 noise)
AstToBinary (Intel Xeon)	3.793% (0.3 noise)
AstToBinaryP90 (Intel Xeon)	3.748% (0.3 noise)
AstToBinaryP50 (Intel Xeon)	3.769% (0.3 noise)


x64


AstToBinaryP90 (Intel Core i5)	4.220% (0.1 noise)
AstToBinaryP50 (Intel Xeon)	4.543% (0.3 noise)
AstToBinary (Intel Xeon)	4.614% (0.3 noise)
AstToBinaryP90 (Intel Xeon)	4.891% (0.3 noise)
AstToBinaryP50 (Intel Core i5)	5.448% (0.5 noise)
AstToBinary (Intel Core i5)	5.155% (0.5 noise)

Change-Id: I0532778d69205a7a187342d3bdfe503c660b1004
Reviewed-on: https://dart-review.googlesource.com/c/84413
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 11:27:03 +00:00
Aske Simon Christensen 3a52e7bc31 Avoid copying result arrays for nested types in type labeler.
Change-Id: Iab38c942d00c0c5d530b12e3c320cee39daeab5c
Reviewed-on: https://dart-review.googlesource.com/c/85583
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2018-11-30 10:45:23 +00:00
Jens Johansen ad62f21e5b Fix crash with multiple same-named redirecting constructors
Without this CL we end up putting a null-reference in the tree because
the parent is never set on the redirecting constructor we try pointing
to.

Fixes #35259, #35260.

Change-Id: I8ad520453742ff1de8dd9ca5e619f9edbff9971c
Reviewed-on: https://dart-review.googlesource.com/c/85384
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 08:53:10 +00:00
Johnni Winther 0a2ed86935 Infer general flow through && and ||
Closes #34993

Change-Id: Ifb849e4525ba9e5518932b8fba2ae556fb49acb3
Reviewed-on: https://dart-review.googlesource.com/c/85502
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-11-30 08:32:11 +00:00
Jens Johansen c2bd36e94d Add --omit_platform as option to fasta.
Change-Id: I9f8b7b89a0440bbff8b466ed2e4f2af73c72c023
Reviewed-on: https://dart-review.googlesource.com/c/84428
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-30 07:48:15 +00:00
pq 45bf7e9906 validate deprecated lints
Change-Id: I83d3dcd2d22d1b5fd4ef8b1af6f06288eb9cd917
Reviewed-on: https://dart-review.googlesource.com/c/85648
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2018-11-30 00:07:20 +00:00
Kevin Moore 17a7f513c3 Fix up pubspec for pkg:compiler
Removed unused dependencies
Correctly reference repo packages via dependency_overrides
Fix pubspecs for pkg: js_ast, js_runtime, sdk_library_metadata

Change-Id: I2077814f733c299dca7afe3f5ab4b380c2c886e4
Reviewed-on: https://dart-review.googlesource.com/c/85660
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-11-29 23:33:39 +00:00
Kevin Moore 440f190a34 Cleanup CompilerTask
make a number of fields private

Change-Id: Ib44aa3459e5d286004de7cb08e07039dc115894a
Reviewed-on: https://dart-review.googlesource.com/c/85645
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
2018-11-29 22:43:09 +00:00
Paul Berry 1d14b8a94e Prepare to publish analyzer 0.34.0.
Change-Id: I66fe8810655b6ae2089e70d50af327909fecd5e1
Reviewed-on: https://dart-review.googlesource.com/c/85418
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
2018-11-29 22:13:08 +00:00
Konstantin Shcheglov eb1153c546 Fix for override completion contributions for abstract void methods and setters.
R=brianwilkerson@google.com

Change-Id: Ie505e4640095dac1f9a566a32bf9aa9f0a5926e9
Reviewed-on: https://dart-review.googlesource.com/c/85622
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-29 19:48:51 +00:00
Paul Berry 73621c71b7 Cherry-pick CHANGELOG from analyzer-0.33 branch.
This CHANGELOG entry was made on the analyzer-0.33 branch.
Cherry-picking it over to the analyzer branch ensures that future
analyzer releases based on this branch won't be missing any changelog
entries.

Change-Id: Idb49c6aa2d8ad48e1b7c4bca54cefac2ea62ca46
Reviewed-on: https://dart-review.googlesource.com/c/85621
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-29 19:25:31 +00:00
Brian Wilkerson ec5b4bad99 Fix false positive for sdk constraints (issue 35290)
Change-Id: I64164cb97b88dcc0431237cf3a45831fb668c2c5
Reviewed-on: https://dart-review.googlesource.com/c/85620
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-11-29 19:12:50 +00:00
Konstantin Shcheglov 3428cc6dae Add AnalysisDriver.resetUriResolution() and use it for analysis.reanalyze request.
This CL changes "analysis.reanalyze" API. We decided to repurpose it. It was not
used for some time now in IntelliJ, and AFAIK has never been used in VS Code.

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

Change-Id: I7510b0189197c9f3f848b0fc59a7b2bd22889ac7
Reviewed-on: https://dart-review.googlesource.com/c/85523
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-11-29 19:08:30 +00:00
Sigmund Cherem d9c6bc0316 Improvements to verbose timing data printing.
- format is padded and includes  %
- measure explicitly subtasks of deferred load
- use shorter names for other tasks


Sample output on swarm:

Info: Timings:
    kernel loader:                                 1.407s (17.1%)
    Front end:                                     0.736s  (8.9%)
    Front end > closures:                          0.102s  (1.2%)
    Front end > worldImpact:                       0.586s  (7.1%)
    Type inference:                                1.143s (13.9%)
    Deferred Loading:                              0.002s  (0.0%)
    Deferred Loading > prepare:                    0.002s  (0.0%)
    Enqueue:                                       0.455s  (5.5%)
    self:                                          0.914s (11.1%)
   *self > impl.run:                               0.034s  (0.4%)
    self > run:                                    0.206s  (2.5%)
    self > compileFromKernel:                      0.012s  (0.1%)
    self > computeClosedWorld:                     0.364s  (4.4%)
    self > processQueue:                           0.033s  (0.4%)
    self > emptyQueue:                             0.040s  (0.5%)
    self > applyImpact:                            0.146s  (1.8%)
    self > work.run:                               0.076s  (0.9%)
    SSA builder:                                   1.002s (12.2%)
    SSA optimizer:                                 1.302s (15.8%)
    SSA optimizer > SsaInstructionSimplifier:      0.421s  (5.1%)
    SSA optimizer > SsaTypeconversionInserter:     0.036s  (0.4%)
    SSA optimizer > SsaRedundantPhiEliminator:     0.012s  (0.1%)
    SSA optimizer > SsaDeadPhiEliminator:          0.010s  (0.1%)
    SSA optimizer > SsaTypePropagator:             0.261s  (3.2%)
    SSA optimizer > SsaCheckInserter:              0.030s  (0.4%)
    SSA optimizer > SsaDeadCodeEliminator:         0.067s  (0.8%)
    SSA optimizer > SsaGlobalValueNumberer:        0.071s  (0.9%)
    SSA optimizer > SsaCodeMotion:                 0.024s  (0.3%)
    SSA optimizer > SsaLoadElimination:            0.083s  (1.0%)
    SSA optimizer > SSA value range builder:       0.099s  (1.2%)
    SSA optimizer > SsaSimplifyInterceptors:       0.048s  (0.6%)
    SSA code generator:                            0.623s  (7.6%)
    Code emitter:                                  0.586s  (7.1%)
    Diagnostic handler:                            0.001s  (0.0%)
Change-Id: I4af3ff04954b28ee12354bc79eae517169a3b96e
Reviewed-on: https://dart-review.googlesource.com/c/85550
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-29 18:09:20 +00:00
Paul Berry b72ca19f33 Merge commit 'c9aaa7a654b1cac1307c854ba38f4dc995c86f09' into analyzer 2018-11-29 09:43:36 -08:00
Paul Berry 706776a14d Merge commit '80c4d3e3c70ba8d0dfcc3fd038f29a388652cf3b' into analyzer 2018-11-29 09:29:09 -08:00
Paul Berry c7dea39faa Fix analyzer CHANGELOG.
The changelog entry for analyzer version 0.33.5 actually won't be
released until analyzer 0.33.6.

Change-Id: Iab4f2924ef9c8f43b5e81f9cf3ab316f7fc96918
Reviewed-on: https://dart-review.googlesource.com/c/85549
Auto-Submit: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-11-29 17:26:57 +00:00
Danny Tuppeny a354fd99a8 Add LSP support for flat symbol lists for older clients
Change-Id: Id74b34ea295a6733b374a820c6d596a11070f666
Reviewed-on: https://dart-review.googlesource.com/c/85561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-11-29 16:37:38 +00:00
Aske Simon Christensen c9aaa7a654 Re-formulation of type bound violation error messages
Change-Id: I7f0b99c184b02f6910da054b877b5b5bee86f6bc
Reviewed-on: https://dart-review.googlesource.com/c/85346
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen 03a1fe30f5 De-duplicate some bound check code.
Change-Id: I75cb1b31f8b47525ee18c8d01a3fe534512ad579
Reviewed-on: https://dart-review.googlesource.com/c/85293
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen 4427bb70bc Get rid of double colon notation for class members in messages.
Type variable bound violations on constructor/factory invocations
now mention just the class name (which is the one that has the type
variables) instead of the constructor/factory name.

Change-Id: I65330f1921451fef0157be01b4a5086855d80439
Reviewed-on: https://dart-review.googlesource.com/c/85291
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen 820af6ba9e Test of type variable bound printing
Tests that bounds are printed when printing a generic function type,
and that the printer correctly distinguishes between no specified bound
(no bound printed) and explicit Object bound (Object printed as bound).

Change-Id: I747743d902a9eaf66cf65c579051175216960c63
Reviewed-on: https://dart-review.googlesource.com/c/84606
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen c959bd98af Print origins of types in bullet points below error messages.
This gets rid of the useless '#lib1::' prefixes on types in error
messages and instead adds a line to the error message for each
interface type appearing in the message stating where that type
originates.

Name clashes are disambiguated by appending markers like '/*1*/' and
'/*2*/' to the types whenever two interface types with the same name
appear in the same message.

The commonly used core types 'bool', 'num', 'int', 'double', 'String'
and 'Null' are excluded from the origin list unless they take part in a
name clash.

Change-Id: I017ea376d4f6ff2d4f3b36487774463f03bb3301
Reviewed-on: https://dart-review.googlesource.com/c/84604
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen 5198e49ffd Use new type labeler API in message generation.
For now, it uses a dummy implementation that retains the old behavior.

Change-Id: Iab358b73af470b99d5bd0ed59028d96d26bae47f
Reviewed-on: https://dart-review.googlesource.com/c/84603
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-29 13:27:16 +00:00
Aske Simon Christensen aed186ad10 New printer for types and constants
Adds labels to ambiguous types and generates a bullet list of the
origins of all raw types contained in printed types.

Change-Id: I9b8a46aa8b1f463c6cd02b9df042075fc1c46404
Reviewed-on: https://dart-review.googlesource.com/c/84602
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-11-29 13:27:16 +00:00