Commit Graph

1972 Commits

Author SHA1 Message Date
Aske Simon Christensen 0c03458717 Reland "Treat most warnings as errors in strong mode."
Reland of https://dart-review.googlesource.com/c/sdk/+/29160

Adds a 'severity' field to diagnostic messages and replaces all
addWarning and addNit functions by a generic addProblem, which uses
the intrinsic severity of the message. Eventually, errors should
also be reported this way.

A special severity value maps into either warning or error for Dart 1
and Dart 2, respectively. Most Dart 1 warnings are in this category.

Fixes some 320 failures of DDK test expecting a compile-time error.
These were previously masked by a workaround in the DDC error handler
which has now been removed.

Closes https://github.com/dart-lang/sdk/issues/31286

Change-Id: Id3b3b7f1fc6a101639fc908c90f3ec7d304a7b4b
Reviewed-on: https://dart-review.googlesource.com/32580
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-08 09:20:02 +00:00
Dmitry Stefantsov d9f7f81961 Add tests of instantiate to bound in fasta
Change-Id: Ie4940c9fda24abcfd038409e993f208a6ba0a94a
Reviewed-on: https://dart-review.googlesource.com/31940
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2018-01-08 08:35:22 +00:00
Paul Berry eeb903499d Test more for-each downward inference corner cases.
Note that the annotation "/*@target=C::aField*/" is duplicated in the
test due to #31790.

Change-Id: Ie3cf2dea7efb9ae46310ee069a588feb37855201
Reviewed-on: https://dart-review.googlesource.com/32862
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-08 02:52:33 +00:00
Konstantin Shcheglov 560fb2998d Don't add empty leading/trailing strings in multiline strings.
Bug:
Change-Id: Ia556ecb8bbffe94808de34340d60cfff74464476
Reviewed-on: https://dart-review.googlesource.com/32520
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-05 17:01:49 +00:00
Dmitry Stefantsov d16eeb5eb8 Use --reify-generic-functions when running strong-mode tests with fasta
Change-Id: Ie16f8a8339c5b646d714e7656df4fceb5ff2a500
Reviewed-on: https://dart-review.googlesource.com/32601
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-05 16:15:48 +00:00
Aske Simon Christensen f454e8bb35 Correctly parse members called 'native'.
In findMemberName(), native directives need only be skipped for getters,
since other member kinds return as soon as the name is found.

Closes https://github.com/dart-lang/sdk/issues/31738

Change-Id: I57fe50f8564c5b5bbb72c84cad9ce640a24b87b9
Reviewed-on: https://dart-review.googlesource.com/32341
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-01-05 09:34:14 +00:00
Paul Berry 879badb850 Implement method type override checking rules in front_end.
Test failures introduced by this change have been marked with issue #31616.

Change-Id: Iddbcedb972b5ad2cf12e3fe588bd38aec76816df
Reviewed-on: https://dart-review.googlesource.com/29742
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-04 22:46:26 +00:00
Aske Simon Christensen 5402f02cbc Revert "Treat most warnings as errors in strong mode."
This reverts commit 3303df8102.

Reason for revert: Tests failing

TBR=ahe@google.com,askesc@google.com

Change-Id: Ifc8c9def6d134ab1b0c5f094a02a4f57a3581f19
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/32360
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2018-01-04 15:35:17 +00:00
Aske Simon Christensen 3303df8102 Treat most warnings as errors in strong mode.
Adds a 'severity' field to diagnostic messages and replaces all
addWarning and addNit functions by a generic addProblem, which uses
the intrinsic severity of the message. Eventually, errors should
also be reported this way.

A special severity value maps into either warning or error for Dart 1
and Dart 2, respectively. Most Dart 1 warnings are in this category.

Fixes some 320 failures of DDK test expecting a compile-time error.
These were previously masked by a workaround in the DDC error handler
which has now been removed.

Closes https://github.com/dart-lang/sdk/issues/31286

Change-Id: I6acea31b8cba7dec8b318e081d28f4eb4ebbf75c
Reviewed-on: https://dart-review.googlesource.com/29160
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-04 14:56:46 +00:00
Dmitry Stefantsov 1f3b493dcc Add simple instantiate-to-bounds algorithm to the common front-end
Bug:
Change-Id: I65097b037f4b02f0a161c9c183844a3dc3339c77
Reviewed-on: https://dart-review.googlesource.com/29880
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-04 11:31:08 +00:00
Kevin Millikin 6fa813d818 Change handling of Kernel static errors
Before: Kernel static errors were represented by throwing a distinguished
error or else by calling a distinguished library const constructor.

Now: Kernel static errors are represented by InvalidExpression.  To support
error reporting, InvalidExpression has an optional message and a file
offset.  A back end can choose to signal these errors at any time; for
example, when deserializing the binary, or when compiling the procedure
containing the static error, or when the erroneous expression is evaluated
at run time.

InvalidStatement is removed because it can be encoded as ExpressionStatement
of InvalidExpression.

Future work:

* supporting static errors where an expression cannot appear in the AST
* allowing InvalidExpression to contain an Expression for error recovery
* adding a top-level list of static errors and warnings to the binary

Bug: https://github.com/dart-lang/sdk/issues/29840
Change-Id: Ifdfe9a76cee6cefed28061bf245be70531d2f413
Reviewed-on: https://dart-review.googlesource.com/31320
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-04 11:00:25 +00:00
Paul Berry 15c684bf50 Disable implicit instantiation of call methods.
Addresses the performance concern raised in #31746

Change-Id: Iabfb4b871fb7807c0fe625036adfd22d2e6c51ee
Reviewed-on: https://dart-review.googlesource.com/31751
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 23:15:33 +00:00
Konstantin Shcheglov 57d75d3358 Apply resolution to static field references with import prefixes.
Bug:
Change-Id: Ie84c69aea71cd6e5e5c373eba2c4439af524264c
Reviewed-on: https://dart-review.googlesource.com/31747
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 20:20:06 +00:00
Konstantin Shcheglov 6d5f2f09aa Apply resolution to function expression invocations.
Bug:
Change-Id: I895cf9765664f1e9608ec612e4b1897f42cb9d70
Reviewed-on: https://dart-review.googlesource.com/31881
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 19:34:23 +00:00
Aske Simon Christensen de2ce48e17 Finish type variables earlier so their bounds are available when building the program.
Check bounds in verifier.
Fixed an inconsistency in the printing of parent nodes in the verifier.

Closes https://github.com/dart-lang/sdk/issues/30838
Closes https://github.com/dart-lang/sdk/issues/31213
Closes https://github.com/dart-lang/sdk/issues/31700

Change-Id: I328ca2c5bfa01a6753a806abd2510c98fa2b7cfe
Reviewed-on: https://dart-review.googlesource.com/22500
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-22 11:06:52 +00:00
Aske Simon Christensen 43b1c68803 Error on super as expression
Report error when super is used as an expression outside
an initializer. Consolidated some error messages.

Change-Id: Iafaeeeff8a4b72f941925cefcbc832ba47f02a79
Reviewed-on: https://dart-review.googlesource.com/23360
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-21 17:25:51 +00:00
Peter von der Ahé d1543b3986 Don't include .dill artifacts in delta program
Change-Id: Ibbcb490cdaca57c600bcf4b9783d889644e8af00
Reviewed-on: https://dart-review.googlesource.com/30822
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-20 15:58:02 +00:00
Dan Rubel 76f30b99f5 Add fasta parser interpolation expression recovery
Change-Id: I45942cf29a86feadcd15fe61432681903658f945
Reviewed-on: https://dart-review.googlesource.com/30360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 18:04:46 +00:00
Konstantin Shcheglov 31a0fe292d Remember import prefix name for static references.
Bug:
Change-Id: Ib71a9cc8e6c65d597f24c20c0260f7f37ef3674f
Reviewed-on: https://dart-review.googlesource.com/28541
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-12-16 05:09:35 +00:00
Paul Berry f52cc1b382 Get rid of the clumsy while loop in inferInvocation.
See discussion in
https://dart-review.googlesource.com/c/sdk/+/29744/3/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart#892
Change-Id: I7b63269573749a61ff9e211d9df8676eae66b7e7
Reviewed-on: https://dart-review.googlesource.com/30000
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-15 22:45:53 +00:00
Paul Berry ae9b0c42d7 Add type inference code to generate Instantiation nodes.
Fixes #31586.

Note that none of the back-ends handle Instantiation nodes yet, so the
language_2 tests added in this CL
(instantiate_tearoff_after_contravariance_check_test,
instantiate_tearoff_of_call_test, and instantiate_tearoff_test) fail
pretty much across the board right now.

Includes two fixes to Instantiation.getStaticType and the kernel type checker:

- Previously, they attempted to perform substitution on the full
  function type, which had no effect because the type parameters were
  bound.

- The type checker was not checking that type parameter bounds were
  satisfied.

Note that the front end doesn't yet check that type parameter bounds
are satisfied by the inferred type parameters.  I will address that in
a follow-up CL.

Change-Id: Ib0ad7a5fc5f4a2fdc8c99abe1f2d3d15b21a4974
Reviewed-on: https://dart-review.googlesource.com/29744
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-15 20:41:43 +00:00
Peter von der Ahé 7a40a6c3da Report an error on all classes involved in a cycle
Change-Id: I80221caf1f17acfe50b3c77da8e86e1bff54c67f
Reviewed-on: https://dart-review.googlesource.com/28724
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-14 08:47:25 +00:00
Konstantin Shcheglov 4804108735 Support for more than one variable defined in a statement.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I9c5163099e46639a58487d217c1895b21bbc754d
Reviewed-on: https://dart-review.googlesource.com/29440
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-13 22:14:24 +00:00
Konstantin Shcheglov 353e0bdefc Apply resolution to formals in AstBuilder tests.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I28a045d1e8640a2a447fae6e9f35bfb6db76790a
Reviewed-on: https://dart-review.googlesource.com/28542
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-12 17:42:51 +00:00
Peter von der Ahé c9026e446e Pass offset to buildSupertype
Change-Id: I4a1cf524e7edbb9bc8d435fbea8a6b4eb440a077
Reviewed-on: https://dart-review.googlesource.com/28302
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2017-12-12 12:22:37 +00:00
Konstantin Shcheglov 5c580dbe21 Remember explicit static get/assign Class and offset.
Revert merging ResolutionApplier with ValidatingResolutionApplier.

Bug:
Change-Id: Ie55ebdcb5d63be26720156a28a68f2727ebc96d3
Reviewed-on: https://dart-review.googlesource.com/28380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-11 21:46:13 +00:00
Paul Berry 7b9025b407 Report errors when type inference fails due to a circularity.
Change-Id: I48e75d86140483d5f3b9c3ad17e47fe2dfdb722e
Reviewed-on: https://dart-review.googlesource.com/28361
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-11 21:24:13 +00:00
Paul Berry 1c6e907fc8 Report errors when type inference fails due to inconsistent overrides.
I will have a follow-up CL to cover type inference failures due to
circularities.

Change-Id: I8c9af501c150d4707ad06e6bbcdc3cabdfbf9207
Reviewed-on: https://dart-review.googlesource.com/28180
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2017-12-11 17:02:45 +00:00
Paul Berry 71b5fa86db Don't invoke type inference listener on synthetic for-in loop assignment.
This avoids the need for a clumsy workaround in the analyzer.

Change-Id: I2ee2ec25a7d13ccaccc4f5b817cf2026f4547378
Reviewed-on: https://dart-review.googlesource.com/27962
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-09 00:09:50 +00:00
Konstantin Shcheglov 8a510b6df9 Remember explicit static invocation Class and offset.
So, on Analyzer side each MethodInvocation with a target has the
reference and the type for this target.

Bug:
Change-Id: I76f142da300910445b3a3fe016fed4d04219e9b6
Reviewed-on: https://dart-review.googlesource.com/26402
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-08 18:07:50 +00:00
Konstantin Shcheglov 39b3e79dfe Apply resolution to CatchClause.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I0203f510802b9b258da608231957c9383f677360
Reviewed-on: https://dart-review.googlesource.com/27503
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-12-08 16:56:18 +00:00
Konstantin Shcheglov 31dfab26e2 Fix for applying resolution to MapLiteral.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: Icc213c310ae49ac315ed6772f88a16337d441475
Reviewed-on: https://dart-review.googlesource.com/27410
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-08 05:53:49 +00:00
Paul Berry 12dc862d9e When type inferring closures, change Null arguments to Object.
Fixes #31546.

Change-Id: I1c69947f4589b6901ac11b2e6c9f6c3624678ad4
Reviewed-on: https://dart-review.googlesource.com/27411
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-08 00:05:39 +00:00
Paul Berry d35f6c79cd Set PropertySet.dispatchCategory.
Fixes #31437.

Change-Id: I9ba84f8a3660e6bbd4dd86761b8f03cd3b414c00
Reviewed-on: https://dart-review.googlesource.com/27086
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-07 17:24:39 +00:00
Peter von der Ahé e66e6d9dec Compile all edits.
Change-Id: I534ce73bf63c0185aa7add2381a8fa418d10bfa8
Reviewed-on: https://dart-review.googlesource.com/27161
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-12-07 13:56:45 +00:00
Paul Berry b75502513a Fix type inference of closures using '=>' syntax.
This CL fixes type inference of closures using '=>' syntax so that
they infer consistently with an equivalent closure defined using block
syntax ('{}').

Fixes #31436.

Change-Id: I5463dd0ba986e9953ebabbc24ce3ced9a7220007
Reviewed-on: https://dart-review.googlesource.com/27084
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-07 04:52:10 +00:00
Paul Berry 5710de9c78 Do assignability checks on return/yield using the greatest closure of the context.
Without this fix, there is a risk that the unknown type ("?") will
leak into kernel code via the "as" expression inserted for an implicit
downcast.

Change-Id: Iea7276c8489eff80fe32f33e53efd42571c94a89
Reviewed-on: https://dart-review.googlesource.com/26861
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-06 22:41:50 +00:00
Konstantin Shcheglov 94907f1aea Apply resolution to FunctionExpression.
Bug:
Change-Id: Iaa8c4b31800fdb9d5a4613417a6076c3af683c6a
Reviewed-on: https://dart-review.googlesource.com/26721
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-06 20:41:40 +00:00
Paul Berry 115d54f0b4 Implement strong mode "invalid cast" rules.
When an implicit cast can be proven by the front end to always fail,
due to the form of the expression being cast, the front end now
reports this as a compile-time error.  (This feature is not new--it is
part of the analyzer's implementation of strong mode).

Newly failing tests are marked with issue #31537.

Change-Id: Ib3fc068352bb91dd283fa4b81d8104fa213eafe9
Reviewed-on: https://dart-review.googlesource.com/26420
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-06 20:01:02 +00:00
Brian Wilkerson 597c9705ab Copy resolution data for cascades
Change-Id: I01b95f5e0b118c56c8af596d5eae919abb40a086
Reviewed-on: https://dart-review.googlesource.com/26680
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-06 18:35:35 +00:00
Paul Berry e3308c2023 Fix overzealous inference of setter parameter types.
Previous to this CL, if a setter had an implicit return type, we
inferred both the return type of the setter and the parameter type,
even if the parameter type was specified.

Change-Id: I24ca8ceddbe021f0d779ffcad4bc63052ed5d87b
Reviewed-on: https://dart-review.googlesource.com/26565
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-12-06 13:59:14 +00:00
Konstantin Shcheglov ef7a229264 Apply resolution to 'is!'.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I8d805c4bd46446005880ea271c2baac5f6c99bda
Reviewed-on: https://dart-review.googlesource.com/26560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-06 06:00:13 +00:00
Konstantin Shcheglov f358176e57 Check that the target of IndexExpression has InterfaceType.
It should be, but in ast_builder tests it is not.

R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I98390b020100a4e17e9930c3796981b83965aeb3
Reviewed-on: https://dart-review.googlesource.com/26562
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-06 06:00:03 +00:00
Konstantin Shcheglov 5c56e6d1cc Apply resolution to default values of optional formal parameters.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: Icbb5c20be4a2dafc3fdc49a36590cace706c82ee
Reviewed-on: https://dart-review.googlesource.com/26463
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-05 23:50:16 +00:00
Sigmund Cherem a10da3ae66 Copy typedef reference when doing operations on function types (like substitutions)
Closes #31521
Bug: https://github.com/dart-lang/sdk/issues/31521
Change-Id: I045974823257cc4e43e3ba348757781a409b92ff
Reviewed-on: https://dart-review.googlesource.com/25722
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2017-12-05 19:12:38 +00:00
Konstantin Shcheglov 1c003c8967 Apply resolution to binary logical expressions.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I96f01f5e19696b43bdd58c2eca5866d6af7c08ee
Reviewed-on: https://dart-review.googlesource.com/26322
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-05 18:26:10 +00:00
Konstantin Shcheglov 6bb1d1a93e Set AdjacentStrings type to String.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I5a2fa448a2e38946bb9310e4240fbe996efb3adc
Reviewed-on: https://dart-review.googlesource.com/26140
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-05 16:20:52 +00:00
Konstantin Shcheglov 401bdbeb06 Apply resolution to ForEachStatement.
Only the case with declared loop variable.

Using externally decalred identifier requires avoiding storing
resolution for ShadowLoopAssignmentStatement while performing inference.

R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: Iec7ab7621d9c7deb3971921731e9115b55aa5b86
Reviewed-on: https://dart-review.googlesource.com/26160
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-05 05:45:41 +00:00
Konstantin Shcheglov ca4b1fcdc3 Use offsets to distinguish StaticGet and PropertyGet for Analyzer's PrefixedIdentifier.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I458facf24099d25a1a0d3632acf1ee562930cec5
Reviewed-on: https://dart-review.googlesource.com/26080
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-12-05 01:49:34 +00:00
Konstantin Shcheglov 93a6d43f31 Apply resolution to 'a ?? b'.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: If0a6c91c99af10992a1cc3465bf1f954c8baca39
Reviewed-on: https://dart-review.googlesource.com/26082
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-05 00:23:56 +00:00