@@ -22,7 +22,8 @@ internal open class DIBuilderImpl internal constructor(
2222 private val moduleName : String? ,
2323 private val prefix : String ,
2424 internal val importedModules : MutableSet <String >,
25- override val containerBuilder : DIContainerBuilderImpl
25+ override val containerBuilder : DIContainerBuilderImpl ,
26+ protected open val verifyModuleNames : Boolean
2627) : DI.Builder {
2728
2829 override val contextType = TypeToken .Any
@@ -276,15 +277,16 @@ internal open class DIBuilderImpl internal constructor(
276277
277278 override fun import (module : DI .Module , allowOverride : Boolean ) {
278279 val moduleName = prefix + module.name
279- if (moduleName.isNotEmpty() && moduleName in importedModules) {
280+ if (verifyModuleNames && moduleName.isNotEmpty() && moduleName in importedModules) {
280281 throw IllegalStateException (" Module \" $moduleName \" has already been imported!" )
281282 }
282283 importedModules + = moduleName
283284 DIBuilderImpl (
284285 moduleName,
285286 prefix + module.prefix,
286287 importedModules,
287- containerBuilder.subBuilder(allowOverride, module.allowSilentOverride)
288+ containerBuilder.subBuilder(allowOverride, module.allowSilentOverride),
289+ verifyModuleNames
288290 ).apply (module.init )
289291 }
290292
@@ -311,13 +313,15 @@ internal open class DIMainBuilderImpl(allowSilentOverride: Boolean) : DIBuilderI
311313 null ,
312314 " " ,
313315 HashSet (),
314- DIContainerBuilderImpl (true, allowSilentOverride, HashMap (), ArrayList (), ArrayList ())
316+ DIContainerBuilderImpl (true, allowSilentOverride, HashMap (), ArrayList (), ArrayList ()),
317+ DI .defaultVerifyModuleNames
315318), DI.MainBuilder {
316319
317320 override val externalSources: MutableList <ExternalSource > = ArrayList ()
318321
319322 override var fullDescriptionOnError: Boolean = DI .defaultFullDescriptionOnError
320323 override var fullContainerTreeOnError: Boolean = DI .defaultFullContainerTreeOnError
324+ override var verifyModuleNames: Boolean = DI .defaultVerifyModuleNames
321325
322326 override fun extend (di : DI , allowOverride : Boolean , copy : Copy ) {
323327 val keys = copy.keySet(di.container.tree)
0 commit comments