// Generated from "jsinnerclass/Main.java"
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package jsinnerclass

import javaemul.lang.*
import jsinterop.annotations.JsType
import kotlin.Array
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.assert
import kotlin.jvm.JvmField
import kotlin.jvm.JvmStatic

open class Main {
 companion object {
  @JvmStatic
  fun main(vararg args: String?) {
   val args_1: Array<String?>? = args as Array<String?>?
   assert(Outer().method() == 5)
  }
 }

 open class Outer internal constructor() {
  @JvmField
  internal var a_pp_jsinnerclass: Int = 2

  open fun method(): Int {
   return Inner().getB() + this.a_pp_jsinnerclass
  }

  @JsType(namespace = "com.google.test")
  open inner class Inner constructor() {
   private var b: Int = 0

   init {
    this.b = this@Outer.a_pp_jsinnerclass + 1
   }

   open fun getB(): Int {
    return this.b
   }
  }
 }
}
