goog.module('autoboxing.AutoBoxing$impl');

const j_l_Object = goog.require('java.lang.Object$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

let $1Local = goog.forwardDeclare('autoboxing.AutoBoxing.$1Local$impl');
let $1Supplier = goog.forwardDeclare('autoboxing.AutoBoxing.$1Supplier$impl');
let $2Local = goog.forwardDeclare('autoboxing.AutoBoxing.$2Local$impl');
let Ref = goog.forwardDeclare('autoboxing.AutoBoxing.Ref$impl');
let Boolean = goog.forwardDeclare('java.lang.Boolean$impl');
let Byte = goog.forwardDeclare('java.lang.Byte$impl');
let Character = goog.forwardDeclare('java.lang.Character$impl');
let Comparable = goog.forwardDeclare('java.lang.Comparable$impl');
let Double = goog.forwardDeclare('java.lang.Double$impl');
let Float = goog.forwardDeclare('java.lang.Float$impl');
let Integer = goog.forwardDeclare('java.lang.Integer$impl');
let Iterable = goog.forwardDeclare('java.lang.Iterable$impl');
let Long = goog.forwardDeclare('java.lang.Long$impl');
let Short = goog.forwardDeclare('java.lang.Short$impl');
let j_l_String = goog.forwardDeclare('java.lang.String$impl');
let $Equality = goog.forwardDeclare('nativebootstrap.Equality$impl');
let $Long = goog.forwardDeclare('nativebootstrap.Long$impl');
let $Arrays = goog.forwardDeclare('vmbootstrap.Arrays$impl');
let $Asserts = goog.forwardDeclare('vmbootstrap.Asserts$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');
let $LongUtils = goog.forwardDeclare('vmbootstrap.LongUtils$impl');
let $Primitives = goog.forwardDeclare('vmbootstrap.Primitives$impl');

class AutoBoxing extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
 }
 /** @nodts @return {!AutoBoxing} */
 static $create__() {
  AutoBoxing.$clinit();
  let $instance = new AutoBoxing();
  $instance.$ctor__autoboxing_AutoBoxing__void();
  return $instance;
 }
 /** @nodts */
 $ctor__autoboxing_AutoBoxing__void() {
  this.$ctor__java_lang_Object__void();
 }
 /** @nodts @return {?boolean} */
 m_box__boolean__java_lang_Boolean(/** boolean */ b) {
  return b;
 }
 /** @nodts @return {?number} */
 m_box__double__java_lang_Double(/** number */ d) {
  return d;
 }
 /** @nodts @return {Byte} */
 m_box__byte__java_lang_Byte(/** number */ b) {
  return Byte.m_valueOf__byte__java_lang_Byte(b);
 }
 /** @nodts @return {Float} */
 m_box__float__java_lang_Float(/** number */ f) {
  return Float.m_valueOf__float__java_lang_Float(f);
 }
 /** @nodts @return {Integer} */
 m_box__int__java_lang_Integer(/** number */ i) {
  return Integer.m_valueOf__int__java_lang_Integer(i);
 }
 /** @nodts @return {Long} */
 m_box__long__java_lang_Long(/** !$Long */ l) {
  return Long.m_valueOf__long__java_lang_Long(l);
 }
 /** @nodts @return {Short} */
 m_box__short__java_lang_Short(/** number */ s) {
  return Short.m_valueOf__short__java_lang_Short(s);
 }
 /** @nodts @return {Character} */
 m_box__char__java_lang_Character(/** number */ c) {
  return Character.m_valueOf__char__java_lang_Character(c);
 }
 /** @nodts @return {boolean} */
 m_unbox__java_lang_Boolean__boolean(/** ?boolean */ b) {
  return Boolean.m_booleanValue__java_lang_Boolean__boolean(b);
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Double__double(/** ?number */ d) {
  return Double.m_doubleValue__java_lang_Double__double(d);
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Byte__byte(/** Byte */ b) {
  return b.m_byteValue__byte();
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Float__float(/** Float */ f) {
  return f.m_floatValue__float();
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Integer__int(/** Integer */ i) {
  return i.m_intValue__int();
 }
 /** @nodts @return {!$Long} */
 m_unbox__java_lang_Long__long(/** Long */ l) {
  return l.m_longValue__long();
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Short__short(/** Short */ s) {
  return s.m_shortValue__short();
 }
 /** @nodts @return {number} */
 m_unbox__java_lang_Character__char(/** Character */ c) {
  return c.m_charValue__char();
 }
 /** @nodts @return {number} */
 m_takesAndReturnsPrimitiveDouble__double__double(/** number */ d) {
  return d;
 }
 /** @nodts @return {?void} */
 m_takesAndReturnsVoid__java_lang_Void__java_lang_Void(/** ?void */ v) {
  return null;
 }
 /** @nodts */
 m_takesFloatVarArgs__arrayOf_java_lang_Float__void(/** Array<Float> */ elements) {}
 /** @nodts @return {number} */
 m_takesObjectAndReturnsPrimitiveDouble__java_lang_Object__double(/** * */ o) {
  return Double.m_doubleValue__java_lang_Double__double(/**@type {number}*/ ($Casts.$to(o, Double)));
 }
 /** @nodts @return {number} */
 m_sumWithoutBoxing__arrayOf_java_lang_Object__double(/** Array<*> */ numbers) {
  let sum = 0;
  for (let $array = numbers, $index = 0; $index < $array.length; $index++) {
   let number_1 = $array[$index];
   {
    sum += Double.m_doubleValue__java_lang_Double__double(/**@type {?number}*/ ($Casts.$to(number_1, Double)));
   }
  }
  return sum;
 }
 /** @return {number} */
 sumWithoutBoxingJsVarargs(.../** ...* */ numbers) {
  let sum = 0;
  for (let $array = numbers, $index = 0; $index < $array.length; $index++) {
   let number_1 = $array[$index];
   {
    sum += Double.m_doubleValue__java_lang_Double__double(/**@type {?number}*/ ($Casts.$to(number_1, Double)));
   }
  }
  return sum;
 }
 /** @nodts @return {number} */
 m_sumWithUnboxing__java_lang_Iterable__double(/** Iterable<?number> */ boxedDoubles) {
  let sum = 0;
  for (let $iterator = boxedDoubles.m_iterator__java_util_Iterator(); $iterator.m_hasNext__boolean(); ) {
   let d = Double.m_doubleValue__java_lang_Double__double(/**@type {?number}*/ ($Casts.$to($iterator.m_next__java_lang_Object(), Double)));
   {
    sum += d;
   }
  }
  return sum;
 }
 /** @nodts */
 m_testBoxing__void() {
  let bool = true;
  let d = 2.2;
  let b = 1;
  let f = 1.100000023841858;
  let i = 1;
  let l = $Long.fromInt(2);
  let s = 1;
  let c = 97 /* 'a' */;
  let boxBool = bool;
  let boxD = d;
  let boxB = Byte.m_valueOf__byte__java_lang_Byte(b);
  let boxF = Float.m_valueOf__float__java_lang_Float(f);
  let boxI = Integer.m_valueOf__int__java_lang_Integer(i);
  let boxL = Long.m_valueOf__long__java_lang_Long(l);
  let boxS = Short.m_valueOf__short__java_lang_Short(s);
  let boxC = Character.m_valueOf__char__java_lang_Character(c);
  boxBool = true;
  boxD = 2.2;
  boxB = Byte.m_valueOf__byte__java_lang_Byte(1);
  boxF = Float.m_valueOf__float__java_lang_Float(1.100000023841858);
  boxI = Integer.m_valueOf__int__java_lang_Integer(1);
  boxL = Long.m_valueOf__long__java_lang_Long($Long.fromInt(2));
  boxS = Short.m_valueOf__short__java_lang_Short(1);
  boxC = Character.m_valueOf__char__java_lang_Character(1 /* '\u0001' */);
  boxC = Character.m_valueOf__char__java_lang_Character(97 /* 'a' */);
  bool = this.m_unbox__java_lang_Boolean__boolean(bool);
  d = this.m_unbox__java_lang_Double__double(d);
  b = this.m_unbox__java_lang_Byte__byte(Byte.m_valueOf__byte__java_lang_Byte(b));
  f = this.m_unbox__java_lang_Float__float(Float.m_valueOf__float__java_lang_Float(f));
  i = this.m_unbox__java_lang_Integer__int(Integer.m_valueOf__int__java_lang_Integer(i));
  l = this.m_unbox__java_lang_Long__long(Long.m_valueOf__long__java_lang_Long(l));
  s = this.m_unbox__java_lang_Short__short(Short.m_valueOf__short__java_lang_Short(s));
  c = this.m_unbox__java_lang_Character__char(Character.m_valueOf__char__java_lang_Character(c));
  let unusedDouble = this.m_takesObjectAndReturnsPrimitiveDouble__java_lang_Object__double(4);
  unusedDouble = this.m_sumWithoutBoxing__arrayOf_java_lang_Object__double([1, 2.2, 1, 1, 2.2]);
  unusedDouble = this.sumWithoutBoxingJsVarargs(1, 2.2, 1, 1, 2.2);
  this.m_takesFloatVarArgs__arrayOf_java_lang_Float__void(/**@type {!Array<Float>}*/ ($Arrays.$stampType([Float.m_valueOf__float__java_lang_Float(1.100000023841858), Float.m_valueOf__float__java_lang_Float(97 /* 'a' */), Float.m_valueOf__float__java_lang_Float(2.2)], Float)));
  let /** * */ o;
  o = 2.2;
  o = Float.m_valueOf__float__java_lang_Float(1.100000023841858);
  o = Integer.m_valueOf__int__java_lang_Integer(1);
  o = Character.m_valueOf__char__java_lang_Character(97 /* 'a' */);
  boxBool = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool) && Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool);
  boxD = Double.m_doubleValue__java_lang_Double__double(boxD) + Double.m_doubleValue__java_lang_Double__double(boxD);
  boxI = Integer.m_valueOf__int__java_lang_Integer($Primitives.coerceDivision(boxI.m_intValue__int() / boxI.m_intValue__int()));
  boxL = Long.m_valueOf__long__java_lang_Long($LongUtils.divide(boxL.m_longValue__long(), boxL.m_longValue__long()));
  boxBool = !Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool);
  boxI = Integer.m_valueOf__int__java_lang_Integer(+ boxI.m_intValue__int());
  boxI = Integer.m_valueOf__int__java_lang_Integer(- boxI.m_intValue__int() | 0);
  boxI = Integer.m_valueOf__int__java_lang_Integer(boxI.m_intValue__int() << boxI.m_intValue__int());
  boxI = Integer.m_valueOf__int__java_lang_Integer(boxI.m_intValue__int() << $Primitives.narrowLongToInt(boxL.m_longValue__long()));
  boxL = Long.m_valueOf__long__java_lang_Long($LongUtils.leftShift(boxL.m_longValue__long(), boxI.m_intValue__int()));
  boxL = Long.m_valueOf__long__java_lang_Long($LongUtils.leftShift(boxL.m_longValue__long(), $Primitives.narrowLongToInt(boxL.m_longValue__long())));
  o = Integer.m_valueOf__int__java_lang_Integer(15);
 }
 /** @nodts */
 m_testUnboxing__void() {
  let boxBool = Boolean.$create__boolean(true);
  let boxD = Double.$create__double(2.2);
  let boxB = Byte.$create__byte(1);
  let boxF = Float.$create__float(1.100000023841858);
  let boxI = Integer.$create__int(1);
  let boxL = Long.$create__long($Long.fromInt(1));
  let boxS = Short.$create__short(1);
  let boxC = Character.$create__char(97 /* 'a' */);
  let bool = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool);
  let d = Double.m_doubleValue__java_lang_Double__double(boxD);
  let b = boxB.m_byteValue__byte();
  let f = boxF.m_floatValue__float();
  let i = boxI.m_intValue__int();
  let l = boxL.m_longValue__long();
  let s = boxS.m_shortValue__short();
  let c = boxC.m_charValue__char();
  boxBool = this.m_box__boolean__java_lang_Boolean(Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool));
  boxD = this.m_box__double__java_lang_Double(Double.m_doubleValue__java_lang_Double__double(boxD));
  boxB = this.m_box__byte__java_lang_Byte(boxB.m_byteValue__byte());
  boxF = this.m_box__float__java_lang_Float(boxF.m_floatValue__float());
  boxI = this.m_box__int__java_lang_Integer(boxI.m_intValue__int());
  boxL = this.m_box__long__java_lang_Long(boxL.m_longValue__long());
  boxS = this.m_box__short__java_lang_Short(boxS.m_shortValue__short());
  boxC = this.m_box__char__java_lang_Character(boxC.m_charValue__char());
  d = boxB.m_byteValue__byte();
  d = boxF.m_floatValue__float();
  d = boxI.m_intValue__int();
  d = $Primitives.widenLongToDouble(boxL.m_longValue__long());
  d = boxS.m_shortValue__short();
  d = boxC.m_charValue__char();
  this.m_takesAndReturnsPrimitiveDouble__double__double(boxB.m_byteValue__byte());
  this.m_takesAndReturnsPrimitiveDouble__double__double(boxF.m_floatValue__float());
  this.m_takesAndReturnsPrimitiveDouble__double__double(boxI.m_intValue__int());
  this.m_takesAndReturnsPrimitiveDouble__double__double($Primitives.widenLongToDouble(boxL.m_longValue__long()));
  this.m_takesAndReturnsPrimitiveDouble__double__double(boxS.m_shortValue__short());
  this.m_takesAndReturnsPrimitiveDouble__double__double(boxC.m_charValue__char());
  let v = this.m_takesAndReturnsVoid__java_lang_Void__java_lang_Void(this.m_takesAndReturnsVoid__java_lang_Void__java_lang_Void(null));
  bool = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool) && Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool);
  d = Double.m_doubleValue__java_lang_Double__double(boxD) + Double.m_doubleValue__java_lang_Double__double(boxD);
  f = boxF.m_floatValue__float() - boxF.m_floatValue__float();
  i = Math.imul(boxI.m_intValue__int(), boxI.m_intValue__int());
  l = $LongUtils.divide(boxL.m_longValue__long(), boxL.m_longValue__long());
  bool = !Boolean.m_booleanValue__java_lang_Boolean__boolean(boxBool);
  i = + boxI.m_intValue__int();
  i = - boxI.m_intValue__int() | 0;
  i = ~boxI.m_intValue__int();
  boxD = - Double.m_doubleValue__java_lang_Double__double(boxD);
  boxI = Integer.m_valueOf__int__java_lang_Integer(- boxI.m_intValue__int() | 0);
  switch (boxI.m_intValue__int()) {
   default:
  }
  i = i + (boxI = Integer.m_valueOf__int__java_lang_Integer(boxI.m_intValue__int() + (i = i + boxI.m_intValue__int() | 0) | 0)).m_intValue__int() | 0;
  i <<= boxI.m_intValue__int();
  i <<= $Primitives.narrowLongToInt(boxL.m_longValue__long());
  l = $LongUtils.leftShift(l, boxI.m_intValue__int());
  l = $LongUtils.leftShift(l, $Primitives.narrowLongToInt(boxL.m_longValue__long()));
 }
 /** @nodts */
 m_testUnboxingBoolean__void() {
  let boxB1 = Boolean.$create__boolean(true);
  let boxB2 = Boolean.$create__boolean(false);
  let /** boolean */ br;
  let /** boolean */ boxr;
  boxr = $Equality.$same(boxB1, boxB2);
  br = $Equality.$same(boxB1, boxB2);
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = !$Equality.$same(boxB1, boxB2);
  br = !$Equality.$same(boxB1, boxB2);
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) ^ + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  br = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) ^ + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) & + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  br = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) & + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  br = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) && Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2);
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) && Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2);
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) || Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2);
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) || Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2);
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = boxB2);
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = boxB2);
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) & + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) & + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  boxr = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) ^ + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  br = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1 = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB1) ^ + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB2)));
  $Asserts.$assert(boxr);
  $Asserts.$assert(br);
  let /** ?boolean */ boxB = null;
  boxB = !Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB);
  boxB = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB) && Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB);
  boxB = Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB) ? boxB : boxB;
  if (Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB)) {}
  let b = false;
  b = !!(+ b | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB = !!(+ Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB) | + (b = !!(+ b | + Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB))))));
 }
 /** @nodts */
 m_testUnboxingEquality__void() {
  let boxB = Boolean.$create__boolean(true);
  let b = false;
  $Asserts.$assert($Equality.$same(boxB, boxB));
  $Asserts.$assert(Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB) == b);
  $Asserts.$assert(b != b);
  $Asserts.$assert(b != Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB));
  let boxI = Integer.$create__int(1);
  let i = 1;
  $Asserts.$assert($Equality.$same(boxI, boxI));
  $Asserts.$assert(boxI.m_intValue__int() == i);
  $Asserts.$assert(i != i);
  $Asserts.$assert(i != boxI.m_intValue__int());
 }
 /** @nodts */
 static m_acceptsObject__java_lang_Object__void(/** * */ x) {}
 /** @nodts */
 static m_acceptsInt__int__void(/** number */ x) {}
 /** @nodts */
 static m_acceptsString__java_lang_String__void(/** ?string */ x) {}
 /** @nodts */
 static m_testUnboxingGeneric__autoboxing_AutoBoxing_Ref__autoboxing_AutoBoxing_Ref__autoboxing_AutoBoxing_Ref__void(/** Ref<Integer> */ integerRef, /** Ref<?boolean> */ booleanRef, /** Ref<?string> */ stringRef) {
  integerRef.f_field__autoboxing_AutoBoxing_Ref = (/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer)));
  integerRef.f_field__autoboxing_AutoBoxing_Ref = Integer.m_valueOf__int__java_lang_Integer((/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer))).m_intValue__int() + 1 | 0);
  integerRef.f_field__autoboxing_AutoBoxing_Ref = Integer.m_valueOf__int__java_lang_Integer((/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer))).m_intValue__int() + 1 | 0);
  AutoBoxing.m_acceptsInt__int__void((/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer))).m_intValue__int());
  AutoBoxing.m_acceptsObject__java_lang_Object__void(Integer.m_valueOf__int__java_lang_Integer(- (/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer))).m_intValue__int() | 0));
  AutoBoxing.m_acceptsObject__java_lang_Object__void(!Boolean.m_booleanValue__java_lang_Boolean__boolean(/**@type {?boolean}*/ ($Casts.$to(booleanRef.f_field__autoboxing_AutoBoxing_Ref, Boolean))));
  AutoBoxing.m_acceptsObject__java_lang_Object__void(Integer.m_valueOf__int__java_lang_Integer(1 + (/**@type {Integer}*/ ($Casts.$to(integerRef.f_field__autoboxing_AutoBoxing_Ref, Integer))).m_intValue__int() | 0));
  AutoBoxing.m_acceptsObject__java_lang_Object__void(Boolean.m_booleanValue__java_lang_Boolean__boolean(/**@type {?boolean}*/ ($Casts.$to(booleanRef.f_field__autoboxing_AutoBoxing_Ref, Boolean))) || Boolean.m_booleanValue__java_lang_Boolean__boolean(/**@type {?boolean}*/ ($Casts.$to(booleanRef.f_field__autoboxing_AutoBoxing_Ref, Boolean))));
  AutoBoxing.m_acceptsObject__java_lang_Object__void(j_l_String.m_valueOf__java_lang_Object__java_lang_String(/**@type {?string}*/ ($Casts.$to(stringRef.f_field__autoboxing_AutoBoxing_Ref, j_l_String))) + j_l_String.m_valueOf__java_lang_Object__java_lang_String(/**@type {?string}*/ ($Casts.$to(stringRef.f_field__autoboxing_AutoBoxing_Ref, j_l_String))));
  stringRef.f_field__autoboxing_AutoBoxing_Ref = (/**@type {?string}*/ ($Casts.$to(stringRef.f_field__autoboxing_AutoBoxing_Ref, j_l_String)));
  AutoBoxing.m_acceptsString__java_lang_String__void('' + j_l_String.m_valueOf__java_lang_Object__java_lang_String(integerRef.f_field__autoboxing_AutoBoxing_Ref));
 }
 /** @nodts */
 m_testAssertStatement__void() {
  let boxB = Boolean.$create__boolean(true);
  let b = true;
  $Asserts.$assert(Boolean.m_booleanValue__java_lang_Boolean__boolean(boxB));
  $Asserts.$assert(b);
 }
 /** @nodts @template T */
 static m_testUnboxingFromTypeVariable__void() {
  AutoBoxing.$clinit();
  let n = /**@type {T}*/ (Long.m_valueOf__long__java_lang_Long($Long.fromInt(10)));
  let l = (/**@type {!Long}*/ (n)).m_longValue__long();
  $Asserts.$assert($LongUtils.equals(l, $Long.fromInt(10)));
  n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  let /** ?T */ $value;
  n = ($value = n, n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1))))), $value);
  n = n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  l = (/**@type {!$1Local<Long, T>}*/ ($1Local.$create__())).m_toLong__java_lang_Long__long_$pp_autoboxing(Long.m_valueOf__long__java_lang_Long($Long.fromInt(11)));
  $Asserts.$assert($LongUtils.equals(l, $Long.fromInt(11)));
 }
 /** @nodts @template T */
 static m_testUnboxingFromIntersectionType__void() {
  AutoBoxing.$clinit();
  let n = /**@type {T}*/ (Long.m_valueOf__long__java_lang_Long($Long.fromInt(10)));
  let l = (/**@type {!Long}*/ (n)).m_longValue__long();
  $Asserts.$assert($LongUtils.equals(l, $Long.fromInt(10)));
  n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  let /** ?T */ $value;
  n = ($value = n, n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1))))), $value);
  n = n = (/**@type {?T}*/ (Long.m_valueOf__long__java_lang_Long($LongUtils.plus((/**@type {!Long}*/ (n)).m_longValue__long(), $Long.fromInt(1)))));
  l = (/**@type {!$2Local<Long, T>}*/ ($2Local.$create__())).m_toLong__java_lang_Long__long_$pp_autoboxing(Long.m_valueOf__long__java_lang_Long($Long.fromInt(11)));
  $Asserts.$assert($LongUtils.equals(l, $Long.fromInt(11)));
  let i = Integer.m_valueOf__int__java_lang_Integer(10).m_intValue__int();
 }
 /** @nodts */
 m_testUnbox_withCast__void() {
  let supplier = /**@type {!$1Supplier<Integer>}*/ ($1Supplier.$create__autoboxing_AutoBoxing(this));
  let i = (/**@type {Integer}*/ ($Casts.$to(supplier.m_get__java_lang_Object_$pp_autoboxing(), Integer))).m_intValue__int();
 }
 /** @nodts */
 static $clinit() {
  AutoBoxing.$clinit = () =>{};
  AutoBoxing.$loadModules();
  j_l_Object.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof AutoBoxing;
 }
 
 /** @nodts */
 static $loadModules() {
  $1Local = goog.module.get('autoboxing.AutoBoxing.$1Local$impl');
  $1Supplier = goog.module.get('autoboxing.AutoBoxing.$1Supplier$impl');
  $2Local = goog.module.get('autoboxing.AutoBoxing.$2Local$impl');
  Boolean = goog.module.get('java.lang.Boolean$impl');
  Byte = goog.module.get('java.lang.Byte$impl');
  Character = goog.module.get('java.lang.Character$impl');
  Double = goog.module.get('java.lang.Double$impl');
  Float = goog.module.get('java.lang.Float$impl');
  Integer = goog.module.get('java.lang.Integer$impl');
  Long = goog.module.get('java.lang.Long$impl');
  Short = goog.module.get('java.lang.Short$impl');
  j_l_String = goog.module.get('java.lang.String$impl');
  $Equality = goog.module.get('nativebootstrap.Equality$impl');
  $Long = goog.module.get('nativebootstrap.Long$impl');
  $Arrays = goog.module.get('vmbootstrap.Arrays$impl');
  $Asserts = goog.module.get('vmbootstrap.Asserts$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
  $LongUtils = goog.module.get('vmbootstrap.LongUtils$impl');
  $Primitives = goog.module.get('vmbootstrap.Primitives$impl');
 }
}
/**@const {number} @nodts*/
AutoBoxing.f_COMPILE_TIME_CONSTANT__autoboxing_AutoBoxing = 1.100000023841858;
$Util.$setClassMetadata(AutoBoxing, 'autoboxing.AutoBoxing');

exports = AutoBoxing;

//# sourceMappingURL=AutoBoxing.js.map
