library;
//
// Problems in library:
//
// pkg/front_end/testcases/rasta/static.dart:28:9: Error: Getter not found: 'staticSetter'.
//     Foo.staticSetter;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:29:13: Error: Getter not found: 'staticSetter'.
//     use(Foo.staticSetter);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:31:9: Error: Setter not found: 'staticConstant'.
//     Foo.staticConstant++;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
//     use(Foo.staticConstant++);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:35:9: Error: Setter not found: 'staticFunction'.
//     Foo.staticFunction++;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
//     use(Foo.staticFunction++);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:37:9: Error: Setter not found: 'staticGetter'.
//     Foo.staticGetter++;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:38:13: Error: Setter not found: 'staticGetter'.
//     use(Foo.staticGetter++);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:39:9: Error: Getter not found: 'staticSetter'.
//     Foo.staticSetter++;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:40:13: Error: Getter not found: 'staticSetter'.
//     use(Foo.staticSetter++);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:42:11: Error: Setter not found: 'staticConstant'.
//     ++Foo.staticConstant;
//           ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:43:15: Error: Setter not found: 'staticConstant'.
//     use(++Foo.staticConstant);
//               ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:46:11: Error: Setter not found: 'staticFunction'.
//     ++Foo.staticFunction;
//           ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:47:15: Error: Setter not found: 'staticFunction'.
//     use(++Foo.staticFunction);
//               ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:48:11: Error: Setter not found: 'staticGetter'.
//     ++Foo.staticGetter;
//           ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:49:15: Error: Setter not found: 'staticGetter'.
//     use(++Foo.staticGetter);
//               ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:50:11: Error: Getter not found: 'staticSetter'.
//     ++Foo.staticSetter;
//           ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:51:15: Error: Getter not found: 'staticSetter'.
//     use(++Foo.staticSetter);
//               ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:61:9: Error: Getter not found: 'staticSetter'.
//     Foo.staticSetter();
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:62:13: Error: Getter not found: 'staticSetter'.
//     use(Foo.staticSetter());
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:64:9: Error: Setter not found: 'staticConstant'.
//     Foo.staticConstant = 87;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:65:13: Error: Setter not found: 'staticConstant'.
//     use(Foo.staticConstant = 87);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:68:9: Error: Setter not found: 'staticFunction'.
//     Foo.staticFunction = 87;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:69:13: Error: Setter not found: 'staticFunction'.
//     use(Foo.staticFunction = 87);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:70:9: Error: Setter not found: 'staticGetter'.
//     Foo.staticGetter = 87;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:71:13: Error: Setter not found: 'staticGetter'.
//     use(Foo.staticGetter = 87);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:75:9: Error: Setter not found: 'staticConstant'.
//     Foo.staticConstant ??= 87;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
//     use(Foo.staticConstant ??= 87);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:79:9: Error: Setter not found: 'staticFunction'.
//     Foo.staticFunction ??= 87;
//         ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
//     use(Foo.staticFunction ??= 87);
//             ^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:81:9: Error: Setter not found: 'staticGetter'.
//     Foo.staticGetter ??= 87;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:82:13: Error: Setter not found: 'staticGetter'.
//     use(Foo.staticGetter ??= 87);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:83:9: Error: Getter not found: 'staticSetter'.
//     Foo.staticSetter ??= 87;
//         ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:84:13: Error: Getter not found: 'staticSetter'.
//     use(Foo.staticSetter ??= 87);
//             ^^^^^^^^^^^^
//
// pkg/front_end/testcases/rasta/static.dart:53:23: Error: The method 'call' isn't defined for the type 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'call'.
//     Foo.staticConstant();
//                       ^
//
// pkg/front_end/testcases/rasta/static.dart:54:27: Error: The method 'call' isn't defined for the type 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'call'.
//     use(Foo.staticConstant());
//                           ^
//
// pkg/front_end/testcases/rasta/static.dart:55:20: Error: The method 'call' isn't defined for the type 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'call'.
//     Foo.staticField();
//                    ^
//
// pkg/front_end/testcases/rasta/static.dart:56:24: Error: The method 'call' isn't defined for the type 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'call'.
//     use(Foo.staticField());
//                        ^
//
import self as self;
import "dart:core" as core;

class Foo extends core::Object {
  static const field core::int staticConstant = #C1;
  static field core::int staticField = 42;
  synthetic constructor •() → self::Foo
    : super core::Object::•()
    ;
  static method staticFunction() → dynamic {}
  static get staticGetter() → dynamic
    return null;
  static set staticSetter(wildcard dynamic _#wc0#formal) → void {}
}
static method use(dynamic x) → dynamic {
  if(x =={core::Object::==}{(core::Object) → core::bool} new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int})
    throw "Shouldn't happen";
}
static method main() → dynamic {
  try {
    #C1;
    self::use(#C1);
    self::Foo::staticField;
    self::use(self::Foo::staticField);
    #C2;
    self::use(#C2);
    self::Foo::staticGetter;
    self::use(self::Foo::staticGetter);
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:28:9: Error: Getter not found: 'staticSetter'.
    Foo.staticSetter;
        ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:29:13: Error: Getter not found: 'staticSetter'.
    use(Foo.staticSetter);
            ^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:31:9: Error: Setter not found: 'staticConstant'.
    Foo.staticConstant++;
        ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:32:13: Error: Setter not found: 'staticConstant'.
    use(Foo.staticConstant++);
            ^^^^^^^^^^^^^^");
    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
    self::use(let final core::int #t1 = self::Foo::staticField in let final void #t2 = self::Foo::staticField = #t1.{core::num::+}(1){(core::num) → core::int} in #t1);
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:35:9: Error: Setter not found: 'staticFunction'.
    Foo.staticFunction++;
        ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:36:13: Error: Setter not found: 'staticFunction'.
    use(Foo.staticFunction++);
            ^^^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:37:9: Error: Setter not found: 'staticGetter'.
    Foo.staticGetter++;
        ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:38:13: Error: Setter not found: 'staticGetter'.
    use(Foo.staticGetter++);
            ^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:39:9: Error: Getter not found: 'staticSetter'.
    Foo.staticSetter++;
        ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:40:13: Error: Getter not found: 'staticSetter'.
    use(Foo.staticSetter++);
            ^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:42:11: Error: Setter not found: 'staticConstant'.
    ++Foo.staticConstant;
          ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:43:15: Error: Setter not found: 'staticConstant'.
    use(++Foo.staticConstant);
              ^^^^^^^^^^^^^^");
    self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int};
    self::use(self::Foo::staticField = self::Foo::staticField.{core::num::+}(1){(core::num) → core::int});
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:46:11: Error: Setter not found: 'staticFunction'.
    ++Foo.staticFunction;
          ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:47:15: Error: Setter not found: 'staticFunction'.
    use(++Foo.staticFunction);
              ^^^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:48:11: Error: Setter not found: 'staticGetter'.
    ++Foo.staticGetter;
          ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:49:15: Error: Setter not found: 'staticGetter'.
    use(++Foo.staticGetter);
              ^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:50:11: Error: Getter not found: 'staticSetter'.
    ++Foo.staticSetter;
          ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:51:15: Error: Getter not found: 'staticSetter'.
    use(++Foo.staticSetter);
              ^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:53:23: Error: The method 'call' isn't defined for the type 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
    Foo.staticConstant();
                      ^" in #C1{<unresolved>}.call();
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:54:27: Error: The method 'call' isn't defined for the type 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
    use(Foo.staticConstant());
                          ^" in #C1{<unresolved>}.call());
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:55:20: Error: The method 'call' isn't defined for the type 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
    Foo.staticField();
                   ^" in self::Foo::staticField{<unresolved>}.call();
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:56:24: Error: The method 'call' isn't defined for the type 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
    use(Foo.staticField());
                       ^" in self::Foo::staticField{<unresolved>}.call());
    self::Foo::staticFunction();
    self::use(self::Foo::staticFunction());
    self::Foo::staticGetter{dynamic}();
    self::use(self::Foo::staticGetter{dynamic}());
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:61:9: Error: Getter not found: 'staticSetter'.
    Foo.staticSetter();
        ^^^^^^^^^^^^"{dynamic}();
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:62:13: Error: Getter not found: 'staticSetter'.
    use(Foo.staticSetter());
            ^^^^^^^^^^^^"{dynamic}());
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:64:9: Error: Setter not found: 'staticConstant'.
    Foo.staticConstant = 87;
        ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:65:13: Error: Setter not found: 'staticConstant'.
    use(Foo.staticConstant = 87);
            ^^^^^^^^^^^^^^");
    self::Foo::staticField = 87;
    self::use(self::Foo::staticField = 87);
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:68:9: Error: Setter not found: 'staticFunction'.
    Foo.staticFunction = 87;
        ^^^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:69:13: Error: Setter not found: 'staticFunction'.
    use(Foo.staticFunction = 87);
            ^^^^^^^^^^^^^^");
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:70:9: Error: Setter not found: 'staticGetter'.
    Foo.staticGetter = 87;
        ^^^^^^^^^^^^";
    self::use(invalid-expression "pkg/front_end/testcases/rasta/static.dart:71:13: Error: Setter not found: 'staticGetter'.
    use(Foo.staticGetter = 87);
            ^^^^^^^^^^^^");
    self::Foo::staticSetter = 87;
    self::use(self::Foo::staticSetter = 87);
    #C1 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:75:9: Error: Setter not found: 'staticConstant'.
    Foo.staticConstant ??= 87;
        ^^^^^^^^^^^^^^" : null;
    self::use(let final core::int #t3 = #C1 in #t3 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:76:13: Error: Setter not found: 'staticConstant'.
    use(Foo.staticConstant ??= 87);
            ^^^^^^^^^^^^^^" : #t3);
    self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 87 : null;
    self::use(let final core::int #t4 = self::Foo::staticField in #t4 == null ?{core::int} self::Foo::staticField = 87 : #t4);
    #C2 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:79:9: Error: Setter not found: 'staticFunction'.
    Foo.staticFunction ??= 87;
        ^^^^^^^^^^^^^^" : null;
    self::use(let final () → dynamic #t5 = #C2 in #t5 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:80:13: Error: Setter not found: 'staticFunction'.
    use(Foo.staticFunction ??= 87);
            ^^^^^^^^^^^^^^" : #t5);
    self::Foo::staticGetter == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:81:9: Error: Setter not found: 'staticGetter'.
    Foo.staticGetter ??= 87;
        ^^^^^^^^^^^^" : null;
    self::use(let final dynamic #t6 = self::Foo::staticGetter in #t6 == null ?{invalid-type} invalid-expression "pkg/front_end/testcases/rasta/static.dart:82:13: Error: Setter not found: 'staticGetter'.
    use(Foo.staticGetter ??= 87);
            ^^^^^^^^^^^^" : #t6);
    invalid-expression "pkg/front_end/testcases/rasta/static.dart:83:9: Error: Getter not found: 'staticSetter'.
    Foo.staticSetter ??= 87;
        ^^^^^^^^^^^^" == null ?{invalid-type} self::Foo::staticSetter = 87 : null;
    self::use(let final invalid-type #t7 = invalid-expression "pkg/front_end/testcases/rasta/static.dart:84:13: Error: Getter not found: 'staticSetter'.
    use(Foo.staticSetter ??= 87);
            ^^^^^^^^^^^^" in #t7 == null ?{invalid-type} self::Foo::staticSetter = 87 : #t7);
  }
  on core::NoSuchMethodError catch(no-exception-var) {
  }
}

constants  {
  #C1 = 42
  #C2 = static-tearoff self::Foo::staticFunction
}
