A fresh new instance should be allocated after the evaluation of the
argument list for the constructor.
This change modifies the ConstructorInvocation application continuation
to allocate a new object and introduces :
* continuation applications for Redirecting and Super constructor
invocations, applied on evaluated arguments for Redirecting and Super
constructors respectively
* expression continuation for instance initialization, applied to the
new instance
BUG=
R=dmitryas@google.com
Review-Url: https://codereview.chromium.org/2888913002 .
This moves the hash code into the header word for strings on 64 bit
platforms. With the old layout, 9 character strings became 48-byte
objects. With the new layout you have to go to 17 characters before
you are bumped from 4 to 6 words (32 to 48 bytes).
As a side effect, the class ID field is now 16 bits on all platforms
instead of having two different sizes, and the size field is 8 bits
on all platforms.
This also paves the way for moving the hash code for instance objects
into the header, so we won't need the side-lookup in the
hash-table-of-hash-codes on 64 bit platforms.
R=vegorov@google.com
BUG=
Review-Url: https://codereview.chromium.org/2893553002 .
This reverts commit d91f228766.
The commit causes a failure in
tools/build/mac/verify_order _ChromeMain "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}":
unordered symbols in out/Release/Chromium Framework.framework/Versions/A/Chromium Framework:
BUG=
R=dmitryas@google.com
Review-Url: https://codereview.chromium.org/2884383005 .
With this change one can run run_vm_tests and pass to it reference to kernel parser snapshot. For example,
out/DebugX64/run_vm_tests --dfe=out/DebugX64/gen/kernel-service.dart.snapshot Debugger_RemoveBreakpoint
As this represents first step, this change enables only tests in debugger_test.cc to run with kernel frontend. There will be follow-up cls that enable all of the VM tests to use kernel frontend.
BUG=https://github.com/dart-lang/sdk/issues/28264R=asiva@google.com
Review-Url: https://codereview.chromium.org/2881953002 .
Parameters are added which point to the expressions being
inferred--this should help with debugging. Also, printing debug
statements is now enabled by uncommenting a single "with" clause
rather than uncommenting two different print statements.
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2888733005 .
This class needs to implement FunctionTypeAliasElementForLink so that
it can be stored in CompilationUnitElementForLink._functionTypeAliases
(and returned by CompilationUnitElementForLink.functionTypeAliases)
without incurring checked mode errors.
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2888653005 .
Previously we deferred to methods in the TypeInferrerImpl object, on
the theory that we would want to share this code with analyzer AST
type inference. But we are no longer planning to do that, so the
indirection is just cumbersome.
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2890803002 .
This CL makes the following fixes:
- Updates analyzer's front_end_inference_test to represent the bottom
type as "<BottomType>" (consistent with Kernel).
- Implements type inference of "throw" expressions.
- Does not coerce bottom to dynamic when inferring the return type of
a closure.
- Does not coerce Null to dynamic when inferring the return type of a
block closure.
- Ignores bare "return;" statements when inferring the return type of
a block closure.
- Infers Null when a block closure lacks "return <expression>;"
statements.
- Implements correct rules for LUB(Null, x), by treating Null as
bottom.
R=scheglov@google.com
Review-Url: https://codereview.chromium.org/2886873005 .
- uniform quotes
- uniform naming of methods in _checkGrowable
- use .slice(0), it is slightly faster than .slice()
- avoid bounds and type checks in removeWhere/retainWhere
BUG=
R=sigmund@google.com
Review-Url: https://codereview.chromium.org/2880643005 .