Skip to content

Commit

Permalink
[tests] Add regression tests
Browse files Browse the repository at this point in the history
Issue: #46867
Change-Id: I7e2912752ac8c48df233f27869599280e2c322fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/209853
Reviewed-by: Mark Zhou <[email protected]>
Commit-Queue: Nicholas Shahan <[email protected]>
  • Loading branch information
nshahan authored and [email protected] committed Aug 17, 2021
1 parent d904834 commit a899525
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
32 changes: 32 additions & 0 deletions tests/language/regress/regress46867_test.dart
Original file line number Diff line number Diff line change
@@ -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 changes: 34 additions & 0 deletions tests/language_2/regress/regress46867_test.dart
Original file line number Diff line number Diff line change
@@ -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);
}

0 comments on commit a899525

Please sign in to comment.