/* * Copyright (C) 2022 The Dagger Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package dagger.functional.kotlinsrc.basic import dagger.Lazy import dagger.MembersInjector import javax.inject.Inject import javax.inject.Provider @Suppress("UNUSED_PARAMETER", "BadInject") class InjectedThing @Inject internal constructor( primitiveByte: Byte, primitiveChar: Char, primitiveShort: Short, primitiveInt: Int, primitiveLong: Long, primitiveBoolean: Boolean, primitiveFloat: Float, primitiveDouble: Double, byteProvider: Provider, charProvider: Provider, shortProvider: Provider, intProvider: Provider, longProvider: Provider, booleanProvider: Provider, floatProvider: Provider, doubleProvider: Provider, lazyByte: Lazy, lazyChar: Lazy, lazyShort: Lazy, lazyInt: Lazy, lazyLong: Lazy, lazyBoolean: Lazy, lazyFloat: Lazy, lazyDouble: Lazy, boxedBype: Byte, boxedChar: Char, boxedShort: Short, boxedInt: Int, boxedLong: Long, boxedBoolean: Boolean, boxedFloat: Float, boxedDouble: Double, byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, booleanArray: BooleanArray, floatArray: FloatArray, doubleArray: DoubleArray, byteArrayProvider: Provider, charArrayProvider: Provider, shortArrayProvider: Provider, intArrayProvider: Provider, longArrayProvider: Provider, booleanArrayProvider: Provider, floatArrayProvider: Provider, doubleArrayProvider: Provider, lazyByteArray: Lazy, lazyCharArray: Lazy, lazyShortArray: Lazy, lazyIntArray: Lazy, lazyLongArray: Lazy, lazyBooleanArray: Lazy, lazy: Lazy, lazyDoubleArray: Lazy, thing: Thing, thingProvider: Provider, lazyThing: Lazy, lazyThingProvider: Provider>, thingMembersInjector: MembersInjector ) { // TODO(b/261299441): @JvmField is needed here because otherwise the annotation will be placed on // the private backing field and Dagger will fail. The @JvmField will force the backing field // visibility to match the property visibility (internal in this case). @JvmField @Inject internal var primitiveByte: Byte = 0.toByte() @JvmField @Inject internal var primitiveChar: Char = 0.toChar() @JvmField @Inject internal var primitiveShort: Short = 0.toShort() @JvmField @Inject internal var primitiveInt: Int = 0.toInt() @JvmField @Inject internal var primitiveLong: Long = 0.toLong() @JvmField @Inject internal var primitiveBoolean: Boolean = false @JvmField @Inject internal var primitiveFloat: Float = 0.toFloat() @JvmField @Inject internal var primitiveDouble: Double = 0.toDouble() @Inject internal lateinit var byteProvider: Provider @Inject internal lateinit var charProvider: Provider @Inject internal lateinit var shortProvider: Provider @Inject internal lateinit var intProvider: Provider @Inject internal lateinit var longProvider: Provider @Inject internal lateinit var booleanProvider: Provider @Inject internal lateinit var floatProvider: Provider @Inject internal lateinit var doubleProvider: Provider @Inject internal lateinit var lazyByte: Lazy @Inject internal lateinit var lazyChar: Lazy @Inject internal lateinit var lazyShort: Lazy @Inject internal lateinit var lazyInt: Lazy @Inject internal lateinit var lazyLong: Lazy @Inject internal lateinit var lazyBoolean: Lazy @Inject internal lateinit var lazyFloat: Lazy @Inject internal lateinit var lazyDouble: Lazy @Inject internal lateinit var byteArray: ByteArray @Inject internal lateinit var charArray: CharArray @Inject internal lateinit var shortArray: ShortArray @Inject internal lateinit var intArray: IntArray @Inject internal lateinit var longArray: LongArray @Inject internal lateinit var booleanArray: BooleanArray @Inject internal lateinit var floatArray: FloatArray @Inject internal lateinit var doubleArray: DoubleArray @Inject internal lateinit var byteArrayProvider: Provider @Inject internal lateinit var charArrayProvider: Provider @Inject internal lateinit var shortArrayProvider: Provider @Inject internal lateinit var intArrayProvider: Provider @Inject internal lateinit var longArrayProvider: Provider @Inject internal lateinit var booleanArrayProvider: Provider @Inject internal lateinit var floatArrayProvider: Provider @Inject internal lateinit var doubleArrayProvider: Provider @Inject internal lateinit var lazyByteArray: Lazy @Inject internal lateinit var lazyCharArray: Lazy @Inject internal lateinit var lazyShortArray: Lazy @Inject internal lateinit var lazyIntArray: Lazy @Inject internal lateinit var lazyLongArray: Lazy @Inject internal lateinit var lazyBooleanArray: Lazy @Inject internal lateinit var lazy: Lazy @Inject internal lateinit var lazyDoubleArray: Lazy @Inject internal lateinit var thing: Thing @Inject internal lateinit var thingProvider: Provider @Inject internal lateinit var lazyThing: Lazy @Inject internal lateinit var lazyThingProvider: Provider> @Inject internal lateinit var thingMembersInjector: MembersInjector @Inject internal fun primitiveByte(primitiveByte: Byte) {} @Inject internal fun primitiveChar(primitiveChar: Char) {} @Inject internal fun primitiveShort(primitiveShort: Short) {} @Inject internal fun primitiveInt(primitiveInt: Int) {} @Inject internal fun primitiveLong(primitiveLong: Long) {} @Inject internal fun primitiveBoolean(primitiveBoolean: Boolean) {} @Inject internal fun primitiveFloat(primitiveFloat: Float) {} @Inject internal fun primitiveDouble(primitiveDouble: Double) {} @Inject internal fun byteProvider(byteProvider: Provider) {} @Inject internal fun charProvider(charProvider: Provider) {} @Inject internal fun shortProvider(shortProvider: Provider) {} @Inject internal fun intProvider(intProvider: Provider) {} @Inject internal fun longProvider(longProvider: Provider) {} @Inject internal fun booleanProvider(booleanProvider: Provider) {} @Inject internal fun floatProvider(floatProvider: Provider) {} @Inject internal fun doubleProvider(doubleProvider: Provider) {} @Inject internal fun lazyByte(lazyByte: Lazy) {} @Inject internal fun lazyChar(lazyChar: Lazy) {} @Inject internal fun lazyShort(lazyShort: Lazy) {} @Inject internal fun lazyInt(lazyInt: Lazy) {} @Inject internal fun lazyLong(lazyLong: Lazy) {} @Inject internal fun lazyBoolean(lazyBoolean: Lazy) {} @Inject internal fun lazyFloat(lazyFloat: Lazy) {} @Inject internal fun lazyDouble(lazyDouble: Lazy) {} @Inject internal fun byteArray(byteArray: ByteArray) {} @Inject internal fun charArray(charArray: CharArray) {} @Inject internal fun shortArray(shortArray: ShortArray) {} @Inject internal fun intArray(intArray: IntArray) {} @Inject internal fun longArray(longArray: LongArray) {} @Inject internal fun booleanArray(booleanArray: BooleanArray) {} @Inject internal fun floatArray(floatArray: FloatArray) {} @Inject internal fun doubleArray(doubleArray: DoubleArray) {} @Inject internal fun byteArrayProvider(byteArrayProvider: Provider) {} @Inject internal fun charArrayProvider(charArrayProvider: Provider) {} @Inject internal fun shortArrayProvider(shortArrayProvider: Provider) {} @Inject internal fun intArrayProvider(intArrayProvider: Provider) {} @Inject internal fun longArrayProvider(longArrayProvider: Provider) {} @Inject internal fun booleanArrayProvider(booleanArrayProvider: Provider) {} @Inject internal fun floatArrayProvider(floatArrayProvider: Provider) {} @Inject internal fun doubleArrayProvider(doubleArrayProvider: Provider) {} @Inject internal fun lazyByteArray(lazyByteArray: Lazy) {} @Inject internal fun lazyCharArray(lazyCharArray: Lazy) {} @Inject internal fun lazyShortArray(lazyShortArray: Lazy) {} @Inject internal fun lazyIntArray(lazyIntArray: Lazy) {} @Inject internal fun lazyLongArray(lazyLongArray: Lazy) {} @Inject internal fun lazyBooleanArray(lazyBooleanArray: Lazy) {} @Inject internal fun lazy(lazy: Lazy) {} @Inject internal fun lazyThingProvider(lazyThingProvider: Provider>) {} @Inject internal fun lazyDoubleArray(lazyDoubleArray: Lazy) {} @Inject internal fun thing(thing: Thing) {} @Inject internal fun thingProvider(thingProvider: Provider) {} @Inject internal fun lazyThing(lazyThing: Lazy) {} @Inject internal fun thingMembersInjector(thingMembersInjector: MembersInjector) {} }