C:
  [Source]: public open override fun getName(): R|kotlin/String| from Use site scope of /C [id: 0]
    [Enhancement]: public abstract fun getName(): R|kotlin/String!| from Substitution scope for [Java enhancement scope for /B] for type C [id: 1]
  [Source]: public open override fun setName(newName: R|kotlin/String|): R|kotlin/Any?| from Use site scope of /C [id: 0]
    [SubstitutionOverride]: public abstract fun setName(newName: R|kotlin/String!|): R|kotlin/Any!| from Substitution scope for [Java enhancement scope for /B] for type C [id: 1]
      [Enhancement]: public abstract fun setName(newName: R|kotlin/String!|): R|ft<T & Any, T?>| from Java enhancement scope for /B [id: 2]
  [Source]: private final var name: R|kotlin/String| = R|<local>/name| from Use site scope of /C [id: 0]

D:
  [Source]: public open override fun getName(): R|kotlin/String| from Java enhancement scope for /D [id: 0]
    [Enhancement]: public abstract fun getName(): R|kotlin/String!| from Substitution scope for [Java enhancement scope for /B] for type C [id: 1]
  [Source]: private final var name: R|kotlin/String| = R|<local>/name| from Java enhancement scope for /D [id: 0]
    [Source]: private final var name: R|kotlin/String| = R|<local>/name| from Use site scope of /C [id: 0]

