goog.module('instanceofexpression.InstanceofExpressions$impl');

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

let $1 = goog.forwardDeclare('instanceofexpression.InstanceofExpressions.$1$impl');
let Serializable = goog.forwardDeclare('java.io.Serializable$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 Double = goog.forwardDeclare('java.lang.Double$impl');
let Float = goog.forwardDeclare('java.lang.Float$impl');
let Integer = goog.forwardDeclare('java.lang.Integer$impl');
let Long = goog.forwardDeclare('java.lang.Long$impl');
let Number = goog.forwardDeclare('java.lang.Number$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 $Arrays = goog.forwardDeclare('vmbootstrap.Arrays$impl');
let $Numbers = goog.forwardDeclare('vmbootstrap.Numbers$impl');
let $$boolean = goog.forwardDeclare('vmbootstrap.primitives.$boolean$impl');
let $$byte = goog.forwardDeclare('vmbootstrap.primitives.$byte$impl');
let $$char = goog.forwardDeclare('vmbootstrap.primitives.$char$impl');
let $$double = goog.forwardDeclare('vmbootstrap.primitives.$double$impl');
let $$float = goog.forwardDeclare('vmbootstrap.primitives.$float$impl');
let $$int = goog.forwardDeclare('vmbootstrap.primitives.$int$impl');
let $$long = goog.forwardDeclare('vmbootstrap.primitives.$long$impl');
let $$short = goog.forwardDeclare('vmbootstrap.primitives.$short$impl');

class InstanceofExpressions extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
 }
 /** @nodts @return {!InstanceofExpressions} */
 static $create__() {
  InstanceofExpressions.$clinit();
  let $instance = new InstanceofExpressions();
  $instance.$ctor__instanceofexpression_InstanceofExpressions__void();
  return $instance;
 }
 /** @nodts */
 $ctor__instanceofexpression_InstanceofExpressions__void() {
  this.$ctor__java_lang_Object__void();
 }
 /** @nodts */
 m_testInstanceofClass__void() {
  let object = InstanceofExpressions.$create__();
  let /** boolean */ b;
  b = !$Equality.$same(object, null);
  b = InstanceofExpressions.$isInstance(object);
  b = j_l_String.$isInstance(object);
 }
 /** @nodts */
 m_testInstanceofInterface__void() {
  let o = j_l_Object.$create__();
  let /** boolean */ b;
  b = Serializable.$isInstance(o);
  b = !$Equality.$same($1.$create__instanceofexpression_InstanceofExpressions(this), null);
 }
 /** @nodts */
 m_testInstanceofBoxedType__void() {
  let b = Integer.$create__int(1);
  let a = Byte.$isInstance(b);
  a = Double.$isInstance(b);
  a = Float.$isInstance(b);
  a = Integer.$isInstance(b);
  a = Long.$isInstance(b);
  a = Short.$isInstance(b);
  a = Number.$isInstance(b);
  a = Character.$isInstance(b);
  a = Boolean.$isInstance(b);
  let /** ?number */ d = null;
  a = !$Equality.$same(d, null);
  a = !$Equality.$same(d, null);
  a = !$Equality.$same(d, null);
 }
 /** @nodts */
 m_testInstanceOfArray__void() {
  let object = j_l_Object.$create__();
  let objectArray = new Array(0);
  let objectDoubleArray = /**@type {!Array<Array<*>>}*/ ($Arrays.$create([0, null], j_l_Object));
  let stringArray = /**@type {!Array<?string>}*/ ($Arrays.$create([0], j_l_String));
  let /** boolean */ a;
  a = $Arrays.$instanceIsOfType(object, j_l_Object, 1);
  a = $Arrays.$instanceIsOfType(object, j_l_String, 2);
  a = $Arrays.$instanceIsOfType(object, j_l_Object, 1);
  a = $Arrays.$instanceIsOfType(object, j_l_String, 2);
  a = !$Equality.$same(objectArray, null);
  a = $Arrays.$instanceIsOfType(objectArray, j_l_String, 1);
  a = $Arrays.$instanceIsOfType(objectArray, j_l_Object, 2);
  a = $Arrays.$instanceIsOfType(objectArray, j_l_String, 2);
  a = !$Equality.$same(objectDoubleArray, null);
  a = !$Equality.$same(objectDoubleArray, null);
  a = $Arrays.$instanceIsOfType(objectDoubleArray, j_l_String, 2);
  a = !$Equality.$same(stringArray, null);
  a = !$Equality.$same(stringArray, null);
  a = $Arrays.$instanceIsOfType(object, $$byte, 1);
  a = $Arrays.$instanceIsOfType(object, $$short, 1);
  a = $Arrays.$instanceIsOfType(object, $$int, 1);
  a = $Arrays.$instanceIsOfType(object, $$long, 1);
  a = $Arrays.$instanceIsOfType(object, $$float, 1);
  a = $Arrays.$instanceIsOfType(object, $$double, 1);
  a = $Arrays.$instanceIsOfType(object, $$char, 1);
  a = $Arrays.$instanceIsOfType(object, $$boolean, 1);
 }
 /** @nodts */
 m_testPrecedence__void() {
  let b = !$Equality.$same(false ? 'foo' : 'bar', null);
 }
 /** @nodts */
 m_testPatternMatch__void_$p_instanceofexpression_InstanceofExpressions() {
  let /** * */ exp, /** ?string */ s, /** * */ exp_1, /** Integer */ i, /** * */ exp_2, /** (Number|number) */ n;
  if (!((exp = j_l_Object.$create__(), s = j_l_String.$isInstance(exp) ? /**@type {?string}*/ (exp) : null), !$Equality.$same(s, null)) || j_l_String.m_length__java_lang_String__int(s) == 2) {
   return;
  }
  if (((exp_1 = j_l_Object.$create__(), i = Integer.$isInstance(exp_1) ? /**@type {Integer}*/ (exp_1) : null), !$Equality.$same(i, null)) && i.m_intValue__int() == 2) {
   let l = i.m_intValue__int();
  }
  if (!((exp_2 = j_l_Object.$create__(), n = Number.$isInstance(exp_2) ? /**@type {(Number|number)}*/ (exp_2) : null), !$Equality.$same(n, null))) {
   let j = j_l_String.m_length__java_lang_String__int(s);
  } else {
   let k = $Numbers.m_byteValue__java_lang_Number__byte(n);
  }
 }
 /** @nodts */
 static $clinit() {
  InstanceofExpressions.$clinit = () =>{};
  InstanceofExpressions.$loadModules();
  j_l_Object.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof InstanceofExpressions;
 }
 
 /** @nodts */
 static $loadModules() {
  $1 = goog.module.get('instanceofexpression.InstanceofExpressions.$1$impl');
  Serializable = goog.module.get('java.io.Serializable$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');
  Number = goog.module.get('java.lang.Number$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');
  $Arrays = goog.module.get('vmbootstrap.Arrays$impl');
  $Numbers = goog.module.get('vmbootstrap.Numbers$impl');
  $$boolean = goog.module.get('vmbootstrap.primitives.$boolean$impl');
  $$byte = goog.module.get('vmbootstrap.primitives.$byte$impl');
  $$char = goog.module.get('vmbootstrap.primitives.$char$impl');
  $$double = goog.module.get('vmbootstrap.primitives.$double$impl');
  $$float = goog.module.get('vmbootstrap.primitives.$float$impl');
  $$int = goog.module.get('vmbootstrap.primitives.$int$impl');
  $$long = goog.module.get('vmbootstrap.primitives.$long$impl');
  $$short = goog.module.get('vmbootstrap.primitives.$short$impl');
 }
}
$Util.$setClassMetadata(InstanceofExpressions, 'instanceofexpression.InstanceofExpressions');

exports = InstanceofExpressions;

//# sourceMappingURL=InstanceofExpressions.js.map
