inheritedDefaults

fun inheritedDefaults(type: Class<*>, ignoredMembers: Set<String> = CONSTANT_CLASSIFIERS): List<String>

Returns SimpleName.member(ParamTypes) for every member with a default body, declared by a Wow interface (package me.ahoo.wow.), that type inherits without overriding it in a class of its own hierarchy.

An interface that itself extends Decorator (a decorator mixin such as TracingMessageBus) is part of the implementation, not of the SPI: its default members count as overrides, and its own defaults are not checked.

Kotlin reflection is used on purpose: the compiler emits a JVM bridge for each inherited default (invokespecial Interface.member), so Java reflection cannot tell an override from an inherited default.

Parameters

type

the decorator or implementation class to check.

ignoredMembers

member names that are constant classifiers rather than delegated behaviour, for example topicKind; inheriting them is correct by design.


fun inheritedDefaults(types: Collection<Class<*>>, ignoredMembers: Set<String> = CONSTANT_CLASSIFIERS): List<String>

Returns the inherited defaults of all types, see inheritedDefaults.