Find a file
Paul Berry 524a7da141 Rewrite DeclarationResolver to match declarations to elements by order rather than offset.
Previously, DeclarationResolver matched declarations to elements using their offsets in the file.  This meant that it could not work with element models built from a summary, since those element models are not guaranteed to contain offsets.  Now, DeclarationResolver assumes that elements appear in the same order in the element model as they do in the file, so it can just match them up using their order.

DeclarationResolver continues to verify element names as it does its matching, so if the ordering of elements ever fails to match up with the ordering of declarations, an exception is almost certain to be thrown.  (The only time it wouldn't be is if the mismatch can't be detected due to multiple elements having the same name).

The new implementation is ~1.6x faster than the previous one.

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

Review URL: https://codereview.chromium.org/2419633002 .
2016-10-13 12:24:54 -07:00
build Enable GN ASAN builds for Linux 2016-10-05 13:43:29 -07:00
client Switch over testing pub seperately from the the normal packages 2015-06-09 08:12:51 +02:00
docs/language Make it a compile-time error if a library has part "uri"; twice for the same uri. 2016-10-05 11:12:22 +02:00
pkg Rewrite DeclarationResolver to match declarations to elements by order rather than offset. 2016-10-13 12:24:54 -07:00
runtime VM: Make optimized try-catch work in DBC. 2016-10-13 11:36:23 -07:00
samples Delete dart_backend from compiler. 2016-08-04 15:57:04 -07:00
samples-dev Untested hacks to swarm to avoid warnings. 2016-07-26 15:24:36 -07:00
sdk Revert "Give useful message for null derefs" 2016-10-10 13:11:44 -07:00
tests VM: Make optimized try-catch work in DBC. 2016-10-13 11:36:23 -07:00
third_party GN: Disable clang for simulators hosted on ia32 2016-10-07 09:55:58 -07:00
tools Updated to latest WebKit changes and removed usage of obsolete environment variable 2016-10-13 06:33:04 -07:00
utils Use list_dart_files.py instead of list_files.py in GN build. 2016-10-05 07:50:40 -07:00
.gitattributes use pkg/dev_compiler in the build 2016-08-31 18:05:17 -07:00
.gitignore Ignore CMakeLists.txt 2016-10-07 15:38:08 -07:00
.gn Starting work on full GN build 2016-09-23 07:47:36 -07:00
.mailmap Add .mailmap file. 2015-05-18 19:33:16 +02:00
.packages Use checked-in .package file for building and testing 2016-09-16 15:03:18 +02:00
.travis.yml Travis / chrome fixes 2016-10-06 08:33:06 -07:00
AUTHORS Add Cristian Almstrand to AUTHORS 2015-07-16 09:51:56 -07:00
BUILD.gn Use list_dart_files.py instead of list_files.py in GN build. 2016-10-05 07:50:40 -07:00
CHANGELOG.md Start working on version 1.21 2016-09-30 11:49:21 +02:00
codereview.settings Remove trailing slash in codereview.settings to fix review url double slash 2015-10-01 07:27:13 -07:00
create_sdk.gyp Delete dart_backend from compiler. 2016-08-04 15:57:04 -07:00
dart.gyp Remove package root target and support scripts 2016-09-20 13:32:50 +02:00
DEPS Move 'linter' to 0.1.28 tag. 2016-10-11 21:32:57 -07:00
LICENSE Remove the Dromaeo and TodoMVC samples. 2016-01-11 13:09:26 -08:00
PATENTS Move LICENSE, AUTHORS, PATENTS into the dart directory. 2014-02-10 06:48:47 +00:00
PRESUBMIT.py
README.dart-sdk remove docgen from the sdk 2015-09-18 13:18:10 -07:00
README.md Links to how to get the source and build it. 2015-08-05 08:05:07 -07:00
WATCHLISTS Remove tools directory from WATCHLISTS 2016-02-16 14:30:06 +01:00

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

Visit the dartlang.org to learn more about the language, tools, getting started, and more.

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

Building Dart

Learn how to get the source and prepare your machine to build the SDK.

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.

License

See LICENSE.