goog.module('sourcemap.SourceMap$impl');

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

let Comparable = goog.forwardDeclare('java.lang.Comparable$impl');
let Integer = goog.forwardDeclare('java.lang.Integer$impl');
let Number = goog.forwardDeclare('java.lang.Number$impl');
let ArrayList = goog.forwardDeclare('java.util.ArrayList$impl');
let j_u_function_Function = goog.forwardDeclare('java.util.function.Function$impl');
let Supplier = goog.forwardDeclare('java.util.function.Supplier$impl');
let ToDoubleFunction = goog.forwardDeclare('java.util.function.ToDoubleFunction$impl');
let ToIntFunction = goog.forwardDeclare('java.util.function.ToIntFunction$impl');
let ToLongFunction = goog.forwardDeclare('java.util.function.ToLongFunction$impl');
let $1LocalClass = goog.forwardDeclare('sourcemap.SourceMap.$1LocalClass$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');
let $Primitives = goog.forwardDeclare('vmbootstrap.Primitives$impl');

/**
 * @abstract
 * @template T
 * @implements {Comparator<T>}
 */
class SourceMap extends j_l_Object {
 //JsConstructor 'SourceMap(int)'.
 
 constructor(/** number */ i) {
  SourceMap.$clinit();
  super();
  /**@type {number} @nodts*/
  this.f_uninitializedInstanceField__sourcemap_SourceMap_ = 0;
  /**@type {?string} @nodts*/
  this.f_uninitializedInstanceField2__sourcemap_SourceMap_;
  /**@type {number} @nodts*/
  this.f_initializedInstanceField__sourcemap_SourceMap_ = 0;
  this.$ctor__sourcemap_SourceMap__int__void(i);
 }
 //Initialization from constructor 'SourceMap(int)'.
 /** @nodts */
 $ctor__sourcemap_SourceMap__int__void(/** number */ i) {
  this.$ctor__java_lang_Object__void();
  this.$init__void_$p_sourcemap_SourceMap();
 }
 //Initialization from constructor 'SourceMap(int, String)'.
 /** @nodts */
 $ctor__sourcemap_SourceMap__int__java_lang_String__void(/** number */ uninitializedInstanceField, /** ?string */ uninitializedInstanceField2) {}
 /** @nodts @return {number} */
 m_testStatements__int__int__int__int__int_$p_sourcemap_SourceMap(/** number */ a, /** number */ b, /** number */ times, /** number */ number_1) {
  let value = 0;
  for (let i = 0; i < times; i = i + 1 | 0) {
   value = value + 1 | 0;
  }
  if ($Primitives.coerceDivision(number_1 % 2) == 0) {
   value = value + 1 | 0;
  } else {
   value = value + 2 | 0;
  }
  let b2 = b;
  while (b2 > 0 && b2 < 100) {
   b2 = b2 - 10 | 0;
  }
  value = value + (a + b2) | 0;
  outerLoop: for (let i_1 = 0; i_1 <= 2; i_1 = i_1 + 1 | 0) {
   switch (number_1) {
    case 1:
     value = value + 5 | 0;
     break;
    case 2:
     value = value + 2 | 0;
     break outerLoop;
    case 3:
     break outerLoop;
   }
   if (i_1 == 1) {
    break;
   }
  }
  return value;
 }
 /** @nodts */
 m_testLambdaAndMethodReference__int__void_$p_sourcemap_SourceMap(/** number */ n) {
  let f = j_u_function_Function.$adapt(/**  @return {Integer}*/ ((/** Integer */ i) =>{
   let i_1 = /**@type {Integer}*/ ($Casts.$to(i, Integer));
   return Integer.m_valueOf__int__java_lang_Integer(i_1.m_intValue__int() + 1 | 0);
  }));
  let /** ArrayList */ $$q;
  let f2 = ($$q = (/**@type {!ArrayList}*/ (ArrayList.$create__())), Supplier.$adapt(/**  @return {Integer}*/ (() =>{
   return Integer.m_valueOf__int__java_lang_Integer($$q.size());
  })));
  let f3 = Supplier.$adapt(/**  @return {Integer}*/ (() =>{
   return Integer.m_valueOf__int__java_lang_Integer(this.m_simpleMethod__int_$p_sourcemap_SourceMap());
  }));
 }
 /** @nodts @return {number} */
 m_simpleMethod__int_$p_sourcemap_SourceMap() {
  return 1;
 }
 /** @nodts */
 m_testLocalClass__void_$p_sourcemap_SourceMap() {
  $1LocalClass.$create__sourcemap_SourceMap(this);
 }
 /** @nodts */
 m_testSwitchExpression__void_$p_sourcemap_SourceMap() {
  let v = 1;
  let r = (() =>{
   switch (v) {
    case 1:case 2:
     return 10;
    default:
     return 20;
   }
  })();
 }
 //Default method forwarding stub.
 /** @override @nodts @return {Comparator<T>} */
 m_reversed__java_util_Comparator() {
  return /**@type {Comparator<T>}*/ (Comparator.m_reversed__$default__java_util_Comparator__java_util_Comparator(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @return {Comparator<T>} */
 m_thenComparing__java_util_Comparator__java_util_Comparator(/** Comparator<?> */ arg0) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparing__$default__java_util_Comparator__java_util_Comparator__java_util_Comparator(this, arg0));
 }
 //Default method forwarding stub.
 /** @override @nodts @template U @return {Comparator<T>} */
 m_thenComparing__java_util_function_Function__java_util_Comparator(/** j_u_function_Function<?, ?> */ arg0) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparing__$default__java_util_Comparator__java_util_function_Function__java_util_Comparator(this, arg0));
 }
 //Default method forwarding stub.
 /** @override @nodts @template U @return {Comparator<T>} */
 m_thenComparing__java_util_function_Function__java_util_Comparator__java_util_Comparator(/** j_u_function_Function<?, ?> */ arg0, /** Comparator<?> */ arg1) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparing__$default__java_util_Comparator__java_util_function_Function__java_util_Comparator__java_util_Comparator(this, arg0, arg1));
 }
 //Default method forwarding stub.
 /** @override @nodts @return {Comparator<T>} */
 m_thenComparingDouble__java_util_function_ToDoubleFunction__java_util_Comparator(/** ToDoubleFunction<?> */ arg0) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparingDouble__$default__java_util_Comparator__java_util_function_ToDoubleFunction__java_util_Comparator(this, arg0));
 }
 //Default method forwarding stub.
 /** @override @nodts @return {Comparator<T>} */
 m_thenComparingInt__java_util_function_ToIntFunction__java_util_Comparator(/** ToIntFunction<?> */ arg0) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparingInt__$default__java_util_Comparator__java_util_function_ToIntFunction__java_util_Comparator(this, arg0));
 }
 //Default method forwarding stub.
 /** @override @nodts @return {Comparator<T>} */
 m_thenComparingLong__java_util_function_ToLongFunction__java_util_Comparator(/** ToLongFunction<?> */ arg0) {
  return /**@type {Comparator<T>}*/ (Comparator.m_thenComparingLong__$default__java_util_Comparator__java_util_function_ToLongFunction__java_util_Comparator(this, arg0));
 }
 /** @private @nodts */
 $init__void_$p_sourcemap_SourceMap() {
  this.f_uninitializedInstanceField__sourcemap_SourceMap_ = 1000;
  if (this.f_uninitializedInstanceField__sourcemap_SourceMap_ == 1000) {
   this.f_uninitializedInstanceField2__sourcemap_SourceMap_ = 'Hello!';
  } else if (this.f_uninitializedInstanceField__sourcemap_SourceMap_ == 2000) {
   this.f_uninitializedInstanceField2__sourcemap_SourceMap_ = 'World!';
  } else {
   this.f_uninitializedInstanceField2__sourcemap_SourceMap_ = 'Universe!';
  }
  this.f_initializedInstanceField__sourcemap_SourceMap_ = 2;
 }
 /** @nodts @return {number} */
 static get f_uninitializedStaticField__sourcemap_SourceMap() {
  return (SourceMap.$clinit(), SourceMap.$static_uninitializedStaticField__sourcemap_SourceMap);
 }
 /** @nodts */
 static set f_uninitializedStaticField__sourcemap_SourceMap(/** number */ value) {
  (SourceMap.$clinit(), SourceMap.$static_uninitializedStaticField__sourcemap_SourceMap = value);
 }
 /** @nodts @return {?string} */
 static get f_initializedStaticField__sourcemap_SourceMap() {
  return (SourceMap.$clinit(), SourceMap.$static_initializedStaticField__sourcemap_SourceMap);
 }
 /** @nodts */
 static set f_initializedStaticField__sourcemap_SourceMap(/** ?string */ value) {
  (SourceMap.$clinit(), SourceMap.$static_initializedStaticField__sourcemap_SourceMap = value);
 }
 /** @nodts */
 static $clinit() {
  SourceMap.$clinit = () =>{};
  SourceMap.$loadModules();
  j_l_Object.$clinit();
  Comparator.$clinit();
  SourceMap.$static_uninitializedStaticField__sourcemap_SourceMap = 10;
  SourceMap.$static_initializedStaticField__sourcemap_SourceMap = 'Hello';
  if (SourceMap.$static_uninitializedStaticField__sourcemap_SourceMap == 10) {
   SourceMap.$static_initializedStaticField__sourcemap_SourceMap = 'World';
  }
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof SourceMap;
 }
 /** @abstract @override @nodts @return {number} */
 m_compare__java_lang_Object__java_lang_Object__int(/** T */ arg0, /** T */ arg1) {}
 
 /** @nodts */
 static $loadModules() {
  Integer = goog.module.get('java.lang.Integer$impl');
  ArrayList = goog.module.get('java.util.ArrayList$impl');
  j_u_function_Function = goog.module.get('java.util.function.Function$impl');
  Supplier = goog.module.get('java.util.function.Supplier$impl');
  $1LocalClass = goog.module.get('sourcemap.SourceMap.$1LocalClass$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
  $Primitives = goog.module.get('vmbootstrap.Primitives$impl');
 }
}
/**@private {number} @nodts*/
SourceMap.$static_uninitializedStaticField__sourcemap_SourceMap = 0;
/**@private {?string} @nodts*/
SourceMap.$static_initializedStaticField__sourcemap_SourceMap;
Comparator.$markImplementor(SourceMap);
$Util.$setClassMetadata(SourceMap, 'sourcemap.SourceMap');

exports = SourceMap;

//# sourceMappingURL=SourceMap.js.map
