// Copyright (c) 2011, 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.

interface Interface<I1, I2> {
  I1 interfaceField;
  I1 interfaceMethod(I2 arg);
}

class Superclass<S1, S2> {
  S1 superField;
  S1 superMethod(S2 arg) { return null; }
}

class GenericClassWithSupertypes<T1, T2> extends Superclass<T2, T1> implements Interface<T1, T1> {
  T1 localField;
  T1 localMethod(T2 arg) { return null; }
  T2 t2;
  T1 t1;
}
