fun String.extension(): String = removePrefix("hello") | |
val lambda: (String) -> String = { it.removePrefix("hello") } | |
val lambdaWithReceiver: String.() -> String = { removePrefix("hello") } | |
fun function(arg: (String) -> String) { | |
} | |
fun function2(arg: String.() -> String) { | |
} |
// Code generated by moshi-kotlin-codegen. Do not edit. | |
package com.squareup.moshi.kotlin.codgen | |
import com.squareup.moshi.JsonAdapter | |
import com.squareup.moshi.JsonDataException | |
import com.squareup.moshi.JsonReader | |
import com.squareup.moshi.JsonWriter | |
import com.squareup.moshi.Moshi | |
import com.squareup.moshi.Types | |
import com.squareup.moshi.internal.Util |
// Code generated by moshi-kotlin-codegen. Do not edit. | |
package com.squareup.moshi.kotlin.codgen | |
import com.squareup.moshi.JsonAdapter | |
import com.squareup.moshi.JsonReader | |
import com.squareup.moshi.JsonWriter | |
import com.squareup.moshi.Moshi | |
import com.squareup.moshi.Types | |
import com.squareup.moshi.internal.Util | |
import java.lang.NullPointerException |
// Code generated by moshi-kotlin-codegen. Do not edit. | |
package com.squareup.moshi.kotlin.codgen | |
import com.squareup.moshi.JsonAdapter | |
import com.squareup.moshi.JsonReader | |
import com.squareup.moshi.JsonWriter | |
import com.squareup.moshi.Moshi | |
import com.squareup.moshi.Types | |
import com.squareup.moshi.internal.Util | |
import java.lang.NullPointerException |
/* | |
* The contents of this file are subject to the terms | |
* of the Common Development and Distribution License | |
* (the "License"). You may not use this file except | |
* in compliance with the License. | |
* | |
* You can obtain a copy of the license at | |
* glassfish/bootstrap/legal/CDDLv1.0.txt or | |
* https://glassfish.dev.java.net/public/CDDLv1.0.html. | |
* See the License for the specific language governing |
/Users/zsweers/dev/android/personal/CatchUp/app/build/generated/source/kapt/debug/io/sweers/catchup/app/CatchUpApplication_HiltComponents.java:188: error: [Dagger/DuplicateBindings] androidx.activity.ComponentActivity is bound multiple times: | |
public abstract static class ApplicationC implements ApplicationComponent, | |
^ | |
@org.jetbrains.annotations.NotNull @io.sweers.catchup.injection.scopes.PerActivity @Binds androidx.activity.ComponentActivity io.sweers.catchup.injection.ActivityModule.provideComponentActivity(T) | |
@org.jetbrains.annotations.NotNull @io.sweers.catchup.injection.scopes.PerActivity @Binds androidx.activity.ComponentActivity io.sweers.catchup.ui.about.AboutActivity.Module.provideComponentActivity(io.sweers.catchup.ui.about.AboutActivity) | |
@org.jetbrains.annotations.NotNull @io.sweers.catchup.injection.scopes.PerActivity @Binds androidx.activity.ComponentActivity io.sweers.catchup.ui.activity.MainActivity.ServiceIntegrationModule.provideComponentActivity(io |
package test; | |
import static com.google.common.truth.Truth.assertThat; | |
import com.squareup.moshi.JsonAdapter; | |
import com.squareup.moshi.Moshi; | |
import org.junit.Test; | |
import java.io.IOException; | |
public class MoshiBugReport { |
While doing some remote build cache fidelity testing in #66841, I found that our lint analysis tasks were consistently getting cache misses due to an esoteric intermediate proguard file contents change.
After a little digging, I found these files were generated by AGP as a "merged" file of all that project's generated proguard files. This was most notable in projects using Moshi, which generates proguard rules on the fly.
My hunch was that these files were being merged with non-deterministic order, as I couldn't find anything that ensured ordering and this input was purely a file contents check (so the same rules in different order would still constitute a miss).
I was able to verify this was the case via snagging merged proguard.txt
files via github actions artifact uploads.
I filed this issue for it here: issuetracker.google.com/issues/266403349 (note it's been made private for some reason).