blob: a672baba640a29b2d7897195488c9d450c63e163 [file] [log] [blame]
// Copyright (c) 2018, 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.
/// @assertion The mixinMember production allows the same instance or static
/// members that a class would allow, but no constructors (for now).
/// @description Checks that mixin declaration allows same instance or static
/// members that a class would allow. Test abstract members
/// @author
/// @author
import "../../Utils/expect.dart";
class I {}
class J {}
class B {}
class C {}
mixin M on B, C implements I, J {
static String s = "S.s";
static String get gs => s;
static set ss(String v) {
s = v;
static String sf() => "S.sf()";
String i = "";
String get gi;
set si(String v);
String mi();
String operator -();
class A implements B, C, I, J {
class MA extends A with M {
String i = "MA.i";
String get gi => i;
set si(String v) {
i = v;
String mi() => "MA.mi()";
String operator -() => i.substring(0, 1);
main() {
Expect.equals("S.s", M.s);
Expect.equals("S.sf()", M.sf());
Expect.equals("S.s",; = "x";
MA ma = new MA();
Expect.equals("MA.i", ma.i);
Expect.equals("M", -ma);
Expect.equals("MA.mi()", ma.mi());
Expect.equals("MA.i",; = "xx";
Expect.equals("x", -ma);