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
Dmitry Stefantsov
9505a1b87f
[fasta] Add variance field to type parameters
...
Change-Id: I0c3eda4057b52853c063a682ff15fb17a595db3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/85082
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
5997ea4d73
[cfe] Make buildSimpleRead and buildAssignment abstract
...
+ remove _makeSimpleRead and _makeSimpleWrite
+ directly implement some of buildIfNullAssignment, buildCompoundAssignment and buildPostfixIncrement
Change-Id: I5a209c3a570af7773486799a0473f802e27afb54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117323
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
Jens Johansen
36c3eccc11
[CFE] Fix issue with exports and recording dependencies
...
Before this CL we would miss some dependencies when recording
dependencies because we don't finalize exports of dill libraries we have
already finalized.
This was a previous speed-optimization that worked fine before recording
dependencies, but - as outlines above - doesn't work together with
recording dependencies.
Change-Id: I3d9abe949e2b614e9bcd03711e7b92f586373ec5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118043
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Jens Johansen <jensj@google.com >
2019-09-20 07:24:34 +00:00
Johnni Winther
9ed45651a9
[cfe] Refactor super expressions
...
Change-Id: I9bc0c6cd86316248108440bc367239316bdbc5ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117150
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
5081eb15ee
[cfe] Refactor handling of static if-null assignment
...
Change-Id: Id29b92bc3c2463a3c36ed25c13e0de84fa355ab5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117149
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
f018ce0355
[cfe] Refactor handling of static get/set/compound
...
Change-Id: I63a4834bb43ab533f3195e745105137534d83bc9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117148
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
dc211c3f9d
[cfe] Refactoring handling of compound index set
...
Change-Id: If5ba12c571c77643e57669ef85f8235496d4b06b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117141
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
604f443285
[cfe] Refactor handling of if-null index assignment
...
Change-Id: I0fc9c4564321144ea4215fe21bd11f671f9f9054
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116960
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
54c2dd737f
[cfe] Refactor handling of index and index-set
...
Change-Id: I28336e1e01ba2f2f98d77c941b740242207bbc86
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116780
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
c7a083ee5a
[cfe] Refactor handling of ++/--
...
Change-Id: Ib63b095ba52b92653c3253286d0ecc1d18a469ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116760
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
c2f35df918
[cfe] Refactor handling of compound local/property assignment
...
Change-Id: I8a42ab364ef263b13b7a2314777d04dbb1de8038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116520
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Johnni Winther
40d75d733b
[cfe] Refactor if-null and null-aware property access
...
Change-Id: I19a50b7d56b63c96f24daf8aaf975e0748e29cf8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116340
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-19 17:17:10 +00:00
Aske Simon Christensen
3fa2bbf202
[cfe] Fix incorrect const contexts.
...
Fixes https://github.com/dart-lang/sdk/issues/36533
Change-Id: Id157edb09ee5bf16003b33b16ecf6edc900b38f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117324
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2019-09-19 12:01:21 +00:00
Dmitry Stefantsov
515a597710
[cfe] Remove Class.rawType
...
Bug: http://dartbug.com/38224
Change-Id: If0af5487b1d43125738575ee3e0fcd747db54fa9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117546
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-19 10:42:10 +00:00
Paul Berry
4d9792668c
Flow anaylsis: fix definite assignment tracking for for-each loop vars
...
Change-Id: Ia0dfd94070e28832c5ffc6fb892626d9036042a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117820
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2019-09-18 19:21:39 +00:00
Kallen Tu
b699852e6d
Add 'out'/'inout' keywords for variance.
...
Under the `variance` flag, `out` and `inout` will be treated as keywords.
Change-Id: I73ba6871a9f0d410a7b3818833a1f50a5f75fba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117203
Commit-Queue: Kallen Tu <kallentu@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2019-09-18 18:35:59 +00:00
Samir Jindel
205b90f0de
Take 3 for '[vm/ffi] Implement FFI callbacks on AOT for ELF and Asm snapshots (excl. blobs).'
...
Fixes the changes to assembly snapshot writer in SIMARM_X64 mode. This unfortunately can't be tested until the ELF loader is available.
Take 2 is in patchset 1.
Change-Id: Ib8b067dd4f09dcba3b142705e9cb4dfbf4e3eb53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117726
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
2019-09-18 14:56:27 +00:00
Dmitry Stefantsov
a56b4ee790
[cfe] Thread nullability from source for function types
...
Closes #38216 .
Bug: http://dartbug.com/38216
Change-Id: I33def8e24555099a74fae04d658cbde7af08d7c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117727
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-18 13:58:43 +00:00
Dmitry Stefantsov
0281f9c425
[cfe] Add members to construct nullability in Library and LibraryBuilder
...
Change-Id: Iaaa9cf0c5a5789e6b303d646c5ed7fb6eed15b9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117155
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2019-09-18 09:52:00 +00:00
Aske Simon Christensen
7799f424f4
[CFE] Encapsulate int operations in separate classes for VM and JS
...
This refactoring achieves the following:
- Collect the integer operation semantics into one place instead of
having it sprinkled all over the constant evaluator with many
"if (targetingJavaScript)" tests.
- Avoid emitting the internal JavaScriptIntConstant node, which is
serialized as normal DoubleConstant nodes, thus achieving parity
between direct consumers and consumers seeing output that has been
serialized.
- Implement the JavaScript semantics for unsigned right shift.
- Fix truncating divide with a result outside int64 range incorrectly
clamping the result for JS targets.
- Fix positive hex constants >= 2^63 through int.fromEnvironment
producing negative values in dart2js.
- Clarify in Kernel documentation how numeric constants are represented
on VM vs JS targets.
Change-Id: If30bb2c2c77c54eff120b611b059c2ec726c99a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116525
Reviewed-by: Mayank Patke <fishythefish@google.com >
2019-09-16 13:10:59 +00:00
Aske Simon Christensen
eb1a375749
[CFE] Consolidate double special cases for == and identical.
...
Change-Id: I2d8da0bbb443bdf3ee5c3a6f53786a80509d2d9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116321
Reviewed-by: Mayank Patke <fishythefish@google.com >
2019-09-16 13:10:59 +00:00
Johnni Winther
7b60ae1a0d
[cfe] Fix infer expression
...
Fixes bug introduced https://dart-review.googlesource.com/c/sdk/+/116203
Calls to inferExpression that pass an expression directly needs to handle
the returned replacement expression directly.
Change-Id: I74f7707921d6f08df3d4bee48085a8d72731acee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117154
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-09-16 12:29:49 +00:00
Kallen Tu
f20f619050
Add 'variance' experimental flag.
...
Generated flag code
Change-Id: I61e6b8fd0a21c511c93afb9b334dc8c17eb69272
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117041
Reviewed-by: Leaf Petersen <leafp@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Kallen Tu <kallentu@google.com >
2019-09-13 16:11:16 +00:00
Johnni Winther
2a12c63631
[cfe] Use SuperPropertySet for super assignment
...
Change-Id: I82afdb7558186aa744a09c4ee68ac6335a7c55f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116280
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00
Johnni Winther
4b72fffaaf
[cfe] Use VariableSet for variable assignment
...
Change-Id: Ia94f9e1a3548e615fef111256aa2419cc1fd8c75
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116209
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00
Johnni Winther
2153a06b82
[cfe] Use PropertySet for property assignment
...
Change-Id: If16d2b9ca8bb1134d181c27ea524b8008e2f52ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116207
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00
Johnni Winther
4fd7bf7356
[cfe] Split inference of super property get from instance property get
...
Change-Id: I457d6a4326c879ee68113760cd86dc0250e4cfde
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116205
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00
Johnni Winther
f8f37c131b
[cfe] Split inference of super method invocation from instance method invocation
...
Change-Id: I6d8344da4bb49de0712b2c9f410c3f691ade7150
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116204
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00
Johnni Winther
7d2ebd3ce9
[cfe] Introduce InternalExpression
...
Create Cascade, DeferredCheck, LoadLibraryTearOff,
NullAwareMethodInvocation and NullAwareMethodPropertyGet as internal
only expressions.
Change-Id: Ie9e12a2fd87ae47f632076429eebd5a21717a062
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116203
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com >
2019-09-13 07:38:25 +00:00