[tests] Add regression tests

Issue: https://github.com/dart-lang/sdk/issues/46867
Change-Id: I7e2912752ac8c48df233f27869599280e2c322fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/209853
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
This commit is contained in:
Nicholas Shahan 2021-08-17 17:32:52 +00:00 committed by commit-bot@chromium.org
parent d9048340ba
commit a899525bdc
2 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,32 @@
// Copyright (c) 2021, 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.
// Regression test for https://github.com/dart-lang/sdk/issues/46867
import 'package:expect/expect.dart';
class Interface {
covariant Object x = 'from Interface';
}
mixin Mixin implements Interface {}
class BaseClass {
static var getterCallCount = 0;
static var setterCallCount = 0;
Object get x => getterCallCount++;
set x(Object value) => setterCallCount++;
}
class SubClass extends BaseClass with Mixin {}
void main() {
Expect.equals(0, BaseClass.getterCallCount);
SubClass().x;
Expect.equals(1, BaseClass.getterCallCount);
Expect.equals(0, BaseClass.setterCallCount);
SubClass().x = 42;
Expect.equals(1, BaseClass.setterCallCount);
}

View file

@ -0,0 +1,34 @@
// Copyright (c) 2021, 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.
// @dart = 2.9
// Regression test for https://github.com/dart-lang/sdk/issues/46867
import 'package:expect/expect.dart';
class Interface {
covariant Object x = 'from Interface';
}
mixin Mixin implements Interface {}
class BaseClass {
static var getterCallCount = 0;
static var setterCallCount = 0;
Object get x => getterCallCount++;
set x(Object value) => setterCallCount++;
}
class SubClass extends BaseClass with Mixin {}
void main() {
Expect.equals(0, BaseClass.getterCallCount);
SubClass().x;
Expect.equals(1, BaseClass.getterCallCount);
Expect.equals(0, BaseClass.setterCallCount);
SubClass().x = 42;
Expect.equals(1, BaseClass.setterCallCount);
}