dart-sdk/tests/language_2/mixin_regress_11398_test.dart
pq 57d452dbf7 Migrate test block 134 to Dart 2.0.
Bug:
Change-Id: I67bba5c5049c62b8313d49efe36c81fc600b995a
Reviewed-on: https://dart-review.googlesource.com/7847
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2017-09-28 16:15:47 +00:00

45 lines
1 KiB
Dart

// Copyright (c) 2013, 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 "package:expect/expect.dart";
void main() {
var hva = new HasValueA();
hva.value = '42';
Expect.equals('42', hva.value);
var hvb = new HasValueB();
hvb.value = '87';
Expect.equals('87', hvb.value);
var hvc = new HasValueC();
hvc.value = '99';
Expect.equals('99', hvc.value);
}
abstract class Delegate {
String invoke(String value);
}
abstract class DelegateMixin {
String invoke(String value) => value;
}
abstract class HasValueMixin implements Delegate {
String _value;
set value(String value) {
_value = invoke(value);
}
String get value => _value;
}
class HasValueA extends Object with HasValueMixin, DelegateMixin {}
class HasValueB extends Object with DelegateMixin, HasValueMixin {}
class HasValueC extends Object with HasValueMixin {
String invoke(String value) => value;
}