Find a file
Vyacheslav Egorov 7ff975c2e5 [vm/compiler] Fix InferredTypeMetadata::IsTrivial
`IsTrivial` is supposed to return true iff `ToCompileType` would
produce a trivial (dynamic) type. However `IsTrivial` was taking
some of the irrevant parts of the `InferredTypeMetadata` into
account - meaning that it returned `false` where it should have
returned `true`.

This lead us to assign useless `dynamic` result type to various `StaticCall`, some of these calls can later be lowered to
`LoadIndexed` instructions, which will then also get the `dynamic`
result type. This useless type will then take priority over more
precise element type which could be inferred by
`LoadIndexedInstr::ComputeType`

TEST=vm/dart/load_indexed_trivial_type_il_test

Cq-Include-Trybots: luci.dart.try:vm-aot-linux-release-x64-try,vm-aot-linux-debug-simarm_x64-try,vm-aot-linux-debug-x64-try,vm-aot-android-release-arm64c-try
Change-Id: I69ee965ba0d0ac85ede3989680371f0dda19d8a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/325302
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2023-09-12 08:13:12 +00:00
.dart_tool
.github Bump actions/upload-artifact from 3.1.2 to 3.1.3 2023-09-11 17:02:56 +00:00
benchmarks [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
build [Fuchsia] Create CFv2 support 2023-09-12 01:40:52 +00:00
docs
pkg [vm/compiler] Fix InferredTypeMetadata::IsTrivial 2023-09-12 08:13:12 +00:00
runtime [vm/compiler] Fix InferredTypeMetadata::IsTrivial 2023-09-12 08:13:12 +00:00
samples
sdk [vm/compiler] Create leaf runtime entry for memmove. 2023-09-11 21:25:09 +00:00
tests Fix parsing of folded header field values. 2023-09-11 21:13:58 +00:00
third_party [devtools] Remove obsolete update script. 2023-09-01 12:48:31 +00:00
tools [Fuchsia] Create CFv2 support 2023-09-12 01:40:52 +00:00
utils [ddc] Cleanup old "dartdevc" build targets 2023-08-29 21:33:48 +00:00
.clang-format
.gitattributes
.gitconfig
.gitignore [tool] Bisection tool 2023-07-13 13:22:26 +00:00
.gn [Fuchsia] Import test scripts from chromium and use it to download image 2023-08-22 19:59:25 +00:00
.mailmap
.style.yapf
.vpython
AUTHORS
BUILD.gn [Fuchsia] Create CFv2 support 2023-09-12 01:40:52 +00:00
CHANGELOG.md Add changelog entry for NativeCallable 2023-09-11 22:25:06 +00:00
codereview.settings
CONTRIBUTING.md
DEPS Bump dartdoc to f5750f502fdbb887c93cd29aca1e573a92342c53 2023-09-12 00:31:40 +00:00
LICENSE
OWNERS
PATENT_GRANT
PRESUBMIT.py [presubmit] Remove check to keep _2 suites in sync 2023-07-21 16:08:49 +00:00
README.dart-sdk
README.md
sdk.code-workspace
sdk_args.gni
SECURITY.md
WATCHLISTS

Dart

A client-optimized language for fast apps on any platform

Dart is:

  • Optimized for UI: Develop with a programming language specialized around the needs of user interface creation.

  • Productive: Make changes iteratively: use hot reload to see the result instantly in your running app.

  • Fast on all platforms: Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web.

Dart's flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:

  • Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.

  • Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).

Dart platforms illustration

License & patents

Dart is free and open source.

See LICENSE and PATENT_GRANT.

Using Dart

Visit dart.dev to learn more about the language, tools, and to find codelabs.

Browse pub.dev for more packages and libraries contributed by the community and the Dart team.

Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.