Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement constructor tearoffs support in the VM/AOT #46231

Closed
eernstg opened this issue Jun 3, 2021 · 6 comments
Closed

Implement constructor tearoffs support in the VM/AOT #46231

eernstg opened this issue Jun 3, 2021 · 6 comments
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.

Comments

@eernstg
Copy link
Member

eernstg commented Jun 3, 2021

This issue tracks support of the constructor tearoffs feature. See the enclosing meta-issue for details.

@eernstg eernstg added the area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends. label Jun 3, 2021
@franklinyow franklinyow added this to To do in Constructor tear-offs via automation Jun 3, 2021
@alexmarkov
Copy link
Contributor

The tests

co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A02_t05
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t01
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t03
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A03_t04
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t02

currently crash on dartkp-strong-linux-release-x64 and dartkp-weak-asserts-linux-release-x64 configurations.
Example log:

--- Command "vm_compile_to_kernel" (took 03.000326s):
DART_CONFIGURATION=ReleaseX64 /b/s/w/ir/pkg/vm/tool/gen_kernel --enable-experiment=constructor-tearoffs --aot --platform=out/ReleaseX64/vm_platform_strong.dill -o /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_Constructor-tear-offs_tearing_off_from_typedef_A01_t01/out.dill /b/s/w/ir/tests/co19/src/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01.dart --enable-experiment=constructor-tearoffs --packages=/b/s/w/ir/.packages -Ddart.vm.product=false --sound-null-safety

exit code:
0

--- Command "precompiler" (took 02.000818s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/gen_snapshot --enable-experiment=constructor-tearoffs --snapshot-kind=app-aot-assembly --assembly=/b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_Constructor-tear-offs_tearing_off_from_typedef_A01_t01/out.S --enable-experiment=constructor-tearoffs --ignore-unrecognized-flags --packages=/b/s/w/ir/.packages /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_Constructor-tear-offs_tearing_off_from_typedef_A01_t01/out.dill

exit code:
-6

stderr:
===== CRASH =====
si_signo=Segmentation fault(11), si_code=1, si_addr=0x39
version=2.14.0-edge.970ea21f4971f929c2487cdbfa4eb9a2a90877db (be) (Tue Jul 20 09:15:20 2021 +0000) on "linux_x64"
pid=1806, thread=1806, isolate_group=isolate(0x55f033aa7c00), isolate=(nil)((nil))
isolate_instructions=0, vm_instructions=0
  pc 0x000055f0313202ab fp 0x00007fffe58ffa60 dart::LocalScope::CaptureVariable(dart::LocalVariable*)+0xb
  pc 0x000055f031747e9c fp 0x00007fffe58ffaa0 dart::kernel::ScopeBuilder::VisitTypeParameterType()+0x1ac
  pc 0x000055f031747ffc fp 0x00007fffe58ffb40 dart::kernel::ScopeBuilder::AddVariableDeclarationParameter(long, dart::kernel::ScopeBuilder::ParameterTypeCheckMode, dart::kernel::ProcedureAttributesMetadata const&)+0xcc
  pc 0x000055f0317441e6 fp 0x00007fffe58ffcc0 dart::kernel::ScopeBuilder::BuildScopes()+0x1076
  pc 0x000055f0312bb6f7 fp 0x00007fffe58ffff0 dart::ParsedFunction::EnsureKernelScopes()+0x37
  pc 0x000055f03170ec03 fp 0x00007fffe5900020 dart::kernel::StreamingFlowGraphBuilder::ParseKernelASTFunction()+0x53
  pc 0x000055f03170ea57 fp 0x00007fffe59000d0 dart::kernel::StreamingFlowGraphBuilder::BuildGraph()+0xb7
  pc 0x000055f031722153 fp 0x00007fffe5900380 dart::kernel::FlowGraphBuilder::BuildGraph()+0x63
  pc 0x000055f031364140 fp 0x00007fffe5900590 dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)+0x40
  pc 0x000055f031619c7a fp 0x00007fffe5900c70 dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)+0x31a
  pc 0x000055f03161ac05 fp 0x00007fffe5900e60 out/ReleaseX64/gen_snapshot+0xa5fc05
  pc 0x000055f031616f96 fp 0x00007fffe5900f60 dart::Precompiler::CompileFunction(dart::Precompiler*, dart::Thread*, dart::Zone*, dart::Function const&)+0x176
  pc 0x000055f031614601 fp 0x00007fffe5900fd0 dart::Precompiler::ProcessFunction(dart::Function const&)+0xe1
  pc 0x000055f03160f0c4 fp 0x00007fffe5901020 dart::Precompiler::Iterate()+0x94
  pc 0x000055f031604664 fp 0x00007fffe59012d0 dart::Precompiler::DoCompileAll()+0x1004
  pc 0x000055f0316035f1 fp 0x00007fffe5901810 dart::Precompiler::CompileAll()+0x101
  pc 0x000055f03179dffd fp 0x00007fffe5901960 Dart_Precompile+0x19d
  pc 0x000055f03110d5ed fp 0x00007fffe5901ae0 dart::bin::main(int, char**)+0x84d
-- End of DumpStackTrace

--- Re-run this test:
python3 tools/test.py -n dartkp-strong-linux-release-x64 co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A01_t01

@alexmarkov
Copy link
Contributor

These tests also fail:

co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03
co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A05_t01
--- Command "vm_compile_to_kernel" (took 01.000311s):
DART_CONFIGURATION=ReleaseX64 /b/s/w/ir/pkg/vm/tool/gen_kernel --enable-experiment=constructor-tearoffs --aot --platform=out/ReleaseX64/vm_platform_strong.dill -o /b/s/w/ir/out/ReleaseX64/generated_compilations/dartkp-strong-linux-release-x64/tests_co19_src_LanguageFeatures_Constructor-tear-offs_tearing_off_from_typedef_A04_t03/out.dill /b/s/w/ir/tests/co19/src/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart --enable-experiment=constructor-tearoffs --packages=/b/s/w/ir/.packages -Ddart.vm.product=false --sound-null-safety

exit code:
253

stderr:
Unexpected node StaticTearOff: StaticTearOff(List.filled) at file:///b/s/w/ir/tests/co19/src/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03.dart:31:12
#0      SummaryCollector.defaultTreeNode (package:vm/transformations/type_flow/summary_collector.dart:1437:7)
#1      TreeVisitor.defaultExpression (package:kernel/visitor.dart:192:43)
#2      TreeVisitor.visitStaticTearOff (package:kernel/visitor.dart:209:47)
#3      StaticTearOff.accept (package:kernel/ast.dart:4780:44)
#4      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:864:42)
#5      SummaryCollector.visitVariableDeclaration (package:vm/transformations/type_flow/summary_collector.dart:2142:48)
#6      VariableDeclaration.accept (package:kernel/ast.dart:10402:43)
#7      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:864:42)
#8      SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart)
#9      List.forEach (dart:core-patch/growable_array.dart:403:8)
#10     SummaryCollector.visitBlock (package:vm/transformations/type_flow/summary_collector.dart:1930:21)
#11     Block.accept (package:kernel/ast.dart:8862:43)
#12     SummaryCollector._visit (package:vm/transformations/type_flow/summary_collector.dart:864:42)
#13     SummaryCollector.createSummary (package:vm/transformations/type_flow/summary_collector.dart:765:9)
#14     TypeFlowAnalysis.getSummary (package:vm/transformations/type_flow/analysis.dart:1485:52)
#15     _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:287:42)
#16     _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:212:14)
#17     _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1381:32)
#18     TypeFlowAnalysis.applyCall (package:vm/transformations/type_flow/analysis.dart:1620:23)
#19     Call.apply (package:vm/transformations/type_flow/summary.dart:273:31)
#20     Summary.apply (package:vm/transformations/type_flow/summary.dart:722:33)
#21     _DirectInvocation._processFunction (package:vm/transformations/type_flow/analysis.dart:296:24)
#22     _DirectInvocation.process (package:vm/transformations/type_flow/analysis.dart:212:14)
#23     _WorkList.processInvocation (package:vm/transformations/type_flow/analysis.dart:1381:32)
#24     _WorkList.process (package:vm/transformations/type_flow/analysis.dart:1324:7)
#25     TypeFlowAnalysis.process (package:vm/transformations/type_flow/analysis.dart:1503:14)
#26     transformComponent (package:vm/transformations/type_flow/transformer.dart:85:20)
#27     runGlobalTransformations (package:vm/kernel_front_end.dart:457:5)
#28     compileToKernel (package:vm/kernel_front_end.dart:374:11)
<asynchronous suspension>
#29     runCompiler (package:vm/kernel_front_end.dart:267:19)
<asynchronous suspension>
#30     runBatchModeCompiler.<anonymous closure> (file:///b/s/w/ir/pkg/vm/bin/gen_kernel.dart:57:22)
<asynchronous suspension>
#31     runBatch (package:kernel/src/tool/batch_util.dart:38:33)
<asynchronous suspension>
#32     runBatchModeCompiler (file:///b/s/w/ir/pkg/vm/bin/gen_kernel.dart:43:3)
<asynchronous suspension>
#33     main (file:///b/s/w/ir/pkg/vm/bin/gen_kernel.dart:32:5)
<asynchronous suspension>

--- Re-run this test:
python3 tools/test.py -n dartkp-strong-linux-release-x64 co19/LanguageFeatures/Constructor-tear-offs/tearing_off_from_typedef_A04_t03

@alexmarkov alexmarkov self-assigned this Jul 20, 2021
dart-bot pushed a commit that referenced this issue Jul 30, 2021
TEST=co19/LanguageFeatures/Constructor-tear-offs
Issue: #46231
Change-Id: I177d0d77eac32b49d39949d696de8aa9a618cc6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208442
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
@whesse
Copy link
Contributor

whesse commented Aug 2, 2021

More tests have shown up as crashing on ia32, with the latest commit landed:
dartk-strong-linux-debug-ia32
dartk-weak-asserts-linux-debug-ia32

co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t01
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t01
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t06
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t09
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t10
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t14
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t19
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t20
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t23
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A04_t24
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A05_t02
co19/LanguageFeatures/Constructor-tear-offs/named_constructor_A06_t02

Log:
https://dart-ci.appspot.com/log/vm-kernel-nnbd-linux-debug-ia32/dartk-strong-linux-debug-ia32/283/co19/LanguageFeatures/Constructor-tear-offs/named*

DART_CONFIGURATION=DebugIA32 out/DebugIA32/dart --sound-null-safety --enable-experiment=constructor-tearoffs --ignore-unrecognized-flags --packages=/b/s/w/ir/cache/builder/sdk/.packages /b/s/w/ir/cache/builder/sdk/tests/co19/src/LanguageFeatures/Constructor-tear-offs/named_constructor_A01_t02.dart

exit code:
-6

stderr:
../../runtime/vm/compiler/assembler/assembler_ia32.cc: 1959: error: expected: IsNotTemporaryScopedHandle(object)
version=2.14.0-edge.58969783ba6b20b68c42da32a91a77e5862bbafb (be) (Fri Jul 30 21:32:58 2021 +0000) on "linux_ia32"
pid=25024, thread=25090, isolate_group=main(0x4e32900), isolate=main(0x4e48500)
isolate_instructions=1f52260, vm_instructions=1f52260
pc 0x0231c5c9 fp 0xf2c7dfa8 dart::Profiler::DumpStackTrace(void*)+0x89
pc 0x0283cdf4 fp 0xf2c7dfc8 Dart_DumpNativeStackTrace+0x14
pc 0x01f5239a fp 0xf2c7dff8 dart::Assert::Fail(char const*, ...)+0x2a
pc 0x02693d4b fp 0xf2c7e048 dart::compiler::Assembler::PushObject(dart::Object const&)+0x10b
pc 0x027fc3dd fp 0xf2c7e1a8 dart::compiler::StubCodeCompiler::GenerateAllocationStubForClass(dart::compiler::Assembler*, dart::GrowableArraydart::compiler::UnresolvedPcRelativeCall*, dart::Class const&, dart::Code const&, dart::Code const&)+0x53d
pc 0x023b4cc2 fp 0xf2c7e308 dart::StubCode::GetAllocationStubForClass(dart::Class const&)+0x282
pc 0x02715335 fp 0xf2c7e358 dart::AllocateObjectInstr::EmitNativeCode(dart::FlowGraphCompiler
)+0x25
pc 0x026bd268 fp 0xf2c7e4b8 dart::FlowGraphCompiler::VisitBlocks()+0x3e8

dart-bot pushed a commit that referenced this issue Aug 3, 2021
…enerating constructor tear-off

All handles passed to IL instructions should be ZoneHandles.
Recently added code for generating constructor tear-offs has been
passing Handle instead of ZoneHandle by mistake.

This change fixes the bug and adds assertions to AllocateObjectInstr so
it would check handle type earlier and on all platforms.

TEST=co19/LanguageFeatures/Constructor-tear-offs in debug/ia32 mode

Issue #46231

Change-Id: I99e6889e59bf40f4788a7f3c6d37dad89aa91ab0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208686
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
dart-bot pushed a commit that referenced this issue Aug 4, 2021
Replace bogus body created for redirecting factories with a
normal body which calls target factory or constructor and
forwards all arguments. Such a body can be used by back-ends
if they choose to treat redirecting factories as ordinary
factories.

TEST=ci
Fixes #41915
Issue #46231

Change-Id: I62c83bcc9005995e85de049d3d929ca86a75297f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208681
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
dart-bot pushed a commit that referenced this issue Aug 4, 2021
After https://dart-review.googlesource.com/c/sdk/+/208681
it is now possible to use bodies of redirecting factories in the VM
and treat redirecting factories like ordinary factories.

TEST=vm/cc/DartAPI_New
TEST=vm/dart/redirection_type_shuffling_test
TEST=co19/LanguageFeatures/Constructor-tear-offs

Fixes #33041
Fixes #29201
Issue #46231

Change-Id: If410d2913704a33035800144699fd6e8a2570a19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208684
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
dart-bot pushed a commit that referenced this issue Aug 4, 2021
There could be multiple instances of implicit static closures due to
instantiations at run time:

void foo<T>(T x) {}

void bar<T>() {
  void Function(T) myfoo1 = foo;
  void Function(T) myfoo2 = foo;
  print(myfoo1 == myfoo2);
}

This change fixes equality to handle this case.

TEST=language/generic_methods/explicit_instantiated_tearoff_test
TEST=language/constructor/tear_off_test

Issue #46231
Issue #46487

Change-Id: I485acc5444d19860ef4d8ebeec2e540fe57776d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208981
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
dart-bot pushed a commit that referenced this issue Aug 9, 2021
TEST=language/typedef/aliased_constructor_tear_off_test
Issue #46231

Change-Id: I10df62d4d170a4ae018a0e943ac6fc37d669d439
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208984
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
dart-bot pushed a commit that referenced this issue Aug 12, 2021
…neric classes

When copying types of parameters from a constructor to a signature of
its tear-off, types should be instantiated to substitute class type
parameters with function type parameters.

For example,

  class A<T> {
    A(T x);
  }

  A.new // Should be 'A<S> Function<S>(S x)'

Without instantiation the parameter type would still reference class
type parameter:

  A<S> Function<S>(T x)

As a result, Closure::GetInstantiatedSignature would replace
class type parameters with dynamic (as tear-off doesn't have
instantiated type arguments) which is not correct:

  A<S> Function<S>(dynamic x)

TEST=co19/LanguageFeatures/Constructor-tear-offs/summary_A01_t01
(after dart-lang/co19#1141 is fixed)

Issue #46231

Change-Id: I0517c400271e2a59ab0496a8cc39be51022768b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/209851
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
@alexmarkov
Copy link
Contributor

Implementation is complete.

Current status of tests:

  1. All language tests which enable constructor-tearoffs experiment are now passing on all VM configurations:
language/constructor/tear_off_test
language/constructor/unnamed_new_test
language/generic_methods/explicit_instantiated_tearoff_test
language/type_object/explicit_instantiated_type_literal_test
language/typedef/aliased_constructor_tear_off_test
language/typedef/aliased_type_literal_instantiation_test
  1. co19/LanguageFeatures/Constructor-tear-offs tests in dartk-strong-linux-release-x64 configuration: 174 tests passed, 20 failed:
  1. co19/LanguageFeatures/Constructor-tear-offs tests in dartkp-strong-linux-release-x64 configuration: 173 tests passed, 21 failed:
  • 1 more CompileTimeError as co19/LanguageFeatures/Constructor-tear-offs/unnamed_constructor_A06_t01 uses dart:mirrors which is not supported in AOT mode.

@alexmarkov
Copy link
Contributor

In weak mode (dartk-weak-asserts-linux-release-x64 and dartkp-weak-asserts-linux-release-x64 configurations) there are 6 more RuntimeErrors on co19/LanguageFeatures/Constructor-tear-offs tests. All of them are due to incorrect tests (dart-lang/co19#1161).

dart-bot pushed a commit that referenced this issue Aug 13, 2021
When taking a type of an instance with x.runtimeType we can map
internal classes _List, _ImmutableList and _GrowableList to a
user-visible List class. This is similar to what we do for
implementation classes of int, String and Type.
After that, result of x.runtimeType for built-in lists would be
compatible with List<T> type literals.

Also, both intrinsic and native implementations of _haveSameRuntimeType
are updated to agree with new semantic of runtimeType.

TEST=co19/LanguageFeatures/Constructor-tear-offs/type_literal_A01_t01
TEST=runtime/tests/vm/dart/have_same_runtime_type_test

Fixes #46893
Issue #46231

Change-Id: Ie24a9f527f66a06118427b7a09e49c03dff93d8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210066
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
dart-bot pushed a commit that referenced this issue Aug 13, 2021
…as List"

This reverts commit 824bec5.

Reason for revert: b/196606044

Original change's description:
> [vm] Hide internal implementation List types and expose them as List
>
> When taking a type of an instance with x.runtimeType we can map
> internal classes _List, _ImmutableList and _GrowableList to a
> user-visible List class. This is similar to what we do for
> implementation classes of int, String and Type.
> After that, result of x.runtimeType for built-in lists would be
> compatible with List<T> type literals.
>
> Also, both intrinsic and native implementations of _haveSameRuntimeType
> are updated to agree with new semantic of runtimeType.
>
> TEST=co19/LanguageFeatures/Constructor-tear-offs/type_literal_A01_t01
> TEST=runtime/tests/vm/dart/have_same_runtime_type_test
>
> Fixes #46893
> Issue #46231
>
> Change-Id: Ie24a9f527f66a06118427b7a09e49c03dff93d8e
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210066
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Tess Strickland <sstrickl@google.com>

TBR=rmacnak@google.com,alexmarkov@google.com,sstrickl@google.com

Change-Id: I4c3dddbc358d6ad3b14081706f7aec110a2e0562
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210200
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
dart-bot pushed a commit that referenced this issue Aug 16, 2021
…as List"

This is a reland of 824bec5

Original change's description:
> [vm] Hide internal implementation List types and expose them as List
>
> When taking a type of an instance with x.runtimeType we can map
> internal classes _List, _ImmutableList and _GrowableList to a
> user-visible List class. This is similar to what we do for
> implementation classes of int, String and Type.
> After that, result of x.runtimeType for built-in lists would be
> compatible with List<T> type literals.
>
> Also, both intrinsic and native implementations of _haveSameRuntimeType
> are updated to agree with new semantic of runtimeType.
>
> TEST=co19/LanguageFeatures/Constructor-tear-offs/type_literal_A01_t01
> TEST=runtime/tests/vm/dart/have_same_runtime_type_test
>
> Fixes #46893
> Issue #46231
>
> Change-Id: Ie24a9f527f66a06118427b7a09e49c03dff93d8e
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210066
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Tess Strickland <sstrickl@google.com>

TEST=co19/LanguageFeatures/Constructor-tear-offs/type_literal_A01_t01
TEST=runtime/tests/vm/dart/have_same_runtime_type_test
TEST=lib/mirrors/regress_b196606044_test
Fixes #46893
Issue #46231

Change-Id: I79b587540338808bd73a6554f00a5eed042f4c26
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210201
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
@alexmarkov
Copy link
Contributor

Status of co19 tests on the most recent version of tests from co19 repository (at https://github.com/dart-lang/co19/commits/6cb0670b42ddd2a74d65f7d69213af76ef5f8ac9):

dartk-strong-linux-release-x64, dartk-weak-asserts-linux-release-x64: 185 tests passed, 7 failed (5 CompileTimeError, 2 MissingCompileTimeError).

dartkp-strong-linux-release-x64, dartkp-weak-asserts-linux-release-x64: 184 tests passed, 8 failed (6 CompileTimeError, 2 MissingCompileTimeError).

There are no outstanding VM bugs.

Constructor tear-offs automation moved this from To do to Done Aug 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, FFI, and the AOT and JIT backends.
Projects
Development

No branches or pull requests

3 participants