mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 23:21:43 +00:00
57d452dbf7
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>
45 lines
1 KiB
Dart
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;
|
|
}
|