mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-10 00:16:59 +00:00
fix: silence Kotlin override-parameter-name and redundant-!! warnings
LocalCache implements both Dao and ICacheProvider, which disagreed on the parameter names of getOrCreateUser (hex vs pubkey) and getOrCreateAddressableNote (address vs key), so every override warned about named-argument mismatches. Align both interfaces on pubkey/address and update the implementations that used the other name. Also drop the non-null assertions the compiler already smart-casts away in LimitsPolicy.capLimits and RelayProberFlowTest, and match the WebSocketListener parameter names in NegentropyStallRepro. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017X7C797zGYsiui5yj1JQcY
This commit is contained in:
@@ -29,7 +29,7 @@ import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||
* needing the full [LocalCache] API.
|
||||
*/
|
||||
interface Dao {
|
||||
fun getOrCreateUser(hex: HexKey): User
|
||||
fun getOrCreateUser(pubkey: HexKey): User
|
||||
|
||||
fun getOrCreateNote(hex: HexKey): Note
|
||||
|
||||
|
||||
@@ -685,12 +685,12 @@ object LocalCache : ILocalCache, ICacheProvider, Dao {
|
||||
|
||||
fun load(keys: Set<String>): Set<User> = keys.mapNotNullTo(mutableSetOf(), ::checkGetOrCreateUser)
|
||||
|
||||
override fun getOrCreateUser(hex: HexKey): User {
|
||||
require(isValidHex(key = hex)) { "$hex is not a valid hex" }
|
||||
override fun getOrCreateUser(pubkey: HexKey): User {
|
||||
require(isValidHex(key = pubkey)) { "$pubkey is not a valid hex" }
|
||||
// Pass `this` as the UserContext — User now resolves each pinned
|
||||
// addressable note (kind:10002 / 10050 / 10019) lazily on first
|
||||
// read, instead of all-or-nothing at construction time.
|
||||
return users.getOrCreate(hex) { User(it, userContext) }
|
||||
return users.getOrCreate(pubkey) { User(it, userContext) }
|
||||
}
|
||||
|
||||
/** [UserContext] bridge to this cache's addressable lookup. */
|
||||
|
||||
+1
-1
@@ -2106,7 +2106,7 @@ class AccountViewModel(
|
||||
|
||||
fun checkGetOrCreateUser(key: HexKey): User? = LocalCache.checkGetOrCreateUser(key)
|
||||
|
||||
override fun getOrCreateUser(hex: HexKey): User = LocalCache.getOrCreateUser(hex)
|
||||
override fun getOrCreateUser(pubkey: HexKey): User = LocalCache.getOrCreateUser(pubkey)
|
||||
|
||||
fun getUserIfExists(hex: HexKey): User? = LocalCache.getUserIfExists(hex)
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import org.junit.Test
|
||||
class NewMessageTaggerKeyParseTest {
|
||||
val dao: Dao =
|
||||
object : Dao {
|
||||
override fun getOrCreateUser(hex: String): User = User(hex) { addr -> getOrCreateAddressableNoteInternal(addr) }
|
||||
override fun getOrCreateUser(pubkey: String): User = User(pubkey) { addr -> getOrCreateAddressableNoteInternal(addr) }
|
||||
|
||||
override fun getOrCreateNote(hex: String) =
|
||||
com.vitorpamplona.amethyst.model
|
||||
|
||||
Vendored
+1
-1
@@ -93,7 +93,7 @@ interface ICacheProvider {
|
||||
* @param address The note's ID in address format
|
||||
* @return The AddressableNote (existing or newly created)
|
||||
*/
|
||||
fun getOrCreateAddressableNote(key: Address): AddressableNote
|
||||
fun getOrCreateAddressableNote(address: Address): AddressableNote
|
||||
|
||||
/**
|
||||
* Gets the event stream for cache updates.
|
||||
|
||||
+1
-1
@@ -181,7 +181,7 @@ class ThreadAssemblerTest {
|
||||
|
||||
override fun checkGetOrCreateNote(hexKey: HexKey): Note? = notesById[hexKey]
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote = error("not used by ThreadAssembler in this test")
|
||||
override fun getOrCreateAddressableNote(address: Address): AddressableNote = error("not used by ThreadAssembler in this test")
|
||||
|
||||
override fun getEventStream(): ICacheEventStream = error("not used by ThreadAssembler in this test")
|
||||
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ class ConcordChannelListLeaveTest {
|
||||
|
||||
override fun checkGetOrCreateNote(hexKey: HexKey): Note? = null
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote = AddressableNote(key)
|
||||
override fun getOrCreateAddressableNote(address: Address): AddressableNote = AddressableNote(address)
|
||||
|
||||
override fun getEventStream(): ICacheEventStream = error("not used")
|
||||
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ class ConcordListLateArrivalTest {
|
||||
|
||||
override fun checkGetOrCreateNote(hexKey: HexKey): Note? = null
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote = notes.getOrPut(key.toValue()) { AddressableNote(key) }
|
||||
override fun getOrCreateAddressableNote(address: Address): AddressableNote = notes.getOrPut(address.toValue()) { AddressableNote(address) }
|
||||
|
||||
override fun getEventStream(): ICacheEventStream = error("not used")
|
||||
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ class ReplyContextTest {
|
||||
|
||||
override fun checkGetOrCreateNote(hexKey: HexKey): Note? = notesById[hexKey]
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote = error("not used by ReplyContext.from")
|
||||
override fun getOrCreateAddressableNote(address: Address): AddressableNote = error("not used by ReplyContext.from")
|
||||
|
||||
override fun getEventStream(): ICacheEventStream = error("not used by ReplyContext.from")
|
||||
|
||||
|
||||
Vendored
+3
-3
@@ -904,9 +904,9 @@ class DesktopLocalCache : ICacheProvider {
|
||||
Note(hexKey)
|
||||
}
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote =
|
||||
addressableNotes.getOrCreate(key.toValue()) {
|
||||
AddressableNote(key)
|
||||
override fun getOrCreateAddressableNote(address: Address): AddressableNote =
|
||||
addressableNotes.getOrCreate(address.toValue()) {
|
||||
AddressableNote(address)
|
||||
}
|
||||
|
||||
// ----- Channel operations -----
|
||||
|
||||
+2
-2
@@ -128,8 +128,8 @@ class LimitsPolicy(
|
||||
*/
|
||||
private fun capLimits(filters: List<Filter>): List<Filter> {
|
||||
val max = limits.maxLimit ?: return filters
|
||||
if (filters.none { it.limit != null && it.limit!! > max }) return filters
|
||||
return filters.map { if (it.limit != null && it.limit!! > max) it.copy(limit = max) else it }
|
||||
if (filters.none { it.limit != null && it.limit > max }) return filters
|
||||
return filters.map { if (it.limit != null && it.limit > max) it.copy(limit = max) else it }
|
||||
}
|
||||
|
||||
private fun targetLimit(current: Int?): Int? =
|
||||
|
||||
+3
-3
@@ -327,9 +327,9 @@ class RelayProberFlowTest {
|
||||
}
|
||||
check.join()
|
||||
|
||||
val verdict = result!![fast]!!
|
||||
assertEquals(true, verdict.writeAccepted, "the listed relay's OK must still be awaited and recorded")
|
||||
assertNull(result!![foreign], "the foreign relay must not appear in the result")
|
||||
val verdicts = result!!
|
||||
assertEquals(true, verdicts[fast]!!.writeAccepted, "the listed relay's OK must still be awaited and recorded")
|
||||
assertNull(verdicts[foreign], "the foreign relay must not appear in the result")
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+6
-6
@@ -103,10 +103,10 @@ class NegentropyStallRepro {
|
||||
object : WebSocketListener {
|
||||
override fun onOpen(
|
||||
pingMillis: Int,
|
||||
usingCompression: Boolean,
|
||||
compression: Boolean,
|
||||
) {
|
||||
log(" [<-open] ${url.url} ping=${pingMillis}ms deflate=$usingCompression")
|
||||
out.onOpen(pingMillis, usingCompression)
|
||||
log(" [<-open] ${url.url} ping=${pingMillis}ms deflate=$compression")
|
||||
out.onOpen(pingMillis, compression)
|
||||
}
|
||||
|
||||
override suspend fun onMessage(text: String) {
|
||||
@@ -130,10 +130,10 @@ class NegentropyStallRepro {
|
||||
override fun onFailure(
|
||||
t: Throwable,
|
||||
code: Int?,
|
||||
errorMessage: String?,
|
||||
response: String?,
|
||||
) {
|
||||
log(" [<-failure] ${url.url} code=$code msg=$errorMessage err=${t.message}")
|
||||
out.onFailure(t, code, errorMessage)
|
||||
log(" [<-failure] ${url.url} code=$code msg=$response err=${t.message}")
|
||||
out.onFailure(t, code, response)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user