// @dart = 2.9
class Class {
  @pragma('dart2js:noInline')
  instanceMethod() {}
  @pragma('dart2js:noInline')
  static staticMethod() {}
}

extension Extension on Class {
  @pragma('dart2js:noInline')
  extensionInstanceMethod() {}
  @pragma('dart2js:noInline')
  static extensionStaticMethod() {}
}

@pragma('dart2js:noInline')
topLevelMethod() {}
main() {}
