dart-sdk/pkg/front_end
Martin Kustermann 81df36216f Make utf8.encode() have Uint8List return type
Right now `utf8.encode()` has a static return type of `List<int>`
due to extending `Encoding` (which extends `Codec<String, List<int>>`).

We cannot easily change `Encoding` to extend `Codec<String, Uint8List>`
because that would also change `utf8.decode()` to require `Uint8List`
which would be a breaking change.

So instead we override `utf8.encode()` to have more precise return type.

Some parts of our SDK are run using the checked-in SDK, so it cannot
rely on the changed return type yet (until checked-in SDK is rolled).

So we use `const Utf8Encoder().convert()` as a temporary change, as
that already has `Uint8List` return type.

Issue https://github.com/dart-lang/sdk/issues/52801

TEST=ci

CoreLibraryReviewExempt: More precise return type for existing API
Change-Id: I2861d1f0eb3d292d8e3ec8437c0d441a2d2bd193
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254903
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2023-07-11 08:54:33 +00:00
..
benchmarks
lib Make utf8.encode() have Uint8List return type 2023-07-11 08:54:33 +00:00
outline_extraction_testcases [flip-modifiers] Make tests and outline extraction tests mixins. 2023-03-08 16:11:30 +00:00
parser_testcases [parser] Use endInvalidYieldStatement for async methods 2023-06-14 12:10:59 +00:00
test Make utf8.encode() have Uint8List return type 2023-07-11 08:54:33 +00:00
testcases [cfe] Handle inline class representation field in object pattern 2023-07-10 11:02:50 +00:00
tool Make utf8.encode() have Uint8List return type 2023-07-11 08:54:33 +00:00
analysis_options.yaml Replace deprecated lint rules in front-end packages 2023-05-23 14:01:49 +00:00
analysis_options_no_lints.yaml
error_recovery.yaml
LICENSE
messages.status [vm] Async FFI callbacks 2023-06-28 01:00:18 +00:00
messages.yaml [vm] Async FFI callbacks 2023-06-28 01:00:18 +00:00
OWNERS
PRESUBMIT.py
pubspec.yaml Upgrade pkg/front_end to language version 3.0 2023-05-25 06:11:11 +00:00
README.md
testing.json
testing_with_lints.json

Front end for Dart

This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.

End-users should use the dart analyze command-line tool to analyze their Dart code.

Integrators that want to write tools that analyze Dart code should use the analyzer package.

Note: A previous version of this package was published on pub.dev. It has now been marked DISCONTINUED as it is not intended for direct consumption, as per the notes above.