// Formatted problems:
//
// pkg/front_end/testcases/type_variable_uses.dart:7:15: Warning: Can only use type variables in instance methods.
//   static C<T> staticMethod() {
//               ^

library;
import self as self;
import "dart:core" as core;

class C<T extends core::Object = dynamic> extends core::Object {
  const constructor •() → void
    ;
  static method staticMethod() → self::C<dynamic>
    ;
  method instanceMethod() → self::C<self::C::T>
    ;
}
static method main() → dynamic
  ;
