Sam Rawlins
de0848e7ea
Analyzer: Move tests out of old test file into diagonstics.
...
* Add non_const_call_to_literal_constructor to test_all.
* Clean up non_const_call_to_literal_constructor to avoid unused variables.
* Update NON_CONST_MAP_AS_EXPRESSION_STATEMENT tests to be failing tests.
Change-Id: I1ca9e18372c7b5acc7b8670f81ed89ed0aa18825
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155927
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-07-27 22:18:48 +00:00
Konstantin Shcheglov
8de8a1c226
Move codes from StaticTypeWarningCode into CompileTimeErrorCode.
...
They are all errors now.
Change-Id: If48d38e38e845fd5b5a950dd5514bf1cbbce03d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155880
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-27 16:44:15 +00:00
Konstantin Shcheglov
ba92b78acd
Move errors from StaticWarningCode to CompileTimeErrorCode.
...
Bug: https://github.com/dart-lang/sdk/issues/42821
Change-Id: I153c48d7a2e4a02026928e6203aacf8f2dc029ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155849
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-26 04:19:25 +00:00
Konstantin Shcheglov
8c316a99de
Remove unnecessary null checks.
...
R=brianwilkerson@google.com
Change-Id: Ic88659225aeff8dba8b4050938da704c23583b38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-23 22:36:03 +00:00
Sam Rawlins
6c9b885e57
Remove StrongModeCode.INVALID_PARAMETER_DECLARATION; it's redundant
...
You can see in the included test that we already report
`FIELD_INITIALIZING_FORMAL_NOT_ASSIGNABLE`.
Change-Id: Ib7c4177627120a31910d3929d61f5337cb869b1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155281
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-07-23 20:30:50 +00:00
Konstantin Shcheglov
5171534e81
Scope tweaks. Report REFERENCED_BEFORE_DECLARATION in more places.
...
Change-Id: Iac395adf15c3f636e3e7e7241e0573f83ab61372
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155304
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-22 19:15:59 +00:00
Konstantin Shcheglov
6f8ce20c99
Move asInstanceOf(ClassElement) to DartType.
...
This follows to the change to the specification.
https://github.com/dart-lang/language/pull/1106
R=brianwilkerson@google.com
Change-Id: I6575f201161c454de98e9bcbec74b9974d91d062
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155242
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-22 01:22:05 +00:00
Sam Rawlins
041e0dd618
Analyzer: Enforce strict-inference
...
Change-Id: Iba49bfa7cf10f8a3b1d3be03e73fdca280f0940a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155062
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-07-22 00:44:55 +00:00
Paul Berry
eae54cf02c
Fix reachability logic for expression types.
...
Previously, we considered an expression unreachable if its type was
exactly `Never`. This CL switches to using TypeSystem.isBottom, which
correctly handles types like `T extends Never`.
Change-Id: Ia6ce580caab6bc7ce7cceb1d0097b50f1da88f8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154746
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2020-07-21 18:56:25 +00:00
Konstantin Shcheglov
e653358a6c
Issue 42770. Support closures when checking for instance elements referenced from static.
...
Bug: https://github.com/dart-lang/sdk/issues/42770
Change-Id: Ic9ea429a50ad8aa807f2f2c33667d3c4fbc9b169
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155144
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-21 18:12:04 +00:00
Konstantin Shcheglov
db6a783a17
Remove checks for not-null in ScopedVisitor.
...
R=brianwilkerson@google.com
Change-Id: I297b03f9cc9c1683767549150a90568c80f42551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155221
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-21 16:53:32 +00:00
Konstantin Shcheglov
86ec742832
Switch to new Scope(s).
...
No much changes to resolution itself, only to the way how we create
scopes. But we still use `lookupIdentifier` that is basically the old
approach to resolution.
This also moves the fix of https://github.com/dart-lang/sdk/issues/42620
to TypeNameResolver.
I will continue improving in following CLs.
Change-Id: I89bae5afe0a7978aba9fe9bf7c8bf08fb59b1440
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154920
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-21 01:37:34 +00:00
Brian Wilkerson
174759cfbd
Add a way to get all of the lint codes used by a rule
...
Several of the lint rules have been producing diagnostics with more than
one lint code, but the code that deserializes diagnostics has only been
able to use one of the codes. That potentially leads to errors, though I
suspect the bug has been invisible because we serialize and deserialize
the messages. Nevertheless, it seems like we ought to do this correctly
and that it will eventually lead to a visible bug.
Change-Id: I41faaa45df63cb3c74042661e1c89e3fde3d72d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154843
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-07-17 18:39:37 +00:00
Konstantin Shcheglov
ec01fc2bf1
Remove ResolutionContextBuilder.
...
This class is not API, and is not used internally.
So, we can just remove it.
R=brianwilkerson@google.com
Change-Id: I3c0d8aac22de8276758dae9ac23b9f1e23e660bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154842
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-17 17:27:26 +00:00
Konstantin Shcheglov
dba9f7f99c
Put isXyz flags into ParameterKind and use in AST and element model.
...
Change-Id: I15d2bb6144bb266d8cd527c5342679cc8c6243c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-17 16:05:10 +00:00
Sam Rawlins
907da64b02
Analyzer: Redefine NOT_INSTANTIATED_BOUND to be an error.
...
All StrongModeCodes are being redefined.
https://github.com/dart-lang/sdk/issues/33545
Change-Id: I247c6584eba386edfd7babecb08adf5ccc9344ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154748
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-07-17 13:42:58 +00:00
Brian Wilkerson
9de49b536a
Fix an NPE in invalid-null-aware-operator-after-short-circuit
...
Change-Id: I91ebe5b4c511d74be566ce1f01ae0dba07313057
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154720
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-07-16 15:57:03 +00:00
Brian Wilkerson
d4ac7066b7
Improve diagnostic message when short circuiting (issue 42599)
...
Change-Id: I456bc50792dfdb30c281578d0d54ffa9e2af6474
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154161
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-07-15 21:19:49 +00:00
Konstantin Shcheglov
ef147c0a95
Issue 42699. Stop reporting EXPORT_DUPLICATED_LIBRARY_NAMED and IMPORT_DUPLICATED_LIBRARY_NAMED.
...
Bug: https://github.com/dart-lang/sdk/issues/42699
Change-Id: Ie64405791f15a38f170206a11eabee176b6cbfad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154540
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-15 21:03:16 +00:00
Konstantin Shcheglov
0f14f0e71f
Verify the index of IndexExpression with both read and write elements.
...
Change-Id: Ie680d47c04469d0289b71026a5826a4cd3701ec3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-15 17:21:54 +00:00
Konstantin Shcheglov
8608726100
Stop supporting 'target?.[index]' and QUESTION_PERIOD_OPEN_SQUARE_BRACKET.
...
Change-Id: Icac4f851fbb9f283ce28ba8753c1b2e27a99cff3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154165
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-14 14:36:19 +00:00
Paul Berry
9f8aaf65c7
Issue an error if a prefix in a type name is shadowed by a local variable.
...
See #42620 .
Change-Id: Ifd18c939082935390df0c2aa0bd724cf6f76c27c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153705
Commit-Queue: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-07-09 23:09:18 +00:00
Konstantin Shcheglov
dfdc7e45c5
Report PRIVATE_SETTER.
...
Change-Id: I823582328b4b9cc63ac734e9ea1c9354175a6e18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153880
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-07-09 21:51:50 +00:00
Konstantin Shcheglov
39c94735a3
Report MIXINS_SUPER_CLASS.
...
Bug: https://github.com/dart-lang/sdk/issues/42256
Change-Id: I49c70d5a172062fed4d8663d95701ba855effda6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153823
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-09 19:05:52 +00:00
Konstantin Shcheglov
9dea0a8d97
Add InterfaceType.asInstanceOf(ClassElement) to API.
...
R=brianwilkerson@google.com
Change-Id: I91c61aea37bb4ccfb300083e1b017b8e71ef6d6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153703
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-09 00:34:38 +00:00
Sam Rawlins
bda4994482
Analyzer: Finish using ///-style comments.
...
This ignores the Lint on a few files where it is undesired.
Change-Id: I5e4244607da0ef60678cebb89a433e44cb1e753f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2020-07-06 00:54:10 +00:00
Konstantin Shcheglov
69aba23371
Move TypeSystemImpl to src/dart/element/type_system.dart
...
R=brianwilkerson@google.com
Change-Id: I0d9acad041c1038f6f2be6c09855488287ba5e97
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-05 16:44:59 +00:00
Konstantin Shcheglov
326f7b4a8f
Remove DartSdk.useSummary.
...
Initial: https://dart-review.googlesource.com/c/sdk/+/149495
Reverted: https://dart-review.googlesource.com/c/sdk/+/149687
Change-Id: Ibd3f1af1aef83adc35f77cfbda66e07c5ae99922
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153241
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-03 15:56:41 +00:00
Konstantin Shcheglov
9cfdc02e58
Stop depending on exports from generated/resolver.dart
...
We cannot remove them completely just yet, there are users in google3.
But this CL will allow experimenting internally to track these users
and update them similarly.
R=brianwilkerson@google.com , devoncarew@google.com
Change-Id: Ic588b2873f9d5202783c8991f58e86bab28bd47e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153240
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-07-03 15:55:41 +00:00
Paul Berry
22da8934ac
Migration: properly handle extension override syntax.
...
There were two problems:
- EdgeBuilder wasn't handling the extension override syntax at all,
causing a crash.
- FixBuilder wasn't overriding the behavior of
ExtensionElement.extendedType, causing a star type to be used as a
context for the target expression; this prevented the fix builder
from realizing when it needed to insert `!` after the target
expression.
Fixes #42455 .
Bug: https://github.com/dart-lang/sdk/issues/42455
Change-Id: I5a9f66f83db73a796e72708022faefd527667e32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152941
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2020-06-30 16:00:47 +00:00
Konstantin Shcheglov
6e9aa86d6f
Stop using AnalysisOptions.signature and multiple paths in SdkDescription.
...
Basically reduce it to a single path.
R=brianwilkerson@google.com
Change-Id: Ia532a5c7f6ae1464b77c5e9d23b3aaa7e85a6bf0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152710
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-29 17:50:14 +00:00
Brian Wilkerson
30fe39b92d
Do not report a missing implicit default super constructor when subclassing an non-subclassable class
...
Change-Id: I015ebb07ae341bcee615e032be460b3e59e149c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152726
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-06-28 14:51:24 +00:00
Konstantin Shcheglov
f91547d6dd
Separate signatures for linked elements from signatures for resolution.
...
So, lints and error filters don't affect cache keys for summaries, and
we can reuse them more often across analysis contexts.
This makes `dart flutter_tools/bin/flutter_tools.dart analyze --flutter-repo`
about 35% faster, from 153 seconds to 113 seconds.
Change-Id: I606acce7ef712450783c75d24bc52fd5877b3f1f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152725
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-27 19:14:41 +00:00
Sam Rawlins
6bf946bbfc
analyzer: Always declare return types.
...
Change-Id: I23d89bb572310a1a8deef8e173630d9bb59c9a50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152708
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2020-06-26 23:54:28 +00:00
Paul Berry
cf53aea310
Consolidate to a single implementation of refineBinaryExpressionType.
...
Previously, we had one implementation in TypeSystemImpl that did some
of the work, and then deferred to the superclass implementation in
TypeSystem to do the rest of the work. But the separation between the
two didn't add any value, since all instances of TypeSystem are also
instances of TypeSystemImpl. So we move all the logic into
TypeSystemImpl for clarity.
Change-Id: I2901ab854a1507d65545ab05e3662913f219ad56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152704
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Paul Berry <paulberry@google.com >
2020-06-26 19:42:25 +00:00
Sam Rawlins
baa5717f78
Use ///-style doc comments in analyzer/lib/src/generated
...
Bug: https://github.com/dart-lang/sdk/issues/33892
Change-Id: I0cee47b71702a210c5ace9455ce9aaf914355d05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152683
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Samuel Rawlins <srawlins@google.com >
2020-06-26 17:31:58 +00:00
Brian Wilkerson
ff83b0fec9
Add support for navigating from the URI in import and export configurations to the referenced file
...
Change-Id: Ic6234d9a24dcb52228067b20d69277e47ff89a0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152401
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2020-06-24 22:46:33 +00:00
Sam Rawlins
9239061138
Analyzer: Improve message of implicit_this_reference_in_initializer
...
Fixes https://github.com/dart-lang/sdk/issues/37293
Change-Id: I4b621171dcaf618e97c62acd110ce7c911e6c9e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151425
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-06-19 13:40:43 +00:00
Konstantin Shcheglov
62cc07dbca
Issue 42385. Fix for analyzing 'prefix?.foo'.
...
Bug: https://github.com/dart-lang/sdk/issues/42385
Change-Id: I4dabfbda01a37210c57cb5ba6b5a7d530752e029
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151628
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-18 21:22:42 +00:00
Konstantin Shcheglov
60bb0d3a41
Separate current and to restrict FeatureSet(s) in scanner.
...
Bug: https://buganizer.corp.google.com/issues/159207726
Change-Id: I41b4c79590dccd05d8b0fa42d296f00a3c3ee229
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151620
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-17 23:32:31 +00:00
Konstantin Shcheglov
d279cb47b5
Enforce sorting in analyzer/.
...
Change-Id: If7e76e442e64cd4991b80c3993e3da10bb3a19ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151462
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-17 05:04:30 +00:00
Konstantin Shcheglov
7f6b0d82eb
Issue 42337. Report BODY_MIGHT_COMPLETE_NORMALLY for factory constructors.
...
Bug: https://github.com/dart-lang/sdk/issues/42337
Change-Id: I9209d7bf519ec61026ffe22bb05145e776e8517d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151344
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-15 23:46:38 +00:00
Konstantin Shcheglov
18b753cbcd
Support for null-aware ExtensionOverride.
...
Bug: https://github.com/dart-lang/sdk/issues/41780
Change-Id: Ib5d11000847434c679df1ec882ee6d9777670fe0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151097
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-15 23:45:08 +00:00
Konstantin Shcheglov
f2fafcd440
Extract and reuse EnclosingExecutableContext.displayName
...
Change-Id: If411305b7484e59b234366b656d07d2235e6513d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151305
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-15 20:16:16 +00:00
Sam Rawlins
294a2cffd1
Analyzer: print constructor name when constructor returns invalid type
...
Fixes https://github.com/dart-lang/sdk/issues/27387
Change-Id: I8ce81bab4c4601c5157977d3f43f73903dae7f8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151200
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-15 13:52:56 +00:00
Sam Rawlins
32a93e2147
Analyzer: Remove error on class-used-as-mixin referencing super
...
Fixes https://github.com/dart-lang/sdk/issues/34806
Change-Id: I1cfd0b9c0699734b172aa62f7a04ab533a6cd03f
Fixed: 34806
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151099
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2020-06-13 15:11:25 +00:00
Sam Rawlins
56dbe294f2
Analyzer: Do not report const constructors with mixed in synthetic fields
...
Fixes https://github.com/dart-lang/sdk/issues/37810
Also report the offending fields in the error.
Change-Id: I8328bf5f16f56f1b70bbe4bdb7623ade6f11943c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151027
Commit-Queue: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-12 16:24:35 +00:00
Daco Harkes
6544c69e23
[vm/ffi] Convert Objects to Dart_Handles in FFI calls
...
This includes support for calling Dart_PropagateError in native code
when doing FFI calls, and catching uncaught exceptions with Dart_IsError
when doing FFI callbacks.
The support for Dart_PropagateError adds a catch entry to the FFI
trampoline, which prevents inlining these trampolines in AOT. This
regresses the FfiCall benchmarks by 1-2% in AOT.
In addition, Dart_PropagateError requires maintaining a bit whether we
entered native/VM code from generated code through FFI or not. That way
we can do the proper transition on the exception path. When entering
generated code, we store this bit on the stack, right after the entry
frame.
Design: http://go/dart-ffi-handles
Issue: https://github.com/dart-lang/sdk/issues/36858
Issue: https://github.com/dart-lang/sdk/issues/41319
Change-Id: Idfd7ff69132fb29cc730931a4113d914d4437396
Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-mac-debug-x64-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-nnbd-linux-debug-x64-try,analyzer-nnbd-linux-release-try,front-end-nnbd-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145591
Commit-Queue: Daco Harkes <dacoharkes@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2020-06-12 11:14:22 +00:00
Konstantin Shcheglov
c6ca3180df
Support null shorting for FunctionExpressionInvocation.
...
Change-Id: I470c85574662d70517aa880e5c094d54226efa11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150668
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
2020-06-10 16:25:57 +00:00
Konstantin Shcheglov
3137a91d3c
Enable type inference for local variables with initializers of type Never.
...
Bug: https://github.com/dart-lang/sdk/issues/42205
Change-Id: I7b032734b18fdb86e48270118b4dd91184594e12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150474
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Paul Berry <paulberry@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2020-06-09 17:27:35 +00:00