Johnni Winther
6c6144bb74
[cfe] Implement consolidated in ClassHierarchyBuilder
...
Closes #40414 and #40156
Change-Id: I066aa8ceef4f998230215fd9e9b446b2281cc3bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138294
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-03-13 08:16:49 +00:00
Konstantin Shcheglov
17eec5bcde
Mark variables written anywhere as not definitely unassigned.
...
Change-Id: Ia3fa8050eca7c7523500cb63620489cecb15f6d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139038
Reviewed-by: Paul Berry <paulberry@google.com >
2020-03-11 19:47:44 +00:00
Konstantin Shcheglov
9a0c09ecb2
Track definitely unassigned variables.
...
Change-Id: Id610a133912605f9af63222f25408942420cbf1f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138881
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-03-10 18:35:40 +00:00
Konstantin Shcheglov
24c8021f03
Replace initialize() with declare().
...
Fixes https://github.com/dart-lang/sdk/issues/38791
Change-Id: I954059160c75de91e1e32fe2f82ebfdc5569d947
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138666
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2020-03-09 18:24:51 +00:00
Johnni Winther
101588f0f4
[cfe] Implement legacy top merge functionality
...
+ fix getter/setter type inference
Change-Id: I9a4bed2b6a53131cbc9946bac0a01a4b15a63a91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137922
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-03-03 12:19:09 +00:00
Johnni Winther
fbe9f6115d
[cfe] Handle Object* in NNBD_TOP_MERGE
...
Closes #40481
Change-Id: I5f1060b137e9855106873b2173930d3ebed69930
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137921
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-03-02 12:15:50 +00:00
Johnni Winther
5800997ed7
[cfe] Correctly merge nnbd signatures
...
Change-Id: I33e55f6ba4c2822c790667a06e0456410696ca04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137920
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-03-02 12:15:50 +00:00
Johnni Winther
a9162bd599
[analyzer,cfe] Implement mixed inheritance id test for analyzer
...
Change-Id: Ie4ce09b83c2a96a5ad16c60d2924f18cd90a4089
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136633
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2020-02-24 13:28:26 +00:00
Johnni Winther
5829fc7829
[analyzer,cfe,dart2js] Add marker.options files to automate running id tests on all configurations
...
Change-Id: Ib5eb7f3967634721047f8dcc57b9e6c350b91a41
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136226
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-02-21 08:34:26 +00:00
Johnni Winther
6adbaacca3
[cfe] Add test for issue40524
...
Change-Id: Ic061bf901752ff1e776a8a3c6933128fadff2da0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136130
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-02-18 12:56:09 +00:00
Johnni Winther
a350984b65
[cfe] Add inheritance tests for reported problems
...
Change-Id: I2dfc46f718e7609f3626040eb3542b5441574975
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135907
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-02-18 12:00:29 +00:00
Johnni Winther
514a754150
[cfe] Add ClassMember.isProperty
...
Change-Id: I08e38f706f4606e80b607f180443924c85ee4b2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135905
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-02-18 11:05:04 +00:00
Mayank Patke
1591ddcf1e
[dart2js] Normalize DartTypes.
...
Change-Id: I2c3ddbecf9f9bbaac8f940398a7d5949c441fca4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134941
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2020-02-14 01:59:12 +00:00
Johnni Winther
ed2df21191
[cfe] Decouple MemberBuilder from ClassMember
...
Change-Id: Ia9d3a3ffa51781cfef1af0451902fe97620d2517
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/135303
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2020-02-12 09:57:55 +00:00
Dmitry Stefantsov
fd992e423e
[cfe] Normalize supertypes before nnbd-top-merging them
...
Closes #40454 .
Bug: http://dartbug.com/40454
Change-Id: Ia255c99c937a04876e04a0f0f5935147e55fbd35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134842
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2020-02-07 18:14:40 +00:00
Johnni Winther
0fe2779149
[cfe] Don't check override for member signatures.
...
Closes #40460
Change-Id: If418c0c809ec15febfa63c5363f8353cb16fc9de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134521
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-02-06 08:59:31 +00:00
Mayank Patke
450924a8cd
[dart2js] Remove typedefs from backend.
...
Change-Id: Ia170535b5d35d97003cff93acbf33cb3fe75725f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134206
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Mayank Patke <fishythefish@google.com >
2020-02-05 01:09:47 +00:00
Johnni Winther
178384832c
[cfe] Handle unresolved superclass on opt-out class with opt-in platform
...
Closes #40366
Change-Id: I3452cc825df52009cb294102d99de06c168413f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133782
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-31 08:27:21 +00:00
Johnni Winther
5fb7223b9a
[cfe] Handle parameter type inference for mixed inheritance
...
Closes #39207
Change-Id: Idaac1dcf6980fdebff326002adc466cb06fd0c91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133781
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-30 14:26:38 +00:00
Johnni Winther
7248e98023
[cfe] Support nnbd platform without experiment enabled
...
All handling of the opt-out features were guarded by the experimental flag.
With this CL the opt-out semantics is used irregardless of the
the experimental flag. This supports compiling with opt-out semantics
against libraries which have been compiled with the flag enabled, as will
be the case when the nnbd sdk is unforked.
Closes #40334
Change-Id: I2df5c700f97844bdd3e33bccba7e72013f0c831e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133780
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-30 12:56:26 +00:00
Johnni Winther
5b47e0fbb7
[cfe] Special case inference of Object.== parameter in legacy mode
...
Closes #40334
Change-Id: I526ff75a2f135d911f8d555804d03cddc98c3bc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133234
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-28 13:17:37 +00:00
Paul Berry
0399fcf6fa
Flow analysis: fix shared tests to consider potential nullability instead of nullability.
...
No change in functionality. Just changing the analyzer's
nullability_test.dart so that it generates the `nonNullable`
annotation for a promotion from type parameter `E` to `E&Object`.
This makes it consistent with the front end test runner behavior.
Change-Id: I9b74222257b432e361fbe46aa7d4d7070225a5e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133322
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2020-01-27 12:43:06 +00:00
Johnni Winther
bbe5599476
[cfe] Handle promotion of nullable type variables
...
Change-Id: I5a58cf318bce5bc5342ac6d9f4d197d4e2f46680
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133225
Reviewed-by: Paul Berry <paulberry@google.com >
2020-01-27 12:43:06 +00:00
Johnni Winther
0a771440dd
[cfe] Using isSameType in override checking of bounds
...
Closes #40220
Change-Id: I2008bcd4c96fb05efad4bd446215cd5710731fce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132846
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-24 12:41:19 +00:00
Johnni Winther
4ad57412bb
[cfe] Use legacy erasure and nnbd top merge in computation of supertypes in ClassHierarchyBuilder
...
Closes #40134
Change-Id: I50e6f4c6fe7b1e0fa7f3e0e609e015f630cff1b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132343
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-22 08:37:36 +00:00
Johnni Winther
5e389080a4
[cfe] Test supertypes computed from ClassHierarchyBuilder
...
Change-Id: Ia079754bd8272d7b5689a3bdab1e69d5188082be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132342
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-22 07:08:36 +00:00
Konstantin Shcheglov
020585872a
Intersect promoted types in joinV().
...
Bug: https://github.com/dart-lang/sdk/issues/40010
Change-Id: I02299e48ab1c9305a2d29f804796182444f3d9aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132166
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2020-01-17 22:31:37 +00:00
Konstantin Shcheglov
58a65fe4ba
Issue 40110. Update switchStatement_end() to 'isExhaustive', use for switch on enum in analyzer.
...
Bug: https://github.com/dart-lang/sdk/issues/40110
Change-Id: Ic17ab4562f518b7e69b78c3285b577ea3b8d1223
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131712
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-01-17 22:07:16 +00:00
Johnni Winther
d302d7f10a
[cfe] Insert member signatures for nnbd aware inheritance
...
Change-Id: I86dbbd586434af81b6dc4f4ae748cbd8177d06e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129080
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-15 07:36:28 +00:00
Johnni Winther
84c2a50aa0
[analyzer,cfe,dart2js] An indices to annotations preserve original order in id_generation
...
Change-Id: I0894baa6771b1c5a11a33007feebd1886aea032d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130704
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-10 11:51:17 +00:00
Johnni Winther
c1dc711ee7
[analyzer,cfe,dart2js] Use id_generation to show annotation diff
...
Change-Id: I1f1d96b3be023e9e9cfa25425f57a540edad6f6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130703
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-10 11:51:17 +00:00
Paul Berry
b6ab691389
Flow analysis: adjust nomenclature to match spec draft.
...
Two renames, to make the implementation more closely match
https://github.com/dart-lang/language/pull/763 :
- typesOfInterest -> tested
- promotion chain -> promoted types
Change-Id: If2c0d72c81bee45ef94fc4fb04000f5c9ed84f26
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130570
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2020-01-08 17:28:15 +00:00
Paul Berry
721670fc2d
Stop using package:expect in _fe_analyzer_shared.
...
_fe_analyzer_shared is published on pub so it isn't appropriate for it
to use package:expect (which isn't published at all). All we were
using it for was a few string equality checks; simply using operator==
and throwing an exception is an adequate replacement.
If, in the future, we decide that we really need the additional
functionality provided by package:expect, we can always convert the
test to use package:test, and then make use of the `expect` method
provided by package:test.
Partially addresses https://github.com/dart-lang/sdk/issues/40007 .
Change-Id: Ib7827db0cdb480feacc454a3aa660ea4c6e7cfd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130623
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2020-01-08 16:28:50 +00:00
Johnni Winther
d2fcd678fd
[analyzer,cfe,dart2js] Improve offset of generated library/class/member annotations
...
Change-Id: I76fea5f3479b5185433ec56efefb89071676e1a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130375
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2020-01-08 14:47:28 +00:00
Johnni Winther
64dae246db
[dart2js] Use CFE constant evaluator for non-required constants
...
Change-Id: Id363332caf29e98307553ec048c2dea36c739d95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129701
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2020-01-08 08:21:59 +00:00
Johnni Winther
969fa962da
[analyzer,cfe,dart2js] Do not generate annotations for empty values.
...
Change-Id: I0efa6287a44e340f9dc242b4ffc84fc8723e1049
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129718
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-03 20:12:39 +00:00
Johnni Winther
e3a20bf361
[analyzer,cfe,dart2js] Support annotated code generation
...
Add support for generating annotations from actual data using
option -g
Change-Id: I88d9cdb62a38d579234b15097c9e9bb3d81ebe8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129708
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2020-01-03 13:57:39 +00:00
Konstantin Shcheglov
36ded5cdd9
Issue 39875. Don't report unchecked nullable when resovled to an extension with nullable extended type.
...
Bug: https://github.com/dart-lang/sdk/issues/39875
Change-Id: I8beff226da4b301b0d2903788b44705985c89823
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129323
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2019-12-20 23:39:44 +00:00
Johnni Winther
904a822432
[cfe+analyzer] Use TryStatement for try/catch and try/finally in CFE
...
This includes an alignment of assigned variables info collection between
analyzer and cfe by always collecting assigned variables info for both
the try statement and the try block.
Change-Id: I789527adc24da025a85e73cdd98392efe7fc97bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128407
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-16 13:55:50 +00:00
Johnni Winther
818ec6db92
[cfe] Implement nnbd-top-merge
...
+ and use nnbd-top-merge and legacy erasure in hierarchy computation
Change-Id: I4bf06ce8d3c68a9926865ebf84b24b4029828d73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128065
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-12-13 17:19:59 +00:00
Konstantin Shcheglov
52dc7690ef
Issue 39667. Use flow analysis in IfElement.
...
Bug: https://github.com/dart-lang/sdk/issues/39667
Change-Id: I4528869a8d39d1b27c0cdf21ab20173bdb0efbc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127482
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2019-12-07 03:32:14 +00:00
Johnni Winther
42a4442521
[cfe] Handle promotion of Null to Never
...
Change-Id: If784cc315e0ea179e98df45a06d4a99179e4c197
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127140
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-04 12:41:38 +00:00
Johnni Winther
441a17d1f9
[cfe] Fix flow analysis for type parameter promotion, initializers, switch continue and for loops
...
Change-Id: Ia0bbbeb7f968961846a30a31471399bef9065842
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127003
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-12-03 14:28:48 +00:00
Johnni Winther
659b32ffc8
[cfe] Handle chained null shorting and null aware if-null set
...
Change-Id: I39d2448a957ca7f4f3d1f027e543f773b300ce9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126645
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-11-28 12:44:55 +00:00
Dmitry Stefantsov
d9d5fbc109
[cfe] Create TypeParameterTypes with default nullabilities
...
Change-Id: I85be937240ba5cc39840e78f374902c1e36521a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124327
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-11-19 11:22:43 +00:00
Johnni Winther
f443bc918e
[cfe] Add tests for inheritance from opt-out libraries
...
Change-Id: If139945dfdd808da0c24ac550ecfa235b41d3c23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123737
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
2019-11-13 10:08:08 +00:00
Johnni Winther
462a448ac8
[cfe] Integrate definite assignment, nullability and type promotion analysis
...
Currently not handled: null-aware and break/continue
Change-Id: I61b3ef92c974a2e98a010e091ba81cbefa0f6069
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124127
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-11-06 12:28:52 +00:00
Paul Berry
bb8ddfcdd6
Format definite_assignment test cases.
...
These were proably not formatted when they were initially written
because the formatter didn't support enough of NNBD at the time.
Change-Id: Ib2f4400081835d3a797d7e4394a069b9b122efe4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123681
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2019-10-31 15:02:03 +00:00
Paul Berry
a0ee662b7b
Move shared analyzer/FE integration test data into shared package.
...
This moves the five test suites for flow analysis along with the
constants test suite.
Note that a few files have formatting errors. I'll fix those in a
follow-up CL.
Change-Id: Ie9bba74c7d91e49ac6c9d3c64a96be007b6a94c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123680
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-10-31 15:02:03 +00:00
Paul Berry
29ab43e0e2
Move flow_analysis tests into package:_fe_analyzer_shared.
...
Change-Id: I3f95b1124ceb5c465a88e30bd161c0a2832a9772
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123625
Reviewed-by: Jens Johansen <jensj@google.com >
2019-10-31 13:05:53 +00:00