blob: 0336db41f4877ff831200a75a2fe4dfcffc8feeb [file] [log] [blame]
// 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;
}