// 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.

abstract class M {
  var m;
}

abstract class N extends M {
  void set superM(value) {
    super.m = value;
  }

  get superM => super.m;
}

class S {}

class Named = S with M, N, M;

main() {
  Named named = new Named();
  named.m = 42;
  named.superM = 87;
  if (named.m != 42) {
    throw "Bad mixin translation of set:superM";
  }
  if (named.superM != 87) {
    throw "Bad mixin translation of get:superM";
  }
}
