mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 10:49:00 +00:00
[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:
parent
d9048340ba
commit
a899525bdc
2 changed files with 66 additions and 0 deletions
32
tests/language/regress/regress46867_test.dart
Normal file
32
tests/language/regress/regress46867_test.dart
Normal 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);
|
||||
}
|
34
tests/language_2/regress/regress46867_test.dart
Normal file
34
tests/language_2/regress/regress46867_test.dart
Normal 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);
|
||||
}
|
Loading…
Reference in a new issue