726d3c7725
This reverts commit cab69e7706.
Reason for revert: It was a temporary submit
Original change's description:
> [BUILD] - Initial CL to unfork the NNBD Dart SDK
> NOTE: This is a trial submit and will be reverted immediately.
>
> - Flips the flag from --nnbd to --no-nnbd so that by default it builds
> the NNBD version
> - using the --no-nnbd flag results in the SDK being built in a
> directory which has the 'Legacy' suffix added to it
> (e.g: out/DebugX64Legacy)
> - the '--enable-experiment=non-nullable' flag still needs to be passed
> in during execution so that CFE runs in that mode. This is different
> from the 'null_safety' flag
>
> Change-Id: I7d25d9710818af5919c0bb83abe51153172f5886
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144880
> Reviewed-by: Siva Annamalai <asiva@google.com>
TBR=asiva@google.com
Change-Id: Ib0f99fc1a42c9c7a8b21f8542f4a35dba9105d5c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144900
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
528 lines
13 KiB
Plaintext
528 lines
13 KiB
Plaintext
main = #lib::main;
|
|
[@vm.bytecode=
|
|
BytecodeMetadata {
|
|
Bytecode (version: stable)
|
|
Main library: #lib
|
|
Library '#lib'
|
|
name '#lib'
|
|
script '#lib'
|
|
|
|
Class '', script = '#lib'
|
|
|
|
|
|
Function 'main', static, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
}
|
|
|
|
Class 'Base1', script = '#lib'
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::Base1
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'foo', reflectable, debuggable
|
|
type-params <dart:core::Object T>
|
|
parameters [#lib::Base1::foo::TypeParam/0 'a1', dart:core::int 'a2'] (required: 2)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckFunctionTypeArgs 1, r0
|
|
CheckStack 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
}
|
|
|
|
|
|
Function 'get:bar', getter, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
PushInt 42
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
}
|
|
|
|
|
|
Function 'set:bazz', setter, reflectable, debuggable
|
|
parameters [dart:core::int 'x'] (required: 1)
|
|
return-type void
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
}
|
|
|
|
Class 'A', script = '#lib'
|
|
extends #lib::Base1
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::A
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall '#lib::Base1:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperCall', reflectable, debuggable
|
|
parameters [dart:core::int 'x'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
PushConstant CP#0
|
|
Push FP[-6]
|
|
PushConstant CP#1
|
|
PushInt 2
|
|
UncheckedDirectCall CP#2, 4
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < dart:core::String >
|
|
[1] = ObjectRef 'a1'
|
|
[2] = DirectCall '#lib::Base1::foo', ArgDesc num-args 3, num-type-args 1, names []
|
|
[3] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperTearOff', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall '#lib::Base1::get:foo', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperGet', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall '#lib::Base1::get:bar', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperCallViaGetter', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
PushConstant CP#0
|
|
Push FP[-5]
|
|
DirectCall CP#1, 1
|
|
PushConstant CP#3
|
|
DynamicCall CP#4, 3
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < dart:core::int >
|
|
[1] = DirectCall '#lib::Base1::get:bar', ArgDesc num-args 1, num-type-args 0, names []
|
|
[2] = Reserved
|
|
[3] = ObjectRef 'param'
|
|
[4] = DynamicCall 'call', ArgDesc num-args 2, num-type-args 1, names []
|
|
[5] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperSet', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
PushInt 3
|
|
UncheckedDirectCall CP#0, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall '#lib::Base1::set:bazz', ArgDesc num-args 2, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
Class 'Base2', script = '#lib', abstract
|
|
extends dart:core::Object
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::Base2
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'foo', abstract, reflectable, debuggable
|
|
type-params <dart:core::Object T>
|
|
parameters [dart:core::String 'a1', #lib::Base2::foo::TypeParam/0 'a2', dart:core::int 'a3'] (required: 3)
|
|
return-type void
|
|
|
|
Function 'get:bar', getter, abstract, reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Function 'set:bazz', setter, abstract, reflectable, debuggable
|
|
parameters [dart:core::int 'x'] (required: 1)
|
|
return-type void
|
|
Class 'B', script = '#lib', abstract
|
|
extends #lib::Base2
|
|
|
|
|
|
Function '', constructor, reflectable
|
|
parameters [] (required: 0)
|
|
return-type #lib::B
|
|
|
|
Bytecode {
|
|
Entry 0
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
DirectCall CP#0, 1
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = DirectCall '#lib::Base2:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperCall', reflectable, debuggable
|
|
parameters [dart:core::int 'x'] (required: 1)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-6]
|
|
PushConstant CP#1
|
|
PushConstant CP#0
|
|
PushConstant CP#2
|
|
PushInt 5
|
|
CreateArrayTOS
|
|
StoreLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
PushConstant CP#3
|
|
StoreIndexedTOS
|
|
Push r0
|
|
PushInt 1
|
|
Push FP[-6]
|
|
StoreIndexedTOS
|
|
Push r0
|
|
PushInt 2
|
|
PushConstant CP#4
|
|
StoreIndexedTOS
|
|
Push r0
|
|
PushInt 3
|
|
PushConstant CP#5
|
|
StoreIndexedTOS
|
|
Push r0
|
|
PushInt 4
|
|
PushInt 5
|
|
StoreIndexedTOS
|
|
PushTrue
|
|
DirectCall CP#6, 4
|
|
DirectCall CP#8, 2
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef ArgDesc num-args 4, num-type-args 1, names []
|
|
[1] = ObjectRef 'foo'
|
|
[2] = ObjectRef < dynamic >
|
|
[3] = ObjectRef < dart:core::double >
|
|
[4] = ObjectRef 'a1'
|
|
[5] = ObjectRef const 3.14
|
|
[6] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
|
|
[7] = Reserved
|
|
[8] = DirectCall 'dart:core::Object::noSuchMethod', ArgDesc num-args 2, num-type-args 0, names []
|
|
[9] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperTearOff', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
PushConstant CP#1
|
|
PushConstant CP#0
|
|
PushConstant CP#2
|
|
PushInt 1
|
|
CreateArrayTOS
|
|
StoreLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
Push FP[-5]
|
|
StoreIndexedTOS
|
|
PushTrue
|
|
DirectCall CP#3, 4
|
|
DirectCall CP#5, 2
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = ObjectRef 'foo'
|
|
[2] = ObjectRef < dynamic >
|
|
[3] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
|
|
[4] = Reserved
|
|
[5] = DirectCall 'dart:core::Object::noSuchMethod', ArgDesc num-args 2, num-type-args 0, names []
|
|
[6] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperGet', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
PushConstant CP#1
|
|
PushConstant CP#0
|
|
PushConstant CP#2
|
|
PushInt 1
|
|
CreateArrayTOS
|
|
StoreLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
Push FP[-5]
|
|
StoreIndexedTOS
|
|
PushTrue
|
|
DirectCall CP#3, 4
|
|
DirectCall CP#5, 2
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[1] = ObjectRef 'bar'
|
|
[2] = ObjectRef < dynamic >
|
|
[3] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
|
|
[4] = Reserved
|
|
[5] = DirectCall 'dart:core::Object::noSuchMethod', ArgDesc num-args 2, num-type-args 0, names []
|
|
[6] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperCallViaGetter', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
PushConstant CP#0
|
|
Push FP[-5]
|
|
PushConstant CP#2
|
|
PushConstant CP#1
|
|
PushConstant CP#3
|
|
PushInt 1
|
|
CreateArrayTOS
|
|
StoreLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
Push FP[-5]
|
|
StoreIndexedTOS
|
|
PushTrue
|
|
DirectCall CP#4, 4
|
|
DirectCall CP#6, 2
|
|
PushConstant CP#8
|
|
DynamicCall CP#9, 3
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef < dart:core::int >
|
|
[1] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
|
|
[2] = ObjectRef 'bar'
|
|
[3] = ObjectRef < dynamic >
|
|
[4] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
|
|
[5] = Reserved
|
|
[6] = DirectCall 'dart:core::Object::noSuchMethod', ArgDesc num-args 2, num-type-args 0, names []
|
|
[7] = Reserved
|
|
[8] = ObjectRef 'param'
|
|
[9] = DynamicCall 'call', ArgDesc num-args 2, num-type-args 1, names []
|
|
[10] = Reserved
|
|
}
|
|
|
|
|
|
Function 'testSuperSet', reflectable, debuggable
|
|
parameters [] (required: 0)
|
|
return-type dynamic
|
|
|
|
Bytecode {
|
|
Entry 1
|
|
CheckStack 0
|
|
Push FP[-5]
|
|
PushConstant CP#1
|
|
PushConstant CP#0
|
|
PushConstant CP#2
|
|
PushInt 2
|
|
CreateArrayTOS
|
|
StoreLocal r0
|
|
Push r0
|
|
PushInt 0
|
|
Push FP[-5]
|
|
StoreIndexedTOS
|
|
Push r0
|
|
PushInt 1
|
|
PushInt 3
|
|
StoreIndexedTOS
|
|
PushTrue
|
|
DirectCall CP#3, 4
|
|
DirectCall CP#5, 2
|
|
Drop1
|
|
PushNull
|
|
ReturnTOS
|
|
}
|
|
ConstantPool {
|
|
[0] = ObjectRef ArgDesc num-args 2, num-type-args 0, names []
|
|
[1] = ObjectRef 'bazz'
|
|
[2] = ObjectRef < dynamic >
|
|
[3] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
|
|
[4] = Reserved
|
|
[5] = DirectCall 'dart:core::Object::noSuchMethod', ArgDesc num-args 2, num-type-args 0, names []
|
|
[6] = Reserved
|
|
}
|
|
|
|
|
|
}
|
|
]library #lib from "#lib" as #lib {
|
|
|
|
class Base1 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::Base1*
|
|
: super dart.core::Object::•()
|
|
;
|
|
method foo<T extends dart.core::Object* = dynamic>(#lib::Base1::foo::T* a1, dart.core::int* a2) → void {}
|
|
get bar() → dynamic
|
|
return 42;
|
|
set bazz(dart.core::int* x) → void {}
|
|
}
|
|
class A extends #lib::Base1 {
|
|
synthetic constructor •() → #lib::A*
|
|
: super #lib::Base1::•()
|
|
;
|
|
method testSuperCall(dart.core::int* x) → dynamic
|
|
return super.{#lib::Base1::foo}<dart.core::String*>("a1", 2);
|
|
method testSuperTearOff() → dynamic
|
|
return super.{#lib::Base1::foo};
|
|
method testSuperGet() → dynamic
|
|
return super.{#lib::Base1::bar};
|
|
method testSuperCallViaGetter() → dynamic
|
|
return [@vm.call-site-attributes.metadata=receiverType:DynamicType(dynamic)] super.{#lib::Base1::bar}.call<dart.core::int*>("param");
|
|
method testSuperSet() → dynamic {
|
|
super.{#lib::Base1::bazz} = 3;
|
|
}
|
|
}
|
|
abstract class Base2 extends dart.core::Object {
|
|
synthetic constructor •() → #lib::Base2*
|
|
: super dart.core::Object::•()
|
|
;
|
|
abstract method foo<T extends dart.core::Object* = dynamic>(dart.core::String* a1, #lib::Base2::foo::T* a2, dart.core::int* a3) → void;
|
|
abstract get bar() → dynamic;
|
|
abstract set bazz(dart.core::int* x) → void;
|
|
}
|
|
abstract class B extends #lib::Base2 {
|
|
synthetic constructor •() → #lib::B*
|
|
: super #lib::Base2::•()
|
|
;
|
|
method testSuperCall(dart.core::int* x) → dynamic
|
|
return super.{#lib::Base2::foo}<dart.core::double*>("a1", 3.14, 5);
|
|
method testSuperTearOff() → dynamic
|
|
return super.{#lib::Base2::foo};
|
|
method testSuperGet() → dynamic
|
|
return super.{#lib::Base2::bar};
|
|
method testSuperCallViaGetter() → dynamic
|
|
return [@vm.call-site-attributes.metadata=receiverType:DynamicType(dynamic)] super.{#lib::Base2::bar}.call<dart.core::int*>("param");
|
|
method testSuperSet() → dynamic {
|
|
super.{#lib::Base2::bazz} = 3;
|
|
}
|
|
}
|
|
static method main() → dynamic {}
|
|
}
|