Johnni Winther
bc8b12e43b
[cfe] Handle privacy in extension lookup
...
Closes #38750
Change-Id: Ieb5af03859a51ee034b3c2731eadf7591a4cc83c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120641
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-10-08 08:07:09 +00:00
Johnni Winther
3e2d6f95ee
[cfe] Use fileOffset in Forest instead of Token
...
Change-Id: I6904555d5e192b7f6a561ae41859288db808e771
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119642
Reviewed-by: Jens Johansen <jensj@google.com >
2019-10-03 09:49:01 +00:00
Johnni Winther
0ef041d8f2
[cfe] Avoid crash on explicit extension access of static members
...
Change-Id: Ia9df90138be93cb9aa2a3111fdc2127fdc3f6cb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119334
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-10-01 07:34:20 +00:00
Aske Simon Christensen
0a5f736c68
[cfe] Fix missing comma between type parameters in function types
...
Change-Id: I90f7d1665a93414ed89799b3f564fdb7d2114e20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119324
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Auto-Submit: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-30 13:44:59 +00:00
Johnni Winther
f1d6282fa3
[cfe] Report error on extension members that conflict with Object members
...
Closes #38561
Change-Id: I9c26879662502e1f56203f87d1cd7a21036dcb2f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119325
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-09-30 13:21:49 +00:00
Dmitry Stefantsov
b682235c4c
[cfe] Preserve the nullability of LHS of intersection types
...
Change-Id: I2e91338d4172c1288ceb58c566d9d3e3e465a0b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118985
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-09-30 12:53:19 +00:00
Dmitry Stefantsov
902a36e36f
[cfe] Thread nullability of typedef types from source into Kernel
...
Closes #38214 , #38215 .
Bug: http://dartbug.com/38214
Bug: http://dartbug.com/38215
Change-Id: I6f96668f3dc7b315b0848a8d8953783ceb5f1c47
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119326
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-30 12:52:29 +00:00
Dmitry Stefantsov
b361639a74
[cfe] Account for nullability in type substitution on TypeBuilders
...
Closes #37689 .
Bug: http://dartbug.com/37689
Change-Id: Ifac30bede3dbec9008e31e5fc81014cc69069afc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119145
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-30 12:52:29 +00:00
Dmitry Stefantsov
7d75eb1fd9
[cfe] Account for nullability in type substitution on DartTypes
...
Bug: http://dartbug.com/37689
Change-Id: I5c37f0e13da956285300288cffc58263e67ac302
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119140
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-30 12:52:29 +00:00
Johnni Winther
e52542b421
[cfe] Handle generic return types
...
Returns types on generic methods in generic extension that contained
type variables declared on the generic method were not substituted,
leaving these as unindexed type parameters during serialization.
Change-Id: I4f53005318ba2be014bfe6e92f4f6c93288f2a4f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118995
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-30 10:58:05 +00:00
Aske Simon Christensen
8f24bd2901
[cfe] Remove or reformulate some bad tips and messages.
...
Change-Id: I5f37da30370fb48a4417e2b0c990d9fc1c9713a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118990
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-30 09:02:41 +00:00
Aske Simon Christensen
4b9557e5e3
[cfe] Check valid return type of local async functions.
...
Fixes https://github.com/dart-lang/sdk/issues/37681
Change-Id: I24e53f92ab9c812591a1317673082c4a40c2d00b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119142
Commit-Queue: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-30 08:48:08 +00:00
Kallen Tu
134839098b
Serialization/Deserialization for Variance in Type Parameters.
...
Change-Id: I9bce86293c23c4b9d2b8011e866f04bcab80e74a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118881
Reviewed-by: Jens Johansen <jensj@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Kallen Tu <kallentu@google.com >
2019-09-27 16:57:00 +00:00
Aske Simon Christensen
a12c275901
[CFE] Avoid talking about const context in error messages.
...
The constant evaluator does not know if the expression it is evaluating
is actually in const context. If not, those messages are misleading.
Fixes https://github.com/dart-lang/sdk/issues/38568
Change-Id: Iddfb1fbdc12eb1874a1f400cf08763e003db23e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118982
Auto-Submit: Aske Simon Christensen <askesc@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2019-09-27 14:49:57 +00:00
Kallen Tu
327bc451f8
Added variance support in listeners to ast.
...
Pass variance data to field in TypeParameter through the listeners.
ast_to_text will print variances for classes and mixins if specified.
Avoids serialization/deserialization (impl in future CL).
Change-Id: I298537604823710f0d30001f4cb5f1e81530959f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118464
Commit-Queue: Kallen Tu <kallentu@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-26 18:11:10 +00:00
Johnni Winther
6ff8d2199d
[cfe] Don't crash on constructors in extensions
...
Change-Id: I11cdb9699101f384c2734c3551b4eefdfda6eccb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118980
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-26 12:32:25 +00:00
Johnni Winther
53564db036
[cfe] Handle implicit extension call()
...
Change-Id: Ib0aa04b7b00c54c21932040bd8912d95c138f62e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118960
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-26 10:36:51 +00:00
Johnni Winther
ee7aae43c0
[cfe] Handle explicit extension index access
...
+ avoid implicit extension for [] or []= when the other is defined on
the receiver.
Change-Id: I99c76a66bfb4f72c396097b2f347aad9f0a42f33
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118940
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-26 10:36:51 +00:00
Johnni Winther
0bf6b6ae64
[cfe] Handle instantiation of extension tear-offs and check bounds on extension method invocation
...
Change-Id: I212f95c897889a28934910c2c21c64bea6c6a64c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118585
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-26 08:41:38 +00:00
Johnni Winther
b03d472e4c
[cfe] Handle default values on extension methods
...
Closes #38541
Change-Id: I078800cc98b5444c2c7f6f87b2d89bcf764bfc23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118582
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-25 08:45:27 +00:00
Dmitry Stefantsov
12f6cbb7b1
[cfe] Thread nullability modifiers for TypeParameterTypes from source
...
Closes #38218 , #38221 .
Bug: http://dartbug.com/38218
Change-Id: I4689b0b192b71790c8fc5ffba6ccb807f289f771
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118580
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
2019-09-25 08:15:47 +00:00
Dmitry Stefantsov
13fcf27c25
[cfe] Implement library-specific NullabilityBuilder getters
...
Change-Id: Ia7ca900f52bab8549224147bdf2ea161fc60002c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118564
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-25 08:15:47 +00:00
Johnni Winther
7b9bcd08b4
[cfe] Correctly substitute function types from extension on-clauses
...
Change-Id: Icf6bf59544d2c14cc153cdf77b675554d319b6b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118541
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-25 07:30:17 +00:00
Johnni Winther
2f7ad92ee4
[cfe] Handle null aware explicit extension application
...
Handles expressions like `Extension(c)?.foo`.
This CL also includes an update to SourceExtensionBuilder.build
addressing a comment in a previous CL.
Change-Id: I0ebcd95d16743c0aa6da22120182b2219fc30726
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118443
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-25 07:30:17 +00:00
Jens Johansen
cc7baf9bf5
[CFE] Fix of crash etc in error messages wrt formal parameters
...
With something like
x2() {
y(z, {z}) {}
}
in a part, we create an error on the 2nd 'z'.
That error message gets the file uri of the body builder which is correct.
The context gets (for the 1st 'z') gets the file uri of the
FormalParameterBuilder which in turn got it from the "parent" which is the
library which is the "main library", i.e. not the "part library".
This causes - in the face of parts - one of two things:
1) It will point into the wrong file and the error message will be bad.
2) It tries to point into the wrong file, but the wrong file is not big
enough, and we thus get a crash.
This CL fixes it so the FormalParameterBuilder has the right uri.
Fixes https://github.com/dart-lang/sdk/issues/38523 .
Bug: 38523
Change-Id: I303dbec2934ae930b8f2f2c9f63a4aa00db3a89c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118448
Commit-Queue: Jens Johansen <jensj@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-24 11:50:09 +00:00
Jens Johansen
98d94e7efc
[CFE] Reproduction of crash etc in error messages wrt formal parameters
...
Reproduction of dartbug.com/38523
Bug: 38523
Change-Id: Iffc30a622685c0c8d7a0daf0b84c910072c8146f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118446
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-09-24 11:43:28 +00:00
Jens Johansen
1b03bc34c8
[CFE] Cleanup incremental_load_from_dill_test yamls
...
Change-Id: I30012b08499e5c5a7babb74cb43706031fb3f4cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118445
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-09-24 10:50:18 +00:00
Jens Johansen
fdda2729c3
[CFE] Fix crash when mixin application has mixin application super from dill
...
Fixes https://github.com/flutter/flutter/issues/40966 .
Change-Id: Idf3febc50b5c8d637e9f3f43e8bd3e6b8bdee2fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118444
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-09-24 10:47:18 +00:00
Aske Simon Christensen
c71ee4b0c9
[cfe] Report override errors at the class in which the override takes place.
...
Change-Id: Ib5b80d3cca6e15966f822bf96294dee8f4dedc04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115247
Reviewed-by: Jens Johansen <jensj@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2019-09-24 08:28:21 +00:00
Johnni Winther
175fc6edff
[cfe] Use original name in extension method errors.
...
Previously the errors were reported using the synthesized name, like
`Extension|method` instead of `method`.
+ Report errors on invalid uses of explicit extension application as
an expression or lvalue.
Change-Id: I6d85430be4ab3966ee94131b37aa365265c07eac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118383
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
b7ad248209
[cfe] Handle annotations on extension members
...
Closes #38439
Change-Id: I3c995ba5ca3058530318b14e46d275ce6ccc8778
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118381
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
bf76e4b49c
[cfe] Handle complex extension setters
...
Change-Id: Ic5753c70a13fed819df7aa6900a8191f9bed4195
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118042
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
2b3541da57
[cfe] Make IfNullJudgment an internal expression
...
Change-Id: I68c81e10692823e9fad552272167c0bf87144db4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117942
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
2777806901
[cfe] Handle dynamic invocation
...
Change-Id: I13ca160a2dd5862d558928826adee7bcacf67d04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117731
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
18e4f6ba8d
[cfe] Handle conflicting extension and extension member names
...
Change-Id: Ib0c7ffce985b31dfcdacaca599ff31f3d05a25a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117730
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
2be1d090ca
[cfe] Correctly resolve extension properties in face of getter/setter conflict
...
Change-Id: I0b818edb27de1b2cd1dcd2e046f42616cd7cb257
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117729
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
71896d5586
[cfe] Support implicit this access to extension methods in extensions
...
Change-Id: Idad98ca0d0fb27010ef4a522593f283b97ecc873
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117720
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
25166af3ea
[cfe] Remove SyntheticExpressionJudgment
...
Change-Id: I2891d772d99d1fd8a5ba42e393d900f3c1618a5c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117700
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
037b9052d2
[cfe] Handle compound assignment on explicit extension application
...
Change-Id: Ie8b23593db5286d1d44125ea0dcc76f95cb9b4e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117545
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
bdd432f427
[cfe] Handle if-null assignment on explicit extension application
...
Change-Id: I30e02767d23982cb8cae08113bd6b0f97d325e03
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117544
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-24 07:55:45 +00:00
Johnni Winther
a2a155afd1
[cfe] Refactor null-aware if-null and compound assignments
...
Change-Id: Ie96ac05974cff706af5b49536cd9a006a9786195
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117540
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-09-24 07:55:45 +00:00
Dmitry Stefantsov
8d487b4fdc
[kernel] Recover TypeParameter.variance while deserializing
...
Change-Id: I46d78dc5e98c5e3707d448eccfd6bdabb1c25ddb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/91827
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-09-23 15:17:38 +00:00
Dmitry Stefantsov
4d9db7b22f
[fasta] Account for variance of type parameters in instantiate-to-bound
...
Change-Id: I7a0aa3810129fa6a6a8cff5f961c19157154cd37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/85101
Reviewed-by: Aske Simon Christensen <askesc@google.com >
2019-09-23 15:17:38 +00:00
Johnni Winther
94dd49cdb6
[cfe] Add NullCheck expression node
...
Change-Id: I17223bffa5dec7b1ce7652b21bf1a3381137f4f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118380
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-23 10:04:48 +00:00
Johnni Winther
3f8c7e5fa2
[cfe] Refactor local and read-only compound assignments
...
Change-Id: Idcf113fee7c2a98dc38e95ff4e298b504a0ecd13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117360
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-20 18:30:45 +00:00
Johnni Winther
771e0f7d32
[cfe] Refactor local and read-only if null assignments
...
Change-Id: Ie5ec508f69f3db6badd889c0ecfb1f80d1873501
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117325
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-20 18:30:45 +00:00
Johnni Winther
68b1a2e7bd
[cfe] Refactor super index access
...
Change-Id: Ie431d93b2ecc48fe5c35288f1146934ac278a81c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117322
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-20 18:30:45 +00:00
Johnni Winther
1e24146dab
[cfe] Refactor this indexed access
...
Change-Id: Iaaac1aba9f421ec1d5176350b1d007ce355ca297
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117151
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-20 18:30:45 +00:00
Jens Johansen
99713209c4
[CFE] Fix issue with cached calculations and recording dependencies
...
Before this CL we would miss some dependencies when recording
dependencies because we cache certain calculations that upon calculation
can mark things as needed.
Change-Id: If9ff872021b0fb77cbcc787112bb91f3ade71243
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118281
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-09-20 11:21:14 +00:00
Johnni Winther
70a1e8e090
[cfe] Fix handling of access on type variables with dynamic bound
...
Change-Id: Ibff097e5f18bee169191b94633455547460debb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118280
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Jens Johansen <jensj@google.com >
2019-09-20 10:48:14 +00:00