goog.module('innerclassinitorder.InnerClassInitOrder.P1.P2$impl');

const P1 = goog.require('innerclassinitorder.InnerClassInitOrder.P1$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

/**
 * @template T2, T1
 * @extends {P1<T1>}
 */
class P2 extends P1 {
 /** @protected @nodts */
 constructor() {
  super();
  /**@type {!P1<T1>} @nodts*/
  this.$outer_this__innerclassinitorder_InnerClassInitOrder_P1_P2;
 }
 //Factory method corresponding to constructor 'P2(P1)'.
 /** @nodts @template T2, T1 @return {!P2<T2, T1>} */
 static $create__innerclassinitorder_InnerClassInitOrder_P1(/** !P1<T1> */ $outer_this) {
  P2.$clinit();
  let $instance = new P2();
  $instance.$ctor__innerclassinitorder_InnerClassInitOrder_P1_P2__innerclassinitorder_InnerClassInitOrder_P1__void($outer_this);
  return $instance;
 }
 //Initialization from constructor 'P2(P1)'.
 /** @nodts */
 $ctor__innerclassinitorder_InnerClassInitOrder_P1_P2__innerclassinitorder_InnerClassInitOrder_P1__void(/** !P1<T1> */ $outer_this) {
  this.$ctor__innerclassinitorder_InnerClassInitOrder_P1_P2__innerclassinitorder_InnerClassInitOrder_P1__int__void($outer_this, 1);
 }
 //Factory method corresponding to constructor 'P2(P1, int)'.
 /** @nodts @template T2, T1 @return {!P2<T2, T1>} */
 static $create__innerclassinitorder_InnerClassInitOrder_P1__int(/** !P1<T1> */ $outer_this, /** number */ i) {
  P2.$clinit();
  let $instance = new P2();
  $instance.$ctor__innerclassinitorder_InnerClassInitOrder_P1_P2__innerclassinitorder_InnerClassInitOrder_P1__int__void($outer_this, i);
  return $instance;
 }
 //Initialization from constructor 'P2(P1, int)'.
 /** @nodts */
 $ctor__innerclassinitorder_InnerClassInitOrder_P1_P2__innerclassinitorder_InnerClassInitOrder_P1__int__void(/** !P1<T1> */ $outer_this, /** number */ i) {
  this.$outer_this__innerclassinitorder_InnerClassInitOrder_P1_P2 = $outer_this;
  this.$ctor__innerclassinitorder_InnerClassInitOrder_P1__int__void(i);
 }
 /** @nodts */
 static $clinit() {
  P2.$clinit = () =>{};
  P2.$loadModules();
  P1.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof P2;
 }
 
 /** @nodts */
 static $loadModules() {}
}
$Util.$setClassMetadata(P2, 'innerclassinitorder.InnerClassInitOrder$P1$P2');

exports = P2;

//# sourceMappingURL=InnerClassInitOrder$P1$P2.js.map
