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

// @dart=2.5

/*library: nnbd=false*/

import 'opt_in.dart';

/*class: LegacyClass:Class,Interface,LegacyClass,Object*/
class LegacyClass extends Class implements Interface {
  /*member: LegacyClass.method1:int* Function()**/
  /*member: LegacyClass.method2:int* Function()**/

  /*member: LegacyClass.method3:int* Function()**/
  int method3() => 0;

  /*member: LegacyClass.method4:int* Function()**/
  int method4() => 0;

  /*member: LegacyClass.method5a:int* Function(int*, int*)**/
  /*member: LegacyClass.method5b:int* Function(int*, [int*])**/
  /*member: LegacyClass.method5c:int* Function([int*, int*])**/

  /*member: LegacyClass.method6a:int* Function(int*, int*)**/
  int method6a(int a, int b) => 0;

  /*member: LegacyClass.method6b:int* Function(int*, [int*])**/
  int method6b(int a, [int b]) => 0;

  /*member: LegacyClass.method6c:int* Function([int*, int*])**/
  int method6c([int a, int b]) => 0;

  /*member: LegacyClass.method7a:int* Function(int*, {int* b})**/
  /*member: LegacyClass.method7b:int* Function({int* a, int* b})**/

  /*member: LegacyClass.method8a:int* Function(int*, {int* b})**/
  int method8a(int a, {int b: 0}) => 0;

  /*member: LegacyClass.method8b:int* Function({int* a, int* b})**/
  int method8b({int a, int b: 0}) => 0;

  /*member: LegacyClass.method9a:int* Function(int*, {int* b})**/
  /*member: LegacyClass.method9b:int* Function({int* a, int* b})**/

  /*member: LegacyClass.method10a:int* Function(int*, {int* b})**/
  int method10a(int a, {int b}) => 0;

  /*member: LegacyClass.method10b:int* Function({int* a, int* b})**/
  int method10b({int a, int b}) => 0;

  /*member: LegacyClass.getter1:int**/
  /*member: LegacyClass.getter2:int**/

  /*member: LegacyClass.getter3:int**/
  int get getter3 => 0;

  /*member: LegacyClass.getter4:int**/
  int get getter4 => 0;

  /*member: LegacyClass.setter1=:int**/

  /*member: LegacyClass.setter2=:int**/

  /*member: LegacyClass.setter3=:int**/
  void set setter3(int value) {}

  /*member: LegacyClass.setter4=:int**/
  void set setter4(int value) {}

  /*member: LegacyClass.field1:int**/
  /*member: LegacyClass.field1=:int**/

  /*member: LegacyClass.field2:int**/
  /*member: LegacyClass.field2=:int**/

  /*member: LegacyClass.field3:int**/
  /*member: LegacyClass.field3=:int**/
  int field3;

  /*member: LegacyClass.field4:int**/
  /*member: LegacyClass.field4=:int**/
  int field4;

  /*member: LegacyClass.field5:int**/
  /*member: LegacyClass.field5=:int**/

  /*member: LegacyClass.field6a:int**/
  /*member: LegacyClass.field6a=:int**/
  var field6a = 0;

  /*member: LegacyClass.field6b:int**/
  /*member: LegacyClass.field6b=:int**/
  var field6b = constant;

  /*member: LegacyClass.property1:int**/
  /*member: LegacyClass.property1=:int**/
  /*member: LegacyClass.property2:int**/
  /*member: LegacyClass.property2=:int**/

  /*member: LegacyClass.property3:int**/
  int get property3 => 0;

  /*member: LegacyClass.property3=:int**/
  void set property3(int value) {}

  /*member: LegacyClass.property4:int**/
  int get property4 => 0;

  /*member: LegacyClass.property4=:int**/
  void set property4(int value) {}

  /*member: LegacyClass.property5:int**/
  /*member: LegacyClass.property5=:int**/

  /*member: LegacyClass.property6:int**/
  /*member: LegacyClass.property6=:int**/

  /*member: LegacyClass.property7:int**/
  /*member: LegacyClass.property7=:int**/
  int property7;

  /*member: LegacyClass.property8:int**/
  /*member: LegacyClass.property8=:int**/
  int property8;
}

/*class: LegacyClass2a:Class,LegacyClass2a,Object*/
abstract class LegacyClass2a extends Class {
  /*member: LegacyClass2a.field1:int**/
  /*member: LegacyClass2a.field1=:int**/
  /*member: LegacyClass2a.field2:int**/
  /*member: LegacyClass2a.field2=:int**/
  /*member: LegacyClass2a.field5:int**/
  /*member: LegacyClass2a.field5=:int**/

  /*member: LegacyClass2a.field6a:int**/
  /*member: LegacyClass2a.field6a=:int**/
  /*member: LegacyClass2a.field6b:int**/
  /*member: LegacyClass2a.field6b=:int**/

  /*member: LegacyClass2a.getter1:int**/
  /*member: LegacyClass2a.getter2:int**/

  /*member: LegacyClass2a.method1:int* Function()**/
  /*member: LegacyClass2a.method2:int* Function()**/
  /*member: LegacyClass2a.method5a:int* Function(int*, int*)**/
  /*member: LegacyClass2a.method5b:int* Function(int*, [int*])**/
  /*member: LegacyClass2a.method5c:int* Function([int*, int*])**/
  /*member: LegacyClass2a.method7a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2a.method7b:int* Function({int* a, int* b})**/
  /*member: LegacyClass2a.method9a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2a.method9b:int* Function({int* a, int* b})**/

  /*member: LegacyClass2a.property1:int**/
  /*member: LegacyClass2a.property1=:int**/
  /*member: LegacyClass2a.property2:int**/
  /*member: LegacyClass2a.property2=:int**/
  /*member: LegacyClass2a.property5:int**/
  /*member: LegacyClass2a.property5=:int**/
  /*member: LegacyClass2a.property6:int**/
  /*member: LegacyClass2a.property6=:int**/

  /*member: LegacyClass2a.setter1=:int**/
  /*member: LegacyClass2a.setter2=:int**/
}

/*class: LegacyInterface2:Interface,LegacyInterface2,Object*/
abstract class LegacyInterface2 implements Interface {
  /*member: LegacyInterface2.field1:int**/
  /*member: LegacyInterface2.field1=:int**/
  /*member: LegacyInterface2.field2:int**/
  /*member: LegacyInterface2.field2=:int**/
  /*member: LegacyInterface2.field3:int**/
  /*member: LegacyInterface2.field3=:int**/
  /*member: LegacyInterface2.field4:int**/
  /*member: LegacyInterface2.field4=:int**/

  /*member: LegacyInterface2.getter1:int**/
  /*member: LegacyInterface2.getter2:int**/
  /*member: LegacyInterface2.getter3:int**/
  /*member: LegacyInterface2.getter4:int**/

  /*member: LegacyInterface2.method1:int* Function()**/
  /*member: LegacyInterface2.method2:int* Function()**/
  /*member: LegacyInterface2.method3:int* Function()**/
  /*member: LegacyInterface2.method4:int* Function()**/
  /*member: LegacyInterface2.method5a:int* Function(int*, int*)**/
  /*member: LegacyInterface2.method5b:int* Function(int*, [int*])**/
  /*member: LegacyInterface2.method5c:int* Function([int*, int*])**/
  /*member: LegacyInterface2.method6a:int* Function(int*, int*)**/
  /*member: LegacyInterface2.method6b:int* Function(int*, [int*])**/
  /*member: LegacyInterface2.method6c:int* Function([int*, int*])**/
  /*member: LegacyInterface2.method7a:int* Function(int*, {int* b})**/
  /*member: LegacyInterface2.method7b:int* Function({int* a, int* b})**/
  /*member: LegacyInterface2.method8a:int* Function(int*, {int* b})**/
  /*member: LegacyInterface2.method8b:int* Function({int* a, int* b})**/
  /*member: LegacyInterface2.method9a:int* Function(int*, {int* b})**/
  /*member: LegacyInterface2.method9b:int* Function({int* a, int* b})**/
  /*member: LegacyInterface2.method10a:int* Function(int*, {int* b})**/
  /*member: LegacyInterface2.method10b:int* Function({int* a, int* b})**/

  /*member: LegacyInterface2.property1:int**/
  /*member: LegacyInterface2.property1=:int**/
  /*member: LegacyInterface2.property2:int**/
  /*member: LegacyInterface2.property2=:int**/
  /*member: LegacyInterface2.property3:int**/
  /*member: LegacyInterface2.property3=:int**/
  /*member: LegacyInterface2.property4:int**/
  /*member: LegacyInterface2.property4=:int**/
  /*member: LegacyInterface2.property5:int**/
  /*member: LegacyInterface2.property5=:int**/
  /*member: LegacyInterface2.property6:int**/
  /*member: LegacyInterface2.property6=:int**/
  /*member: LegacyInterface2.property7:int**/
  /*member: LegacyInterface2.property7=:int**/
  /*member: LegacyInterface2.property8:int**/
  /*member: LegacyInterface2.property8=:int**/

  /*member: LegacyInterface2.setter1=:int**/
  /*member: LegacyInterface2.setter2=:int**/
  /*member: LegacyInterface2.setter3=:int**/
  /*member: LegacyInterface2.setter4=:int**/
}

/*class: LegacyClass2b:Class,Interface,LegacyClass2a,LegacyClass2b,LegacyInterface2,Object*/
abstract class LegacyClass2b extends LegacyClass2a implements LegacyInterface2 {
  /*member: LegacyClass2b.field1:int**/
  /*member: LegacyClass2b.field1=:int**/
  /*member: LegacyClass2b.field2:int**/
  /*member: LegacyClass2b.field2=:int**/
  /*member: LegacyClass2b.field3:int**/
  /*member: LegacyClass2b.field3=:int**/
  /*member: LegacyClass2b.field4:int**/
  /*member: LegacyClass2b.field4=:int**/
  /*member: LegacyClass2b.field5:int**/
  /*member: LegacyClass2b.field5=:int**/
  /*member: LegacyClass2b.field6a:int**/
  /*member: LegacyClass2b.field6a=:int**/
  /*member: LegacyClass2b.field6b:int**/
  /*member: LegacyClass2b.field6b=:int**/

  /*member: LegacyClass2b.getter1:int**/
  /*member: LegacyClass2b.getter2:int**/
  /*member: LegacyClass2b.getter3:int**/
  /*member: LegacyClass2b.getter4:int**/

  /*member: LegacyClass2b.method1:int* Function()**/
  /*member: LegacyClass2b.method2:int* Function()**/
  /*member: LegacyClass2b.method3:int* Function()**/
  /*member: LegacyClass2b.method4:int* Function()**/
  /*member: LegacyClass2b.method5a:int* Function(int*, int*)**/
  /*member: LegacyClass2b.method5b:int* Function(int*, [int*])**/
  /*member: LegacyClass2b.method5c:int* Function([int*, int*])**/
  /*member: LegacyClass2b.method6a:int* Function(int*, int*)**/
  /*member: LegacyClass2b.method6b:int* Function(int*, [int*])**/
  /*member: LegacyClass2b.method6c:int* Function([int*, int*])**/
  /*member: LegacyClass2b.method7a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2b.method7b:int* Function({int* a, int* b})**/
  /*member: LegacyClass2b.method8a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2b.method8b:int* Function({int* a, int* b})**/
  /*member: LegacyClass2b.method9a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2b.method9b:int* Function({int* a, int* b})**/
  /*member: LegacyClass2b.method10a:int* Function(int*, {int* b})**/
  /*member: LegacyClass2b.method10b:int* Function({int* a, int* b})**/

  /*member: LegacyClass2b.property1:int**/
  /*member: LegacyClass2b.property1=:int**/
  /*member: LegacyClass2b.property2:int**/
  /*member: LegacyClass2b.property2=:int**/
  /*member: LegacyClass2b.property3:int**/
  /*member: LegacyClass2b.property3=:int**/
  /*member: LegacyClass2b.property4:int**/
  /*member: LegacyClass2b.property4=:int**/
  /*member: LegacyClass2b.property5:int**/
  /*member: LegacyClass2b.property5=:int**/
  /*member: LegacyClass2b.property6:int**/
  /*member: LegacyClass2b.property6=:int**/
  /*member: LegacyClass2b.property7:int**/
  /*member: LegacyClass2b.property7=:int**/
  /*member: LegacyClass2b.property8:int**/
  /*member: LegacyClass2b.property8=:int**/

  /*member: LegacyClass2b.setter1=:int**/
  /*member: LegacyClass2b.setter2=:int**/
  /*member: LegacyClass2b.setter3=:int**/
  /*member: LegacyClass2b.setter4=:int**/
}

/*class: LegacyGenericClass1:GenericInterface<T*>,LegacyGenericClass1<T*>,Object*/
abstract class LegacyGenericClass1<T> implements GenericInterface<T> {
  /*member: LegacyGenericClass1.genericMethod1:S* Function<S>(T*, S*, {T* c, S* d})**/
  /*member: LegacyGenericClass1.genericMethod2:S* Function<S>(T*, S*, [T*, S*])**/
}
