blob: d9703252308c279485db0d9f899a60776113b1fa [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:typed_data';
class MethodChannel {
final String name;
const MethodChannel(this.name);
void dump() {
print('MethodChannel($name)');
}
}
final channel1 = MethodChannel("channel1");
final channel2 = MethodChannel("channel2");
const constChannel = MethodChannel("constChannel1");
const constChannel2 = MethodChannel("constChannel2");
class MyBase {}
class MyInterface {}
class MySub extends MyBase implements MyInterface {}
main() {
final mcs = [channel1, channel2, constChannel, constChannel2];
for (int i = 0; i < mcs.length; ++i) {
mcs[i].dump();
}
print('Class: ${MySub()}');
final l = [
FieldTestBase(2, 2.2, null, Float32x4.zero(), Float64x2.zero()),
FieldTestSub<int>(),
FieldTestSub<double>(),
];
for (final x in l) print(x.foo());
}
class FieldTestBase {
static int baseS0 = int.parse('1');
static int baseS1 = int.parse('2');
int base0;
double base1;
Object? base2;
Float32x4 base3;
Float64x2 base4;
FieldTestBase(this.base0, this.base1, this.base2, this.base3, this.base4) {
baseS0++;
baseS1++;
}
String foo() =>
'Base.foo: [$baseS0, $baseS1, $base0, $base1, $base2, $base3, $base4]';
}
class FieldTestSub<T> extends FieldTestBase {
late int subL1 = int.parse('1');
late final double subL2 = double.parse('1.2');
FieldTestSub()
: super(
1,
1.2,
Object(),
Float32x4(1.1, 1.2, 1.3, 1.4),
Float64x2(2.1, 2.2),
);
String foo() => '${super.foo()} Sub<$T>.foo: [$subL1, $subL2]';
}