mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:21:18 +00:00
6cc9b43535
All passes must now preserve valid parent pointers. Several passes already did this (or tried to do it). The IR integrity checker can now check that parent pointers are valid. This has caught a number of missing parent pointers assignments in passes that otherwise tried to preserve them. All node constructors now set parent pointers. This is very convenient for simple transformations, but also a bit of a trap since updating a field on an existing node does not update the parent pointer. This is a pretty heavy-handed change. The main rationale for it are: - The helpers methods require parent pointers, so they are more useful when parent pointers are always set. - The integrity checker can catch bogus parent pointers after passes that have to maintain them anyway. - The integrity checker is super slow, but this can finally be fixed if it can assume parent pointers are valid (not part of this CL). The IR visitors have been changed a bit to support a generic parent visitor that does not have to implement every visit method. The 'parent index' fields have been removed. BUG= R=kmillikin@google.com Review URL: https://codereview.chromium.org//1375213003 . |
||
---|---|---|
.. | ||
_chrome | ||
benchmark_smoke | ||
co19 | ||
compiler | ||
corelib | ||
html | ||
isolate | ||
language | ||
lib | ||
standalone | ||
try | ||
utils | ||
light_unittest.dart | ||
README |
Run Existing Tests ================== See the output of ../tools/test.py --help for how to run tests. See also https://code.google.com/p/dart/wiki/Building#Testing for detailed examples. Create New Tests ================ See comments above factory StandardTestSuite.forDirectory in ../tools/testing/dart/test_suite.dart for the default test directory layout. By default test-file names must end in "_test.dart", but some test suites, such as ./co19, subclass StandardTestSuite and override this default. See comments at the beginning of ../tools/testing/dart/multitest.dart for how to create tests that pass by failing with a known error. For example, ... int x = "not an int"; /// 01: static type warning ... as part of a test will only pass the "--compiler dartanalyzer" test if the assignment generates a static type warning.