mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 06:10:09 +08:00
Fix empty resource link resolving
This commit is contained in:
parent
51c8684e22
commit
304220708a
@ -31,7 +31,7 @@ internal object PMain : KotlinPlugin(JvmPluginDescription("net.mamoe.console.ite
|
||||
Class.forName("net.mamoe.console.integrationtest.mod.servicetypedef.ServiceTypedef"),
|
||||
javaClass.classLoader,
|
||||
)
|
||||
val services = loader.asSequence().map { it.javaClass.name}.toMutableList()
|
||||
val services = loader.asSequence().map { it.javaClass.name }.toMutableList()
|
||||
services.forEach { service ->
|
||||
logger.info { "Service: $service" }
|
||||
}
|
||||
@ -48,5 +48,10 @@ internal object PMain : KotlinPlugin(JvmPluginDescription("net.mamoe.console.ite
|
||||
// /module-service-loader-typedef-0.0.0.jar!/test-res.txt
|
||||
// /module-service-loader-impl-0.0.0.jar!/test-res.txt
|
||||
assertEquals(3, tstRes.size)
|
||||
|
||||
assertEquals(
|
||||
mutableListOf(),
|
||||
javaClass.classLoader.getResources("something/not/exists.bin").asSequence().toMutableList()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -356,27 +356,35 @@ private operator fun <E> Enumeration<E>.plus(next: Enumeration<E>): Enumeration<
|
||||
private fun <E> compoundEnumerations(iter: Iterator<Enumeration<E>>): Enumeration<E> {
|
||||
return object : Enumeration<E> {
|
||||
private lateinit var crt: Enumeration<E>
|
||||
override fun hasMoreElements(): Boolean {
|
||||
return (::crt.isInitialized && crt.hasMoreElements()) || iter.hasNext()
|
||||
|
||||
private var hasMore: Boolean = false
|
||||
private var fetched: Boolean = false
|
||||
|
||||
override tailrec fun hasMoreElements(): Boolean {
|
||||
if (fetched) return hasMore
|
||||
if (::crt.isInitialized) {
|
||||
hasMore = crt.hasMoreElements()
|
||||
if (hasMore) {
|
||||
fetched = true
|
||||
return true
|
||||
}
|
||||
}
|
||||
if (!iter.hasNext()) {
|
||||
fetched = true
|
||||
hasMore = false
|
||||
return false
|
||||
}
|
||||
crt = iter.next()
|
||||
return hasMoreElements()
|
||||
}
|
||||
|
||||
override fun nextElement(): E {
|
||||
if (::crt.isInitialized) {
|
||||
val c = crt
|
||||
return if (c.hasMoreElements()) {
|
||||
c.nextElement()
|
||||
} else if (iter.hasNext()) {
|
||||
crt = iter.next()
|
||||
nextElement()
|
||||
} else {
|
||||
throw NoSuchElementException()
|
||||
if (hasMoreElements()) {
|
||||
return crt.nextElement().also {
|
||||
fetched = false
|
||||
}
|
||||
} else if (iter.hasNext()) {
|
||||
crt = iter.next()
|
||||
return nextElement()
|
||||
} else {
|
||||
throw NoSuchElementException()
|
||||
}
|
||||
throw NoSuchElementException()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user