1 /* 2 * Copyright (C) 2022 The Dagger Authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package dagger.functional.kotlinsrc.membersinject.subpackage 18 19 import javax.inject.Inject 20 21 // https://github.com/google/dagger/issues/755 22 open class MembersWithSameNameParent { 23 // Note: This field is purposely non-public so that MembersWithSameNameChild#sameName hides 24 // this field rather than overrides it. 25 @Inject internal lateinit var sameName: String 26 internal var sameNameStringWasInvoked = false 27 internal var sameNameObjectWasInvoked = false 28 29 // Note: This method is purposely non-public so that MembersWithSameNameChild#sameName(String) 30 // hides this method rather than overrides it. 31 @Inject sameNamenull32 internal fun sameName(@Suppress("UNUSED_PARAMETER") sameName: String) { 33 sameNameStringWasInvoked = true 34 } 35 36 // Note: This method is purposely non-public so that MembersWithSameNameChild#sameName(Object) 37 // hides this method rather than overrides it. 38 @Inject sameNamenull39 internal fun sameName(@Suppress("UNUSED_PARAMETER") sameName: Any) { 40 sameNameObjectWasInvoked = true 41 } 42 parentSameNamenull43 fun parentSameName(): String { 44 return sameName 45 } 46 parentSameNameStringWasInvokednull47 fun parentSameNameStringWasInvoked(): Boolean { 48 return sameNameStringWasInvoked 49 } 50 parentSameNameObjectWasInvokednull51 fun parentSameNameObjectWasInvoked(): Boolean { 52 return sameNameObjectWasInvoked 53 } 54 } 55