In the Kotlin programming language, let's say there is a module structure with classes like below
/// module A
public interface Hello {
fun doSomething()
}
internal class HelloImpl {
override fun doSomething(){}
}
// end module A
// Module B--depends on---> Module A
import Hello
class HelloConsumer(private val hello: Hello) {
fun useDoSomething() {
hello.doSomething();
}
}
My question is does making changes to the HellImpl 's doSomething function break the ABI for the module A, and therefore invalidate teh module B and have it recompile/build again?