Commit Graph

154 Commits

Author SHA1 Message Date
Parker Lougheed 13f9258511 [analyzer] Fix minor diagnostic message spelling mistakes
Change-Id: I37bb816d814fa804ab35716b6f75f08782ef00e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258720
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-09-11 17:54:26 +00:00
Brian Wilkerson 883464d89d Fix a typo in some docs
Change-Id: I13b9490cc1ac4ae1bb8beb40910dd45a269ee568
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257123
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-01 00:34:19 +00:00
Brian Wilkerson 61af13bf29 Use var more consistently in the documentation generator
Change-Id: I44fedefa38c34ea6813cc845aab9a0ba29abd0e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254944
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-15 03:50:16 +00:00
Sam Rawlins 2bedf1e55d Improve UNUSED_ELEMENT documentation
For https://github.com/dart-lang/linter/pull/3513

Change-Id: Ia522fc8958c2c7c48e3366a874ceae28cb9ed6bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253302
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2022-08-02 20:18:19 +00:00
Brian Wilkerson 1c45840b4b Fix a typo in the docs and add a todo
Change-Id: I4e61af2a34309adfba178c7e730050d7c0a83a5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252802
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-07-27 15:53:07 +00:00
Konstantin Shcheglov b322011597 Pull LibraryCycle into LibraryFileStateKind.
Only libraries can form library cycles.

Include library cycles with their API signatures into dumps.
This lets us see how new LibraryCycle instances are created, and
how API signatures are affected by changes to files.

Change-Id: I33d9e6dab34079821b68388a70d5d56f1b39671b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249781
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-27 16:26:22 +00:00
Daco Harkes a855030120 [vm/ffi] Allow struct nesting with looser packing
C compilers don't enforce nesting rules. `dart:ffi` was enforcing these
rules causing issues for binding to C libraries having looser packing
for nested structs than outer structs.

This CL completely removes the error from the analyzer and CFE.
(As an alternative we could have kept a hint/lint, but this might create
more noise than value.)

TEST=pkg/analyzer/test/src/diagnostics/packed_nesting_non_packed_test.dart

Closes: https://github.com/dart-lang/sdk/issues/46644
Change-Id: Iae2d5c885546f7799bc6dea2f8cd7dd508216a0c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247382
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-06-09 19:08:43 +00:00
Ahmed Ashour 894b1da29d [analyzer] correct range for ABI_SPECIFIC_INTEGER_MAPPING_UNSUPPORTED
Fixes #49134

Change-Id: I4e34d5a2b9c2b55b96417463cd79f865f8dd10be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246242
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2022-06-09 16:26:43 +00:00
Brian Wilkerson 59499d81cb Fix links in diagnostic documentation
Change-Id: I6f2ecf4e460b18c9d6a772484854fddd514e923e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246422
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-05-31 20:14:34 +00:00
Brian Wilkerson 264f5255db Add new diagnostic documentation
Change-Id: I1f8b96e7f7904cc4d1ec51938ee6099a2ed53c05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246400
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-05-28 22:51:30 +00:00
Brian Wilkerson 909dbe509d Merge two diagnostic codes for documentation purposes
Change-Id: Ib1f75add55f2638d8031723b9bf225cb02acf1ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241400
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-04-17 20:00:16 +00:00
Arseny Uskov fa452826ee [Analyzer] Improve message for missing_annotation_on_struct_field
Closes https://github.com/dart-lang/sdk/issues/48256

Change-Id: I3a44cec050c701b1d03cd21ca2c8a51427ea2ad4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241280
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-04-15 22:43:44 +00:00
Daco Harkes 532c116cd2 [vm] Implement NativeFinalizer
This CL implements `NativeFinalizer` in the GC.

`FinalizerEntry`s are extended to track `external_size` and in which
`Heap::Space` the finalizable value is.

On attaching a native finalizer, the external size is added to the
relevant heap. When the finalizable value is promoted from new to old
space, the external size is promoted as well. And when a native
finalizer is run or is detached, the external size is removed from the
relevant heap again.

In contrast to Dart `Finalizer`s, `NativeFinalizer`s are run on isolate
shutdown.

When the `NativeFinalizer`s themselves are collected, the finalizers are
not run. Users should stick the native finalizer in a global variable to
ensure finalization. We will revisit this design when we add send and
exit support, because there is a design space to explore what to do in
that case. This current solution promises the least to users.

In this implementation native finalizers have a Dart entry to clean up
the entries from the `all_entries` field of the finalizer. We should
consider using another data structure that avoids the need for this Dart
entry. See the TODO left in the code.

Bug: https://github.com/dart-lang/sdk/issues/47777

TEST=runtime/tests/vm/dart(_2)/isolates/fast_object_copy_test.dart
TEST=runtime/vm/object_test.cc
TEST=tests/ffi(_2)/vmspecific_native_finalizer_*

Change-Id: I8f594c80c3c344ad83e1f2de10de028eb8456121
Cq-Include-Trybots: luci.dart.try:vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-reload-linux-debug-x64-try,vm-ffi-android-debug-arm64c-try,dart-sdk-mac-arm64-try,vm-kernel-mac-release-arm64-try,pkg-mac-release-arm64-try,vm-kernel-precomp-nnbd-mac-release-arm64-try,vm-kernel-win-debug-x64c-try,vm-kernel-win-debug-x64-try,vm-kernel-precomp-win-debug-x64c-try,vm-kernel-nnbd-win-release-ia32-try,vm-ffi-android-debug-arm-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-kernel-mac-debug-x64-try,vm-kernel-nnbd-mac-debug-x64-try,vm-kernel-nnbd-linux-debug-ia32-try,benchmark-linux-try,flutter-frontend-try,pkg-linux-debug-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-gcc-linux-try,vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236320
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2022-03-26 09:41:21 +00:00
Brian Wilkerson a5ca4b57fe Add documentation for the newest diagnostics
Change-Id: Ia649012c061f5d155d0a045ddb4bf72e61ac0f46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/238164
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-03-23 13:42:20 +00:00
Parker Lougheed edc352030c [pkg/analyzer] Fix some minor diagnostic message issues
Change-Id: I7eb437eda9eb1683274ba302148759553c68af5d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-02-27 18:41:33 +00:00
Brian Wilkerson 2f9d45b8bf Add new diagnostic documentation
This also adds links for some annotation in `meta` that were in existing
tests.

Change-Id: I8260e0d4f40f88228c953ead19b77680c2f69ef4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234449
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-02-26 21:20:24 +00:00
Konstantin Shcheglov 0962b173d6 Replace 'enumeration' with 'enum' in messages.yaml
Change-Id: I62d389bb9462a15f2b08d2fb313fc1a3fca74379
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231742
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-04 22:00:41 +00:00
Konstantin Shcheglov 14bead484c Report more enum hierarchy errors for enums.
Change-Id: I9ffc41ce9cbc9a51b059dc8a891e59420232d047
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231536
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-04 18:51:39 +00:00
Konstantin Shcheglov 22a8295295 Report INVALID_REFERENCE_TO_GENERATIVE_ENUM_CONSTRUCTOR instead of INSTANTIATE_ENUM when enhanced-enums.
Change-Id: I634b3e50641b2b696b4d9e164266b43fdc72f137
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231063
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-01 23:58:45 +00:00
Brian Wilkerson 7272aadca4 Add diagnostic documentation for most of the ffi diagnostics
Change-Id: I37ba1852dea9c7e53966050eafaed9bb61cffbb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229580
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-01-24 20:02:27 +00:00
Brian Wilkerson 3fbe18b612 Replace "field formal" with "initializing formal" in diagnostic documentation
This appears to be the more widely used term for formal parameters of the
form `this.x`, and the docs ought to reflect common usage.

Also, fixes a typo in one other message.

Change-Id: I261d05e78f813db91a1df072bd72356a5e366226
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228600
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-01-18 23:18:45 +00:00
Brian Wilkerson ccc1656eb0 Improve the message when the required keyword needs to replace the required annotation
Fixes https://github.com/dart-lang/sdk/issues/46841

Change-Id: If318064a901f3cf1cbcf117ad392d72a9cf004fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/226460
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-01-05 16:38:25 +00:00
Sam Rawlins b16b0322b9 Reland "analyzer: Report missing return for nullable return types"
This is a reland of 93bcdf0329

Original change's description:
> analyzer: Report missing return for nullable return types
>
> This is implemented as a new HintCode, but it could be a new Warning, if
> we'd like to stop adding new Hints.
>
> There is also a dartfix available in this change.
>
> Fixes https://github.com/dart-lang/sdk/issues/46656
>
> Change-Id: I8e93e576d2bd09a8ff02d52c12bbb9ec6adff9c2
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220803
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
> Commit-Queue: Samuel Rawlins <srawlins@google.com>

Change-Id: I369b2dc38db0dc278f50b55aab67da53a5a63a8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/225400
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-12-22 18:46:14 +00:00
Alexander Thomas 3b5d06e449 Revert "analyzer: Report missing return for nullable return types"
This reverts commit 93bcdf0329.

Reason for revert: Broke google3 rolls.

Original change's description:
> analyzer: Report missing return for nullable return types
>
> This is implemented as a new HintCode, but it could be a new Warning, if
> we'd like to stop adding new Hints.
>
> There is also a dartfix available in this change.
>
> Fixes https://github.com/dart-lang/sdk/issues/46656
>
> Change-Id: I8e93e576d2bd09a8ff02d52c12bbb9ec6adff9c2
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220803
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
> Commit-Queue: Samuel Rawlins <srawlins@google.com>

TBR=scheglov@google.com,brianwilkerson@google.com,srawlins@google.com

Change-Id: I122be4cb1d07f7f95334d2d5cbac1de4bd597d15
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/224950
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2021-12-22 08:38:52 +00:00
Sam Rawlins 93bcdf0329 analyzer: Report missing return for nullable return types
This is implemented as a new HintCode, but it could be a new Warning, if
we'd like to stop adding new Hints.

There is also a dartfix available in this change.

Fixes https://github.com/dart-lang/sdk/issues/46656

Change-Id: I8e93e576d2bd09a8ff02d52c12bbb9ec6adff9c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220803
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-12-21 18:22:03 +00:00
Brian Wilkerson 0d6df5a1f1 Use contractions in the docs in a couple more places
Change-Id: Ic685ba6d74f3f495d740b3396663aa9ad25df768
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220221
Reviewed-by: Kathy Walrath <kathyw@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-11-17 18:22:48 +00:00
pq b403d4bf73 Reland "hints for text_direction_code_points"
This is a reland of 39008c8243

Original change's description:
> hints for text_direction_code_points
>
> Fixes: https://github.com/dart-lang/sdk/issues/47611
>
> Related: https://github.com/flutter/flutter/pull/93034
>
>
> Change-Id: Ia6bac44e1c9a7ef25f01683b8414b9818822cb7f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219123
> Commit-Queue: Phil Quitslund <pquitslund@google.com>
> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Reviewed-by: Kathy Walrath <kathyw@google.com>

Change-Id: Ib200aa2e6f1a323a6d01cc3c051657fd48f41251
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219750
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Kathy Walrath <kathyw@google.com>
2021-11-10 00:09:33 +00:00
Siva Annamalai 90749574b6 Revert "hints for text_direction_code_points"
This reverts commit 39008c8243.

Reason for revert: breaks G3 builds please see https://ci.chromium.org/p/dart/builders/ci.sandbox/google

Original change's description:
> hints for text_direction_code_points
>
> Fixes: https://github.com/dart-lang/sdk/issues/47611
>
> Related: https://github.com/flutter/flutter/pull/93034
>
>
> Change-Id: Ia6bac44e1c9a7ef25f01683b8414b9818822cb7f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219123
> Commit-Queue: Phil Quitslund <pquitslund@google.com>
> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Reviewed-by: Kathy Walrath <kathyw@google.com>

TBR=lrn@google.com,brianwilkerson@google.com,pquitslund@google.com,sra@google.com,kathyw@google.com

Change-Id: I82c2b471bc9566222db4616bba501534c35b4f9e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219747
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2021-11-08 22:48:43 +00:00
Sam Rawlins 8900608365 Report fewer duplicate errors for invalid superinitializers
Fixes https://github.com/dart-lang/sdk/issues/45958

Move check out of old checker.dart, into (less old) error_verifier.dart
and move test case out of old checker_test.dart. Add valid test case.

Rename INVALID_SUPER_INVOCATION to SUPER_INVOCATION_NOT_LAST, and
correct comment on that code (it has a parameter).

Do not duplicate report that code with MULTIPLE_SUPER_INVOCATIONS or
with SUPER_IN_REDIRECTING_CONSTRUCTOR.

Change-Id: I26e28b345fd8cef8ed2c9ec89ab12b56ea1c2f37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218982
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-11-08 18:53:42 +00:00
pq 39008c8243 hints for text_direction_code_points
Fixes: https://github.com/dart-lang/sdk/issues/47611

Related: https://github.com/flutter/flutter/pull/93034


Change-Id: Ia6bac44e1c9a7ef25f01683b8414b9818822cb7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219123
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Kathy Walrath <kathyw@google.com>
2021-11-08 18:38:28 +00:00
Sam Rawlins 2ad8673059 Add 'previousName' field to ErrorCodeInfo for renamed errors
Bug: https://github.com/dart-lang/site-www/issues/3652
Change-Id: I7172691217c5d9447505b1a953ca1dda1825443d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-11-04 17:06:34 +00:00
Sam Rawlins 930697a158 Improve messaging of invalid yield type
Fixes https://github.com/dart-lang/sdk/issues/47379

We use a separate message for yield expressions, so that the yielded
type can be used. In checking against the yielded type, we also stop
reporting in some cases, which removes duplicate errors.

Change-Id: I2ce036086ca06d5ff32531afd4b1812f17b908ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218745
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-11-01 15:28:51 +00:00
Ahmed Ashour d041cf0478 Remove extra the, be and of
Fixes #https://github.com/dart-lang/sdk/issues/47504

TEST=No tests needed, only comments affected.

Change-Id: Ie096307b5ce314d328fea6780f396aaa226ad3b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216182
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2021-10-20 09:29:01 +00:00
Paul Berry 04c8ef2bf1 Reduce the use of <unnamed> in analyzer error messages.
Two error messages are affected:

1. When the user tries to access a static member of an extension
through an instance of a class that mentions the extension's "on"
type, and that extension is unnamed, we now report
INSTANCE_ACCESS_TO_STATIC_MEMBER_OF_UNNAMED_EXTENSION instead of
INSTANCE_ACCESS_TO_STATIC_MEMBER.  The new error message is the same
as the old one (and uses the same sharedName), but it omits the
correction message suggesting to the user that they try accessing the
static method directly via the extension name, since this advice
doesn't apply.

2. When we report AMBIGUOUS_EXTENSION_MEMBER_ACCESS, if one of the
ambiguous members comes from an unnamed extension, we now report the
unnamed extension as "unnamed extension on '$type'" rather than
referring it to as an extension named `<unnamed>`.

Change-Id: I3ca3a1ccc9399b26b083040de20db8e4f691be32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217102
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-10-18 19:27:18 +00:00
Paul Berry 267323de7d Remove unnecessary declaration names from error codes.
The errors HintCode.INVALID_VISIBLE_FOR_OVERRIDING_ANNOTATION and
CompileTimeErrorCode.EXTENSION_CONFLICTING_STATIC_AND_INSTANCE didn't
really need to name the enclosing declaration, since the user can
easily find the enclosing declaration from the location of the error
message.  Without this change, there are some situations where an
error message would awkwardly refer to an unnamed extension as having
the name `<unnamed>`.

Change-Id: I4ddec389f18e78167464b1b5c35556e92dd1c15f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216860
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-10-18 18:26:04 +00:00
Paul Berry 72daafd70c Fix correction message for CompileTimeErrorCode.INSTANCE_ACCESS_TO_STATIC_MEMBER.
Previously, it assumed that the static member was always a class; it
could also be an extension or a mixin, and the extension could be
unnamed.  This change causes extensions (named and unnamed) to be
handled properly.

Handling mixins will be more complicated (since it will require
expanding ElementKind to include mixins), so that is not addressed
right now (see https://github.com/dart-lang/sdk/issues/47452).

Change-Id: Ie01a6abfdb560d97e545d36255909da19500b3c4
Bug: https://github.com/dart-lang/sdk/issues/47452
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216680
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-10-14 22:13:55 +00:00
Brian Wilkerson d6936a5749 Make the use of Example and Examples more consistent
I think the headings are now 'correct' in the sense that they are
singular when there's a single example and plural when there is more
than one.

In the process I noticed that we have a similar problem with 'Common
fixes' in that sometimes there's one fix and sometimes multiple. I
don't think it would read well to say 'Common fix', so I'm disinclined
to change those, but it makes me wonder whether I should have just
used 'Examples' everywhere.

Change-Id: Idbfc3354b52cf1da677db51f4c626bb3269465b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215983
Commit-Queue: Kathy Walrath <kathyw@google.com>
Reviewed-by: Kathy Walrath <kathyw@google.com>
2021-10-13 21:41:17 +00:00
Konstantin Shcheglov aeb6767650 Issue 47407. Move USE_OF_NATIVE_EXTENSION to CompileTimeErrorCode.
Bug: https://github.com/dart-lang/sdk/issues/47407
Change-Id: I342579ecac391ffc013cf7f05e81584996a7eea8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216268
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-10-12 16:13:30 +00:00
Paul Berry c52a4261c0 Modify analyzer documentation handling tools to read from messages.yaml.
Previously, `pkg/analyzer/test/verify_diagnostics_test.dart` and
`pkg/analyzer/tool/diagnostics/generate.dart` extracted documentation
from the code of the analyzer error classes.  However, since this code
is generated from `messages.yaml`, it's much cleaner to just extract
the documentation directly from the YAML.

Change-Id: I7dc3eb73abbf5d72f203abbf04e43856b60d2a89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215648
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-10-07 13:17:13 +00:00
Paul Berry 25532307c4 Clean up code for parsing analyzer documentation and extracting code samples.
Previously this logic was duplicated in two separate locations,
`verify_diagnostics_test.dart` and the code generator for
`diagnostics.md`.  Unifying it will pave the way for a follow-up CL in
which I intend to parse the documentation directly from the
`messages.yaml` files (rather than from comments in the analyzer
classes that are generated from those files).

I've also taken this opportunity to add some more checks to the
parsing logic, so that mistakes in the documentation (e.g. misspelling
a section header) will be reported as errors rather than causing a
silent loss of functionality.

Change-Id: Icfcb52229eb94bb06bc57334e265ef4d6db299de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215580
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-10-05 17:29:41 +00:00
Paul Berry 90cfd7afd0 Rename syntactic_errors.analyzer.g.dart to syntactic_errors.g.dart
Change-Id: Ibf80d44306313950c309af76122151086c7e7dc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215362
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-10-04 15:09:46 +00:00
Paul Berry 33f69b0ced Clean up documentation/comments handling for shared errors.
For errors that are shared between the front end and the analyzer, we
move the `documentation` and `comment` fields from
`pkg/analyzer/messages.yaml` to `pkg/front_end/messages.yaml` (where
the rest of the information about the error is).  This eliminates the
need to have any entries at all for these shared errors in the
`pkg/analyzer/messages.yaml` file, so we no longer need the boolean
flag `copyFromCfe` in this file.

This simplifies generation of analyzer error codes, so we go ahead and
take this opportuntity to remove the old `syntactic_errors.g.dart`
file, and instead code generate all the shared messages directly into
`syntactic_errors.analyzer.g.dart`.

In a follow-up CL I'll rename `syntactic_errors.analyzer.g.dart` back
to `syntactic_errors.g.dart` to reduce confusion.

Change-Id: I1e314e51c94ef595d9d6de8ba2b30e12a18382a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215155
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-10-04 13:03:26 +00:00
Paul Berry 97255ff97e Code generate analyzer errors from the analyzer's messages.yaml file.
Change-Id: I1687acd7c777733caf93e20d703554c2a7da26cc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214304
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-10-01 15:24:13 +00:00
Paul Berry 15a028d5ec Fix SDK version associated with SDK_VERSION_GT_GT_GT_OPERATOR hint.
The `>>>` operator wasn't released until 2.14.0, not 2.3.2.

Change-Id: Ief7b7b3982109a290d229a1ede817e66bc10a6c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214660
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-09-27 16:17:43 +00:00
Paul Berry 94a079896b Fix error message comments to work with documentation extraction tool.
The tool `pkg/analyzer/tool/diagnostics/generate.dart` is very
particular about the format of documentation it recognizes.  This CL
corrects a few minor inconsistencies that were causing it to miss some
documentation.

Change-Id: Iac937666426e987d597323e314f60971c15371be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214421
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-09-27 14:11:33 +00:00
Brian Wilkerson 84c56cc846 Add more documentation for diagnostics
Change-Id: Ic135d6645a8987e9eab0e0ed406a076c81b7b4c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214507
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-09-26 16:48:33 +00:00
Sam Rawlins 1379c867a4 Check type parameters in const function tearoff
Fixes https://github.com/dart-lang/sdk/issues/47213

Change-Id: I6c1c7e386e64b877e1ea7d312335d924488f2306
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214134
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-09-22 19:36:04 +00:00
Paul Berry 3ae5055f75 Translate named placeholders to positional in generation of syntactic_errors.g.dart.
Previously, if a CFE error contained a placeholder (such as
`#string`), that wasn't converted to the equivalent analyzer
placeholder, which meant that analyzer error reporting logic needed to
know whether the error being reported came from the CFE or the
analyzer in order to report the error correctly, otherwise the
placeholder text would just show up verbatim in the analyzer output.

Change-Id: If875de3a1a80048700b0edf458377c5fc87a15d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213281
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-09-20 17:51:40 +00:00
Paul Berry a9873f195f Fix error message text for INVALID_MODIFIER_ON_SETTER.
This error message was previously reported by the analyzer's parser,
which presumably supplied an argument describing the modifier.  It is
now reported by the shared parser, which doesn't supply any additional
information.  As a result, the error message was showing up for the
user as "The modifier '{0}' can't be applied to the body of a setter."
(with a literal `{0}` visible to the user).

Changed the error message text to match what the CFE reports.  There's
no real need for the message to describe the modifier since the error
message location is the modifier itself.

Change-Id: I538d49c1b693fe6cfb190f584bb5c9ab5cd3cf39
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213732
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-09-17 16:38:39 +00:00
Brian Wilkerson 9605ca2980 Fix an inconsistency in terminolgy in the documentation
Change-Id: If3e7d74af72c4d3c4e533d2c3dcd880c4f2b5bf1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213622
Auto-Submit: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-09-16 17:10:35 +00:00