Konstantin Shcheglov
4af81e2a5b
Issue 45459. Report EXPERIMENT_NOT_ENABLED instead of INVALID_GENERIC_FUNCTION_TYPE when nonfunction_type_aliases is not enabled.
...
Bug: https://github.com/dart-lang/sdk/issues/45459
Change-Id: I0773f15e4697620427f4449622a592e40b5a5de4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-25 21:43:04 +00:00
Jens Johansen
ac9b4aab8d
[parser] More specific error messages when recovering new/const/Map/Set/List with said literals
...
Follow-up to https://dart-review.googlesource.com/c/sdk/+/190022
Change-Id: Id42336216267dcbf481ae6e111177e6296ea6779
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190881
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2021-03-25 13:27:03 +00:00
Sam Rawlins
97cd131c9a
analyzer: Introduce cannot-ignore analysis option.
...
Fixes https://github.com/dart-lang/sdk/issues/45404 , which describes the option
in detail.
This removes all unfortunate exceptions for dart2js test code and for flutter
code. This removes the lateness of one final field.
Fixes https://github.com/dart-lang/sdk/issues/44237
Fixes https://github.com/dart-lang/sdk/issues/42977
Fixes https://github.com/dart-lang/sdk/issues/45230
Related to https://github.com/flutter/flutter/issues/52899
Change-Id: I054f487fafe2742ae57da1d2ccd2d52dce4188bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192560
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-03-24 13:32:49 +00:00
pq
706758a142
linter 1.2.1
...
Change-Id: I4d2ccc0bcc4128d60d76ea5119594d946fec35c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192483
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Phil Quitslund <pquitslund@google.com >
2021-03-23 15:01:16 +00:00
Jens Johansen
31acdc9d92
[parser] Recovery of of new/const/Map/Set/List with said literals
...
E.g. recover `Map<int, int>{}` by ignoring the map (i.e. it's
just a literal map), recover `new {}` as just `{}` etc.
Fixes #45251 .
Change-Id: I44e67ca6d3b9b068014b8e28822a61063c794d57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190022
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2021-03-12 10:41:06 +00:00
Konstantin Shcheglov
54b2948461
Replace TypeAnnotation.type with null check with 'typeOrThrow'.
...
Change-Id: I16922aef63d294448436c93004386ee8a3439e31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190724
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-11 19:41:10 +00:00
Konstantin Shcheglov
f7dc2d29de
Issue 45195. Report MIXIN_INHERITS_FROM_NOT_OBJECT for class aliases.
...
Bug: https://github.com/dart-lang/sdk/issues/45195
Change-Id: I4b1e60a672b49c3c9fda92b3eac59c256eea13da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-08 20:48:43 +00:00
Konstantin Shcheglov
19e0673582
Revert "Return List<XyzElementImpl> from ElementImpl getters."
...
This reverts commit 645035bbb9 .
Reason for revert: b/182098851
Original change's description:
> Return List<XyzElementImpl> from ElementImpl getters.
>
> Change-Id: Ice8a0feb6a0bd2599fcfd5ccc35c0b4242ed9530
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189620
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Change-Id: I33eff159d62813c35e7e00eee5b7d9dd4fb4e563
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189781
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-08 19:09:44 +00:00
Konstantin Shcheglov
645035bbb9
Return List<XyzElementImpl> from ElementImpl getters.
...
Change-Id: Ice8a0feb6a0bd2599fcfd5ccc35c0b4242ed9530
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-08 07:00:40 +00:00
Konstantin Shcheglov
75308fc26b
Return Impl nodes from AstFactoryImpl and AstTestFactory.
...
Change-Id: I5d3f6eb8d07145079560c6f8820aa15e2f8183a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-03-07 23:24:10 +00:00
Konstantin Shcheglov
0506b1b2d3
Deprecate setters in API of AST.
...
Change-Id: Ib2ec164ef87b3a5a4bf028d592552e37451abd35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189520
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-03-07 21:48:50 +00:00
Sam Rawlins
f32575e43a
analyzer: stop mixing WithNullSafety into tests extending PubPackageResolutionTest
...
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I01aa8a5908b8a2f195859c4c9fd99e3127249e29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2021-02-24 17:41:44 +00:00
Sam Rawlins
b485114c32
analyzer: update two test classes to use null safety
...
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I7db26be235d3911b6c88b199df874da1ee2d552e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186760
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-24 02:41:57 +00:00
Sam Rawlins
e05ad3ae9d
Migrate NonErrorResolverTest to null safety
...
In order to do this, I split the test into two:
* many test cases were concerned with type promotion
which only seemed to pertain to pre-null safe code.
* some code could not be made valid in both null safe
and pre-null safe environments.
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I818a39f2e3eb3cae17de18b008d9e4c7b8ff84c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184844
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2021-02-13 03:40:48 +00:00
Sam Rawlins
89f563c4d3
analyzer: add triple-shift experiment to all tests
...
Change-Id: I560f82b239d78b748f6e2298a291d71cd2c831a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184840
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-12 21:17:54 +00:00
Sam Rawlins
337bba0ee9
Analyzer: add triple-shift constant test
...
Bug: https://github.com/dart-lang/sdk/issues/44908
Change-Id: If510a9aa36fa028e8f91d3cc9dd161282d2db383
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184701
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2021-02-12 17:45:36 +00:00
Konstantin Shcheglov
f6a6e57689
Issue 44223. Improve diagnostics for type arguments violating type parameter bounds.
...
Bug: https://github.com/dart-lang/sdk/issues/44223
Change-Id: Ia3ffddbc7d2a1be8455f642c5799d21051eefb1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184524
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-12 17:37:53 +00:00
Konstantin Shcheglov
875af7c991
Deprecated TypeProvider.futureType2/listType2/etc
...
Change-Id: Ia994be1e29b4d96b89d714beafcb9256a0cb4de6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184641
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-12 17:26:07 +00:00
Konstantin Shcheglov
3d8d4b4c2b
FunctionExpression always has a body, at least EmptyFunctionBody.
...
Change-Id: I0d09df2571436f30a7706e657a98056a021e25e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184342
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-11 18:00:11 +00:00
Sam Rawlins
af0120803e
analyzer: Remove unnecessary imports
...
Change-Id: Iea88852d6592e14007e9853aa2d568a772678e1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184282
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2021-02-10 21:37:45 +00:00
Konstantin Shcheglov
8120c43d85
Replace 'Expression.staticType!' with 'typeOrThrow'.
...
It is not a huge improvement, because it does not add static safety,
for this we would need to distinguish between unresolved and resolved
expressions, as separate types.
But it is still an improvement.
1. We get to know the node that was not resolved.
Maybe not enough, in case if it was because of the enclosing
now that this node was not resolved. But still something.
2. We group this use case into one place.
Change-Id: I2e8f029e8a5fcd8ccecdd1b6bc9d78ee9eaf12a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184103
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-10 17:19:27 +00:00
Konstantin Shcheglov
b4409ea3b4
Deprecate FunctionType.element/typeArguments
...
Bug: https://github.com/dart-lang/sdk/issues/44629
Change-Id: I5009a1abd456f33738d3b5e2ecae24b269b20000
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182700
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-10 17:17:58 +00:00
Konstantin Shcheglov
4765ef5037
Remove 'actualUri' from UriResolver.resolveAbsolute()
...
Change-Id: I87edfa780e891a5e1ecdd1a9a548509e4cfa641a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-09 22:17:08 +00:00
Sam Rawlins
82bcd13476
Change PubPackageResolutionTest to use null safety.
...
Some tests had some issues migrating to null safety that I
could not immediately hash out, or may warrant some more discussion.
So I've added WithoutNullSafetyMixin, and we can incrementally
migrate these after this CL.
Many tests have little no-op tweaks to make them null safe, like
initializing variables, adding late, making nullable.
Nest steps:
1. Remove `WithNullSafetyMixin` applications.
2. Remove `WithoutNullSafetyMixin` in every position with a TODO for
#44666 .
3. For every file with pair(s) of test classes (one pre-null safety,
and one null safety), move around test cases so that they generally
run with null safety, unless they are testing things very specific to
before and after null safety.
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I0512dedcda42e864fd580af4842702095937bdb6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183140
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-08 23:06:04 +00:00
Sam Rawlins
8432b379e7
Analyzer: Prepare tests for null safety.
...
Tests that include, for example, a field `int a;` need to be migrated to
something which is both legal in pre-null safety, and in null safety. So no `?`
etc,. Additionally:
* parameters to `main` must be correct,
* new flow analysis may change inference,
* avoid `List()`
Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I77b7c3a6f391953c74824153012c1a537f8bebe0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183520
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-07 19:45:56 +00:00
Paul Berry
d5fc9fb06f
Unit test generic annotation functionality of AstCloner.
...
The update to AstCloner was made as part of
ba5064fa31 , but it couldn't be unit
tested until now due to the lack of parser support.
Bug: https://github.com/dart-lang/sdk/issues/44838
Change-Id: If2fd5ce41a46c3460b5f90ba854f22ae1baef11c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182840
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2021-02-05 22:43:08 +00:00
Paul Berry
c14fd57acc
Update AstBuilder to handle generic annotations.
...
Bug: https://github.com/dart-lang/sdk/issues/44838
Change-Id: If69cbbc13a087f0f6280da0bc7f9dbca1d3ec0ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2021-02-05 20:57:18 +00:00
Paul Berry
ba5064fa31
Analyzer AST changes for generic metadata
...
Bug: https://github.com/dart-lang/sdk/issues/44838
Change-Id: I55b8dacc571570568c1b3f101a1a4e1f517f7f6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182581
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-02-04 09:45:47 +00:00
Jens Johansen
1392263ecc
[parser] Non-crashing recovery of in-progress generification of typedef
...
Fixes #43090
Change-Id: I1377ebf08a8c561e4f15abbf458c5bb0d8c61494
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182040
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2021-02-04 08:01:07 +00:00
Konstantin Shcheglov
4c6f5f7658
Remove NullSafetyUnderstandingFlag.
...
Bug: https://github.com/dart-lang/sdk/issues/40531
Change-Id: I197cfdf64c697a09bb9e0e3896f3ee5ac1967757
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/168160
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-02-02 18:03:24 +00:00
Sam Rawlins
237c84249b
Remove unnecessary imports in analyzer
...
Change-Id: Ifb9a5c0a31cf3669febf2981b1d26b84f5b9d237
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180781
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2021-02-02 14:40:24 +00:00
Konstantin Shcheglov
9f986d2501
Migrate package:analyzer to null safety.
...
Change-Id: Iffe4370431587e46a141ddc72a86ceec29c163b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176486
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
2021-02-01 18:56:04 +00:00
Jens Johansen
16a66c8902
[parser] Don't crash, try to recover from written out logical operators and and or
...
Fixes #44785
Change-Id: I4c7198ea1c223900a58039c032ee303d7da2c14f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181580
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2021-02-01 09:30:48 +00:00
Konstantin Shcheglov
cea28f1ac5
Support for AwaitExpression in binary summary format.
...
Bug: https://github.com/dart-lang/sdk/issues/44699
Change-Id: I174e015ff8378fafc1c528198df2157532cf393a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180460
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-01-21 23:15:16 +00:00
Sam Rawlins
cddd44e1e9
analyzer: Add separate code for concrete implementation override check
...
Erik wrote a great explanation for this check here:
https://github.com/dart-lang/sdk/issues/37993#issuecomment-757976910
Fixes https://github.com/dart-lang/sdk/issues/37993
Change-Id: I6fb0bd530fac495115314838ec0bb2168d5e9ad7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180088
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2021-01-20 21:27:43 +00:00
Konstantin Shcheglov
b4f4de776a
Update super-bounded types for null safety.
...
https://github.com/dart-lang/language/pull/1133/files
Change-Id: I633b328bb62780e09fb58535a83f7f35af161c25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180020
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-01-19 20:31:03 +00:00
Konstantin Shcheglov
5e66c2b1a1
Support for ForPartsWithExpression in binary format.
...
Change-Id: I69b47c6f21a2923731c91ba4d5edf8394b96408f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-01-16 19:29:43 +00:00
Konstantin Shcheglov
56903e6cfb
Replace findElementInUnit(), findLocalFunction(), and findLocalVariable() with FindElement.
...
Change-Id: I508b63fee81dc087489055448debb495a06eff6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179361
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2021-01-14 23:15:25 +00:00
Konstantin Shcheglov
4bef6607e7
Fill and use DartType.aliasElement/aliasArguments
...
Change-Id: I71a3b7efbbe8578c47a832cb85aab6177156531f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/178460
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2021-01-12 22:50:44 +00:00
Jens Johansen
f7052cfbbc
[parser] Better handling of eof when parsing 'Stream<List<>>'
...
This CL avoids the infinite loop created by allowing the parser
to parse it as a complex type (despite no actual name after it) and
adds a few asserts in an attempt to catch rewriting on eof (setting a
token after eof).
Fixes #42229
Fixes #44477
Change-Id: Ie2da0957894067a3d4748cb6384bc9d6cf32c215
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150521
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2021-01-11 09:55:06 +00:00
Sam Rawlins
cad324cf79
Analyzer: Extract all parser tests to individual files
...
Change-Id: Ia3f85355186e25d4cc38fcb15ed3770a1db5805c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176360
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-12-15 22:57:21 +00:00
Konstantin Shcheglov
c11039702c
Replace FindElement.functionTypeAlias() with typeAlias().
...
Change-Id: I88a5b889310df8a39b54318907ba8bbd68b26b9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176183
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-12-15 07:13:41 +00:00
Sam Rawlins
13f9993511
Analyzer: Extract parser test base classes, helpers
...
Each of the *_Fasta test cases has a lot of test cases from the
corresponding *Mixin mixin. I started to combine _all_ of these
in parser_test.dart, but the file became too long; the formatter
was freezing IntelliJ.
So I've extracted out the non-test classes into parser_test_base.dart.
I'd like to extract each test class into its own file. For now, I
reduce half a dozen *_Fasta/*Mixin pairs into individual test classes.
Change-Id: I8dd7f28a6fe23e31f956cdb2f1d221669db376dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176064
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-12-15 03:57:59 +00:00
Paul Berry
5780cacbdb
Don't pass null to fasta.Parser.
...
Fixes null safety errors arising from the migration of _fe_analyzer_shared.
Change-Id: I7da6b7f2d7c23d5d8f6ed120e03aed754aff5b82
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176061
Commit-Queue: Paul Berry <paulberry@google.com >
Commit-Queue: Ivan Inozemtsev <iinozemtsev@google.com >
Auto-Submit: Paul Berry <paulberry@google.com >
Reviewed-by: Ivan Inozemtsev <iinozemtsev@google.com >
2020-12-14 15:55:39 +00:00
Konstantin Shcheglov
72b0d2a297
Terminate null shorting for FunctionExpressionInvocation.
...
FAILURE: (:s=0?.1(I
['package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart': Failed assertion: line 2785 pos 12: '_stack.isEmpty': is not true.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2 _FlowAnalysisImpl.finish (package:_fe_analyzer_shared/src/flow_analysis/flow_analysis.dart:2785:12)
#3 FlowAnalysisHelper.topLevelDeclaration_exit (package:analyzer/src/dart/resolver/flow_analysis_visitor.dart:224:10)
#4 AstResolver.resolve (package:analyzer/src/summary2/ast_resolver.dart:88:21)
#5 _VariableInferenceNode._resolveInitializer (package:analyzer/src/summary2/top_level_inference.dart:466:17)
#6 _VariableInferenceNode.computeDependencies (package:analyzer/src/summary2/top_level_inference.dart:393:5)
#7 Node.getDependencies (package:analyzer/src/summary/link.dart:148:40)
#8 DependencyWalker.walk.strongConnect (package:analyzer/src/summary/link.dart:53:40)
#9 DependencyWalker.walk (package:analyzer/src/summary/link.dart:119:18)
#10 _InferenceWalker.walkNodes (package:analyzer/src/summary2/top_level_inference.dart:254:9)
#11 _InitializerInference.perform (package:analyzer/src/summary2/top_level_inference.dart:287:13)
#12 TopLevelInference.infer (package:analyzer/src/summary2/top_level_inference.dart:111:26)
#13 Linker._performTopLevelInference (package:analyzer/src/summary2/link.dart:183:29)
#14 Linker._buildOutlines (package:analyzer/src/summary2/link.dart:93:5)
#15 Linker.link (package:analyzer/src/summary2/link.dart:76:5)
#16 link (package:analyzer/src/summary2/link.dart:33:10)
#17 LibraryContext.load2.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:227:24)
#18 LibraryContext.load2.<anonymous closure> (package:analyzer/src/dart/analysis/library_context.dart:258:17)
#19 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#20 LibraryContext.load2 (package:analyzer/src/dart/analysis/library_context.dart:256:12)
#21 new LibraryContext (package:analyzer/src/dart/analysis/library_context.dart:78:5)
#22 AnalysisDriver._createLibraryContext.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1538:27)
#23 _rootRun (dart:async/zone.dart:1186:13)
#24 _CustomZone.run (dart:async/zone.dart:1090:19)
#25 _runZoned (dart:async/zone.dart:1626:10)
#26 runZoned (dart:async/zone.dart:1546:10)
#27 NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#28 AnalysisDriver._createLibraryContext (package:analyzer/src/dart/analysis/driver.dart:1536:33)
#29 AnalysisDriver._computeResolvedLibrary2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1402:28)
Change-Id: I6b91c6bd89d6e0430a36ded992d8dca82bfedbff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175961
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-12-14 08:56:08 +00:00
Konstantin Shcheglov
57fa20a8a5
Fix crash for no flow in annotation.
...
FAILURE: class=class<@((){x:
[NoSuchMethodError: The method 'labeledStatement_begin' was called on null.
Receiver: null
Tried calling: labeledStatement_begin(Instance of 'LabeledStatementImpl'), #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 FlowAnalysisHelper.labeledStatement_enter (package:analyzer/src/dart/resolver/flow_analysis_visitor.dart:196:10)
#2 ResolverVisitor.visitLabeledStatement (package:analyzer/src/generated/resolver.dart:1636:20)
#3 LabeledStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:6520:49)
#4 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#5 BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1087:17)
#6 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#7 UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:3143:31)
#8 ScopedVisitor.visitBlock.<anonymous closure> (package:analyzer/src/generated/resolver.dart:2473:13)
#9 ScopedVisitor._withDeclaredLocals (package:analyzer/src/generated/resolver.dart:3067:8)
#10 ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:2472:5)
#11 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#12 BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1042:13)
#13 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#14 UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:3146:55)
#15 ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:2482:13)
#16 ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:957:13)
#17 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#18 FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5010:12)
#19 FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#20 ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1460:37)
#21 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#22 ResolverVisitor.visitArgumentList (package:analyzer/src/generated/resolver.dart:887:20)
#23 ArgumentListImpl.accept (package:analyzer/src/dart/ast/ast.dart:355:49)
#24 AnnotationResolver.resolve (package:analyzer/src/dart/resolver/annotation_resolver.dart:35:21)
#25 ResolverVisitor.visitAnnotation (package:analyzer/src/generated/resolver.dart:823:30)
#26 AnnotationImpl.accept (package:analyzer/src/dart/ast/ast.dart:280:49)
#27 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#28 AnnotatedNodeImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:148:17)
#29 TypeParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10298:11)
#30 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#31 UnifyingAstVisitor.visitTypeParameter (package:analyzer/dart/ast/visitor.dart:3475:47)
#32 TypeParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:10294:49)
#33 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#34 TypeParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:10346:21)
#35 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1749:10)
#36 UnifyingAstVisitor.visitTypeParameterList (package:analyzer/dart/ast/visitor.dart:3478:55)
#37 TypeParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:10342:49)
#38 ScopedVisitor.visitClassDeclarationInScope (package:analyzer/src/generated/resolver.dart:2533:26)
#39 ScopedVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:2521:7)
#40 ResolverVisitor.visitClassDeclaration (package:analyzer/src/generated/resolver.dart:1015:13)
#41 ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1536:49)
#42 ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1091:23)
#43 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#44 LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)
#45 LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:139:7)
Change-Id: I13a10d2c127528aa9166e82a5ae535ddbbb8a022
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175943
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-12-14 05:58:23 +00:00
Konstantin Shcheglov
b21913b0a3
Fix for NPE when no flow for 'if' statement.
...
FAILURE: typedef:(:<>(s{if
[NoSuchMethodError: The method 'ifStatement_thenBegin' was called on null.
Receiver: null
Tried calling: ifStatement_thenBegin(Instance of 'SimpleIdentifierImpl'), #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 ResolverVisitor.visitIfStatement (package:analyzer/src/generated/resolver.dart:1556:26)
#2 IfStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:5705:49)
#3 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#4 BlockImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1087:17)
#5 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#6 UnifyingAstVisitor.visitBlock (package:analyzer/dart/ast/visitor.dart:3143:31)
#7 ScopedVisitor.visitBlock.<anonymous closure> (package:analyzer/src/generated/resolver.dart:2467:13)
#8 ScopedVisitor._withDeclaredLocals (package:analyzer/src/generated/resolver.dart:3061:8)
#9 ScopedVisitor.visitBlock (package:analyzer/src/generated/resolver.dart:2466:5)
#10 BlockImpl.accept (package:analyzer/src/dart/ast/ast.dart:1083:49)
#11 BlockFunctionBodyImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1042:13)
#12 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#13 UnifyingAstVisitor.visitBlockFunctionBody (package:analyzer/dart/ast/visitor.dart:3146:55)
#14 ScopedVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:2476:13)
#15 ResolverVisitor.visitBlockFunctionBody (package:analyzer/src/generated/resolver.dart:954:13)
#16 BlockFunctionBodyImpl.accept (package:analyzer/src/dart/ast/ast.dart:1038:49)
#17 FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5010:12)
#18 FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#19 ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1457:37)
#20 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#21 DefaultFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3008:20)
#22 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#23 UnifyingAstVisitor.visitDefaultFormalParameter (package:analyzer/dart/ast/visitor.dart:3198:65)
#24 ResolverVisitor.visitDefaultFormalParameter (package:analyzer/src/generated/resolver.dart:1239:11)
#25 DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3003:15)
#26 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#27 FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4493:17)
#28 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#29 UnifyingAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:3258:59)
#30 ScopedVisitor.visitFormalParameterList (package:analyzer/src/generated/resolver.dart:2717:11)
#31 FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4489:49)
#32 FunctionTypeAliasImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5166:18)
#33 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1743:10)
#34 UnifyingAstVisitor.visitFunctionTypeAlias (package:analyzer/dart/ast/visitor.dart:3285:55)
#35 ScopedVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:2819:11)
#36 ResolverVisitor.visitFunctionTypeAliasInScope (package:analyzer/src/generated/resolver.dart:1490:11)
#37 ScopedVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:2812:7)
#38 ResolverVisitor.visitFunctionTypeAlias (package:analyzer/src/generated/resolver.dart:1482:13)
#39 FunctionTypeAliasImpl.accept (package:analyzer/src/dart/ast/ast.dart:5158:49)
#40 ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1088:23)
#41 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#42 LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)
R=brianwilkerson@google.com
Change-Id: I72bf7219d55d0bf53beae11f977f8fb840dd8e2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175908
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-12-12 18:19:41 +00:00
Konstantin Shcheglov
3c2e851780
Fix for crash when function expression has empty body.
...
FAILURE: _(:<>(o;?(a(@([
[NoSuchMethodError: The getter 'contextType' was called on null.
Receiver: null
Tried calling: contextType, #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:72:35)
#2 ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1424:37)
#3 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#4 ResolverVisitor.visitConditionalExpression (package:analyzer/src/generated/resolver.dart:1068:16)
#5 ConditionalExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:2265:15)
#6 DefaultFormalParameterImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:3008:20)
#7 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#8 UnifyingAstVisitor.visitDefaultFormalParameter (package:analyzer/dart/ast/visitor.dart:3198:65)
#9 ResolverVisitor.visitDefaultFormalParameter (package:analyzer/src/generated/resolver.dart:1206:11)
#10 DefaultFormalParameterImpl.accept (package:analyzer/src/dart/ast/ast.dart:3003:15)
#11 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#12 FormalParameterListImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4493:17)
#13 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#14 UnifyingAstVisitor.visitFormalParameterList (package:analyzer/dart/ast/visitor.dart:3258:59)
#15 ScopedVisitor.visitFormalParameterList (package:analyzer/src/generated/resolver.dart:2684:11)
#16 FormalParameterListImpl.accept (package:analyzer/src/dart/ast/ast.dart:4489:49)
#17 FunctionExpressionImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:5009:18)
#18 FunctionExpressionResolver.resolve (package:analyzer/src/dart/resolver/function_expression_resolver.dart:65:10)
#19 ResolverVisitor.visitFunctionExpression (package:analyzer/src/generated/resolver.dart:1415:35)
#20 FunctionExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:5004:49)
#21 FunctionDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:4873:26)
#22 ResolverVisitor.visitNode (package:analyzer/src/generated/resolver.dart:1710:10)
#23 UnifyingAstVisitor.visitFunctionDeclaration (package:analyzer/dart/ast/visitor.dart:3271:59)
#24 ScopedVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:2749:11)
#25 ResolverVisitor.visitFunctionDeclarationInScope (package:analyzer/src/generated/resolver.dart:1405:11)
#26 ScopedVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:2742:7)
#27 ResolverVisitor.visitFunctionDeclaration (package:analyzer/src/generated/resolver.dart:1374:11)
#28 FunctionDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:4866:49)
#29 ResolverVisitor.visitCompilationUnit (package:analyzer/src/generated/resolver.dart:1055:23)
#30 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#31 LibraryAnalyzer._resolveFile (package:analyzer/src/dart/analysis/library_analyzer.dart:706:10)
Change-Id: I62cde978d075bbafacb1b429e87049ca5d54d268
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175907
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-12-12 17:13:15 +00:00
Sam Rawlins
17b7d05e72
Analyzer: prepare for null safety in tests: casts and late variables
...
Change-Id: I37f3663b340952b79cef0e423caf81e5950b700b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175841
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-12-11 19:50:39 +00:00
Sam Rawlins
69cb9f7a67
Analyzer: Remove legacy parser (replaced by Fasta).
...
* Replace most of the implementation of Parser with the implementation
found in _Parser2, which uses Fasta.
* Rework Parser constructor to do exactly what the previous factory
constructor + _Parser2 constructor did.
* Remove _Parser2 and ParserAdapter.
* Remove `useFasta` argument in several places.
* Delete tests in parser_test.dart which only used the legacy parser.
* Move ParserProxy from parser_fasta_test.dart to parser_test.dart
* Remove ~240 cases of dead code like `if (useFasta)` and `useFasta ?`
in tests.
Change-Id: Iea29a10ff83103293902336490fbc9cd46cd20ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175560
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-12-10 23:47:48 +00:00