Acceso directo a las classs de Visibilidad interna de Kotlin

He creado un proyecto basado en Maven que usa Spek en Junit 4 Runner para probarlo.

Configuré el proyecto en Codacy y obtuve una sugerencia útil para documentar mis classs públicas o networkingucir su visibilidad (excelente).

Descubrí que el comstackdor de Kotlin parece considerar las testings como existentes en un module diferente, lo que hace que resulte muy difícil realizar testings unitarias efectivas dado el layout de mi proyecto. Las testings no se comstackrán si la visibilidad de las classs o interfaces se networkinguce a interna.

Sugiera un mecanismo para solucionar esto. ¿No es posible utilizar el modificador de visibilidad interno en esta situación? ¿Hay una configuration de comstackdor útil o configuration de Spek que pueda solucionar el problema? Creo que la sugerencia es correcta; No deseo documentar las classs porque son internas y pueden cambiar en el futuro o la documentation simplemente no vale la pena el esfuerzo.

Eventualmente descubrí que el problema era el resultado de la aplicación de visibilidad internal a subclasss y campos de una class que ya estaba marcada como interna. Si bien Kotlin le permitirá hacerlo en algunos casos, parece restringir aún más la visibilidad de estos elementos a otras unidades de compilation en otras partes del código, lo que tiene un efecto similar al marcar el elemento como privado. No pude determinar la regla exacta que se aplica, ya que hay varios elementos en el mismo file y algunos están nesteds.

Para aliviar estos problemas, no vuelva a marcar subclasss o campos como internos una vez que el padre se marque como interno. Después de esta experiencia, generalmente también sugiero que se organice un único elemento por unidad de compilation (como se requiere en Java) en lugar de insert grandes cantidades de elementos en un solo file, ya que puede crear este tipo de confusión.

También quisiera señalar que, para alguien que está confundido por las advertencias de Codacy de que algunas de las sugerencias de Codacy son imposibles de cumplir (por ejemplo, marcar funciones en una interfaz interna como internamente doble, me parece imposible, a pesar de que esta práctica puede ser permitido en algunas combinaciones de anidamiento de elementos).