Android Library that provide simpler way to achieve modularity

Overview

ToyBricks

Maven Central GITHUB LICENSE

中文文档

  1. ToyBricks简介以及原理分析
  2. ToyBricks用户手册

Introduction

Android Library that provide simpler way to achieve modularity.

Compile System requirements

JDK 7+

Download

For Java project add in build.gradle file:

dependencies {
    compile 'com.github.snowdream.toybricks:annotation:(latest version)'
    annotationProcessor 'com.github.snowdream.toybricks:processor:(latest version)'
    compile 'com.github.snowdream:toybricks:(latest version)'
}

For Kotlin project add in build.gradle file:

kapt {
    generateStubs = true
}

dependencies {
    compile 'com.github.snowdream.toybricks:annotation:(latest version)'
    kapt 'com.github.snowdream.toybricks:processor:(latest version)'
    compile 'com.github.snowdream:toybricks:(latest version)'
}

Advantage

  1. Support for Java and Kotlin
  2. APT: Compile-Time Annotation Processing with Java
  3. No need to configure proguard yourself
  4. Smart checking for @Interface and @Implementation

Disadvantage

  1. Singleton class for kotlin start with object is not supported.

Usage

For interface, annotate it with @Interface

@Interface
public interface IText {

    String getText();
}

For default implementation, annotate it with @Implementation, and implements the defined Interface.

@Implementation(IText.class/*,singleton = true*/)
public class NewTextImpl implements IText {
    @Override
    public String getText() {
        return "NewTextImpl Implementation from "+ getClass().getCanonicalName();
    }
}

For global implementation, annotate it with @Implementation, and implements the defined Interface.

@Implementation(value = IText.class,global = true/*,singleton = true*/)
public class NewTextGobalImpl implements IText {
    @Override
    public String getText() {
        return "NewTextImpl Implementation from "+ getClass().getCanonicalName() ;
    }
}

Now, You can get the implementation for the interface as follows:

IText text = ToyBricks.getImplementation(IText.class);

Attention

  1. For one interface, You can have only one default implementation and only one global implementation at the same time.
  2. For interface,it should be public.
  3. For implementation, it should be public,but not be abstract. it should inherit from the interface, and provide an empty public constructor.
  4. You can add singleton = true to define Singleton for java and kotlin
  5. Global implementation has the higher priority than default implementation. so, if them exist at the same time ,the global implementation will be used.

Suggestion

  1. you should usually define the default implementation for one interface, not the global one.
  2. when you want to realize a new implementation for the interface, you can define the new implementation as global.
  3. when the global implementation is achieved and fully tested, delete the default implementation, and change the new global implementation to the default implementation.

Contacts

  • Email:yanghui1986527#gmail.com
  • QQ Group: 529327615
  • WeChat Official Accounts: sn0wdr1am

sn0wdr1am

License

Copyright (C) 2017 snowdream <[email protected]>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • > java.io.IOException: Please correct the above warnings first.

    > java.io.IOException: Please correct the above warnings first.

    Initializing...
    Note: kotlin.jvm.internal.ReflectionFactory calls 'Class.getGenericInterfaces'
    Note: kotlin.reflect.jvm.internal.AnnotationConstructorCaller calls 'Method.getGenericReturnType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$BoundClassCompanionFieldSetter calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$BoundStaticMethod calls 'Method.getGenericParameterTypes'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$ClassCompanionFieldGetter calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$ClassCompanionFieldSetter calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$FieldGetter calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$Method calls 'Method.getGenericReturnType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$Method calls 'Method.getGenericParameterTypes'
    Note: kotlin.reflect.jvm.internal.JvmPropertySignature$JavaField calls 'Field.getType'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data$supertypes$2$$special$$inlined$map$lambda$1 calls 'Class.getGenericSuperclass'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data$supertypes$2$$special$$inlined$map$lambda$1 calls 'Class.getGenericInterfaces'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass calls 'Class.getGenericSuperclass'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass calls 'Class.getGenericInterfaces'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass calls 'Class.getTypeParameters'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClassifierType calls 'Class.getTypeParameters'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaField calls 'Field.getGenericType'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaMethod calls 'Method.getGenericParameterTypes'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaMethod calls 'Method.getGenericReturnType'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaMethod calls 'Method.getTypeParameters'
    Note: kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.SignatureSerializer calls 'Field.getType'
    Note: kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindFilter calls 'Field.getType'
    Note: kotlin.reflect.jvm.internal.FunctionCaller$Constructor calls 'Class.getDeclaringClass'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data$objectInstance$2 calls 'Class.getEnclosingClass'
    Note: kotlin.reflect.jvm.internal.KPropertyImpl$javaField_$1 calls 'Class.getEnclosingClass'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt calls 'Class.getDeclaringClass'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass calls 'Class.getDeclaringClass'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaConstructor calls 'Class.getDeclaringClass'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaEnumValueAnnotationArgument calls 'Class.getEnclosingClass'
    Note: kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.ReflectClassStructure calls 'Class.getEnclosingClass'
    Note: kotlin.reflect.jvm.internal.impl.platform.JavaToKotlinClassMap calls 'Class.getDeclaringClass'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data calls 'Class.getEnclosingMethod'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data calls 'Class.getEnclosingConstructor'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt calls 'Class.getEnclosingMethod'
    Note: kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt calls 'Class.getEnclosingConstructor'
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.ClassifierDescriptorWithTypeParameters: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.load.java.JavaClassFinder: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil: can't find referenced class org.jetbrains.annotations.Mutable
    Warning: kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor: can't find referenced class org.jetbrains.annotations.Mutable
    Warning: kotlin.reflect.jvm.internal.impl.types.TypeConstructor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Warning: kotlin.reflect.jvm.internal.impl.types.TypeConstructor: can't find referenced class org.jetbrains.annotations.ReadOnly
    Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
    Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
    Note: kotlin.coroutines.experimental.SafeContinuation accesses a field 'result' dynamically
          Maybe this is program field 'kotlin.coroutines.experimental.SafeContinuation { java.lang.Object result; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isTypeOrSubtypeOf$2 { boolean result; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.EnhancementResult { java.lang.Object result; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.AbstractBinaryClassAnnotationAndConstantLoader$loadAnnotationsAndInitializers$1$MemberAnnotationVisitor { java.util.ArrayList result; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.DFS$CollectingNodeHandler { java.lang.Iterable result; }'
    Note: kotlin.reflect.jvm.internal.KClassImpl$Data$objectInstance$2 accesses a declared field 'INSTANCE' dynamically
          Maybe this is program field 'kotlin.UNINITIALIZED_VALUE { kotlin.UNINITIALIZED_VALUE INSTANCE; }'
          Maybe this is program field 'kotlin.Unit { kotlin.Unit INSTANCE; }'
          Maybe this is program field 'kotlin._Assertions { kotlin._Assertions INSTANCE; }'
          Maybe this is program field 'kotlin.collections.EmptyIterator { kotlin.collections.EmptyIterator INSTANCE; }'
          Maybe this is program field 'kotlin.collections.EmptyList { kotlin.collections.EmptyList INSTANCE; }'
          Maybe this is program field 'kotlin.collections.EmptyMap { kotlin.collections.EmptyMap INSTANCE; }'
          Maybe this is program field 'kotlin.collections.EmptySet { kotlin.collections.EmptySet INSTANCE; }'
          Maybe this is program field 'kotlin.comparisons.NaturalOrderComparator { kotlin.comparisons.NaturalOrderComparator INSTANCE; }'
          Maybe this is program field 'kotlin.comparisons.ReverseOrderComparator { kotlin.comparisons.ReverseOrderComparator INSTANCE; }'
          Maybe this is program field 'kotlin.coroutines.experimental.CombinedContext$toString$1 { kotlin.coroutines.experimental.CombinedContext$toString$1 INSTANCE; }'
          Maybe this is program field 'kotlin.coroutines.experimental.CoroutineContextImplKt$plusImpl$1 { kotlin.coroutines.experimental.CoroutineContextImplKt$plusImpl$1 INSTANCE; }'
          Maybe this is program field 'kotlin.coroutines.experimental.EmptyCoroutineContext { kotlin.coroutines.experimental.EmptyCoroutineContext INSTANCE; }'
          Maybe this is program field 'kotlin.io.ConsoleKt$stdin$2 { kotlin.io.ConsoleKt$stdin$2 INSTANCE; }'
          Maybe this is program field 'kotlin.io.FilesKt__UtilsKt$copyRecursively$1 { kotlin.io.FilesKt__UtilsKt$copyRecursively$1 INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.ByteCompanionObject { kotlin.jvm.internal.ByteCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.CharCompanionObject { kotlin.jvm.internal.CharCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.DoubleCompanionObject { kotlin.jvm.internal.DoubleCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.EnumCompanionObject { kotlin.jvm.internal.EnumCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.FloatCompanionObject { kotlin.jvm.internal.FloatCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.IntCompanionObject { kotlin.jvm.internal.IntCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.LongCompanionObject { kotlin.jvm.internal.LongCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.ShortCompanionObject { kotlin.jvm.internal.ShortCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.jvm.internal.StringCompanionObject { kotlin.jvm.internal.StringCompanionObject INSTANCE; }'
          Maybe this is program field 'kotlin.properties.Delegates { kotlin.properties.Delegates INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.KParameter$Kind { kotlin.reflect.KParameter$Kind INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.full.KClasses$allSupertypes$1 { kotlin.reflect.full.KClasses$allSupertypes$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.full.KClasses$allSupertypes$1$1$1$1 { kotlin.reflect.full.KClasses$allSupertypes$1$1$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.full.KClasses$isSubclassOf$1 { kotlin.reflect.KProperty1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.AnnotationConstructorCallerKt$createAnnotationInstance$hashCode$1 { kotlin.reflect.KProperty0 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.AnnotationConstructorCallerKt$createAnnotationInstance$toString$1 { kotlin.reflect.KProperty0 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.AnnotationConstructorCallerKt$createAnnotationInstance$toString$2$1$1 { kotlin.reflect.jvm.internal.AnnotationConstructorCallerKt$createAnnotationInstance$toString$2$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.EmptyContainerForLocal { kotlin.reflect.jvm.internal.EmptyContainerForLocal INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.JvmFunctionSignature$FakeJavaAnnotationConstructor$asString$1 { kotlin.reflect.jvm.internal.JvmFunctionSignature$FakeJavaAnnotationConstructor$asString$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.JvmFunctionSignature$JavaConstructor$asString$1 { kotlin.reflect.jvm.internal.JvmFunctionSignature$JavaConstructor$asString$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.KDeclarationContainerImpl$findPropertyDescriptor$mostVisibleProperties$2 { kotlin.reflect.jvm.internal.KDeclarationContainerImpl$findPropertyDescriptor$mostVisibleProperties$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.KTypeImpl$arguments$2$parameterizedTypeArguments$1 { kotlin.reflect.KProperty0 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.ReflectionObjectRenderer { kotlin.reflect.jvm.internal.ReflectionObjectRenderer INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderFunction$1$1 { kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderFunction$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderLambda$1$1 { kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderLambda$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.RuntimeTypeMapper { kotlin.reflect.jvm.internal.RuntimeTypeMapper INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.RuntimeTypeMapperKt$signature$1 { kotlin.reflect.jvm.internal.RuntimeTypeMapperKt$signature$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.BuiltInSerializerProtocol { kotlin.reflect.jvm.internal.impl.builtins.BuiltInSerializerProtocol INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.BuiltInsBinaryVersion { kotlin.reflect.jvm.internal.impl.builtins.BuiltInsBinaryVersion INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.CompanionObjectMapping { kotlin.reflect.jvm.internal.impl.builtins.CompanionObjectMapping INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.DefaultBuiltIns$Companion$initializer$1 { kotlin.reflect.jvm.internal.impl.builtins.DefaultBuiltIns$Companion$initializer$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$extractParameterNameFromFunctionTypeArgument$name$1 { kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$extractParameterNameFromFunctionTypeArgument$name$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$getFunctionTypeArgumentProjections$1$name$1 { kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$getFunctionTypeArgumentProjections$1$name$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isBuiltinFunctionalTypeOrSubtype$1 { kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isBuiltinFunctionalTypeOrSubtype$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isFunctionTypeOrSubtype$1 { kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isFunctionTypeOrSubtype$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isTypeOrSubtypeOf$1 { kotlin.reflect.jvm.internal.impl.builtins.FunctionTypesKt$isTypeOrSubtypeOf$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.JvmBuiltInClassDescriptorFactory$1 { kotlin.reflect.jvm.internal.impl.builtins.JvmBuiltInClassDescriptorFactory$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.builtins.ReflectionTypes$ClassLookup { kotlin.reflect.jvm.internal.impl.builtins.ReflectionTypes$ClassLookup INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.ConstUtil { kotlin.reflect.jvm.internal.impl.descriptors.ConstUtil INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Internal { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Internal INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$InternalProtectedBound { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$InternalProtectedBound INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Local { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Local INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$PackagePrivate { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$PackagePrivate INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Private { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Private INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$ProtectedBound { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$ProtectedBound INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Public { kotlin.reflect.jvm.internal.impl.descriptors.EffectiveVisibility$Public INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProvider$Empty { kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProvider$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderImpl$getSubPackagesOf$1 { kotlin.reflect.jvm.internal.impl.descriptors.PackageFragmentProviderImpl$getSubPackagesOf$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.PackagePartProvider$Empty { kotlin.reflect.jvm.internal.impl.descriptors.PackagePartProvider$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.SupertypeLoopChecker$EMPTY { kotlin.reflect.jvm.internal.impl.descriptors.SupertypeLoopChecker$EMPTY INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.TypeParameterUtilsKt$computeConstructorTypeParameters$parametersFromContainingFunctions$1 { kotlin.reflect.jvm.internal.impl.descriptors.TypeParameterUtilsKt$computeConstructorTypeParameters$parametersFromContainingFunctions$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.TypeParameterUtilsKt$computeConstructorTypeParameters$parametersFromContainingFunctions$2 { kotlin.reflect.jvm.internal.impl.descriptors.TypeParameterUtilsKt$computeConstructorTypeParameters$parametersFromContainingFunctions$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.descriptors.annotations.CompositeAnnotations$iterator$1 { kotlin.reflect.jvm.internal.impl.descriptors.annotations.CompositeAnnotations$iterator$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithDifferentJvmName { kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithDifferentJvmName INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature { kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getDefaultValueForOverriddenBuiltinFunction$1 { kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getDefaultValueForOverriddenBuiltinFunction$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getOverriddenBuiltinFunctionWithErasedValueParametersInJava$1 { kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getOverriddenBuiltinFunctionWithErasedValueParametersInJava$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getSpecialSignatureInfo$builtinSignature$1 { kotlin.reflect.jvm.internal.impl.load.java.BuiltinMethodsWithSpecialGenericSignature$getSpecialSignatureInfo$builtinSignature$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinSpecialProperties { kotlin.reflect.jvm.internal.impl.load.java.BuiltinSpecialProperties INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.BuiltinSpecialProperties$getBuiltinSpecialPropertyGetterName$descriptor$1 { kotlin.reflect.jvm.internal.impl.load.java.BuiltinSpecialProperties$getBuiltinSpecialPropertyGetterName$descriptor$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.ErasedOverridabilityCondition$isOverridable$signatureTypes$1 { kotlin.reflect.jvm.internal.impl.load.java.ErasedOverridabilityCondition$isOverridable$signatureTypes$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.FakePureImplementationsProvider { kotlin.reflect.jvm.internal.impl.load.java.FakePureImplementationsProvider INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.JvmBytecodeBinaryVersion { kotlin.reflect.jvm.internal.impl.load.java.JvmBytecodeBinaryVersion INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinReflectingJvmDescriptor$2 { kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinReflectingJvmDescriptor$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinWithDifferentJvmName$1 { kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinWithDifferentJvmName$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinWithDifferentJvmName$2 { kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenBuiltinWithDifferentJvmName$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenSpecialBuiltin$2 { kotlin.reflect.jvm.internal.impl.load.java.SpecialBuiltinMembers$getOverriddenSpecialBuiltin$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.components.JavaAnnotationMapper { kotlin.reflect.jvm.internal.impl.load.java.components.JavaAnnotationMapper INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.components.JavaAnnotationTargetMapper { kotlin.reflect.jvm.internal.impl.load.java.components.JavaAnnotationTargetMapper INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.components.JavaPropertyInitializerEvaluator$DoNothing { kotlin.reflect.jvm.internal.impl.load.java.components.JavaPropertyInitializerEvaluator$DoNothing INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.components.RuntimeErrorReporter { kotlin.reflect.jvm.internal.impl.load.java.components.RuntimeErrorReporter INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.components.RuntimeSourceElementFactory { kotlin.reflect.jvm.internal.impl.load.java.components.RuntimeSourceElementFactory INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.descriptors.SamConstructorDescriptorKindExclude { kotlin.reflect.jvm.internal.impl.load.java.descriptors.SamConstructorDescriptorKindExclude INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.TypeParameterResolver$EMPTY { kotlin.reflect.jvm.internal.impl.load.java.lazy.TypeParameterResolver$EMPTY INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.DeclaredMemberIndex$Empty { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.DeclaredMemberIndex$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$getPurelyImplementedSupertype$annotatedPurelyImplementedFqName$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassDescriptor$LazyJavaClassTypeConstructor$getPurelyImplementedSupertype$annotatedPurelyImplementedFqName$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassMemberScope$computeMemberIndex$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaClassMemberScope$computeMemberIndex$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaPackageScope$KotlinClassLookupResult$NotFound { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaPackageScope$KotlinClassLookupResult$NotFound INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaPackageScope$KotlinClassLookupResult$SyntheticClass { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaPackageScope$KotlinClassLookupResult$SyntheticClass INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$computeMemberIndex$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$computeMemberIndex$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$computePropertyNames$1$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$computePropertyNames$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$flatMapJavaStaticSupertypesScopes$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$flatMapJavaStaticSupertypesScopes$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$flatMapJavaStaticSupertypesScopes$1$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.descriptors.LazyJavaStaticClassScope$flatMapJavaStaticSupertypesScopes$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.JavaTypeResolver$argumentsMakeSenseOnlyForMutableContainer$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.JavaTypeResolver$argumentsMakeSenseOnlyForMutableContainer$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.LazyJavaTypeAttributes$typeAnnotations$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.LazyJavaTypeAttributes$typeAnnotations$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.NotFoundClassesKt$parseCanonicalFqNameIgnoringTypeArguments$resultingClassFqName$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.NotFoundClassesKt$parseCanonicalFqNameIgnoringTypeArguments$resultingClassFqName$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.NotFoundClassesKt$splitCanonicalFqName$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.NotFoundClassesKt$splitCanonicalFqName$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawSubstitution { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawSubstitution INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawTypeImpl$render$1 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawTypeImpl$render$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawTypeImpl$render$3 { kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawTypeImpl$render$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.Java8ParameterNamesLoader { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.Java8ParameterNamesLoader INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt$parameterizedTypeArguments$1 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt$parameterizedTypeArguments$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt$parameterizedTypeArguments$2 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectClassUtilKt$parameterizedTypeArguments$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$constructors$1 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$constructors$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$constructors$2 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$constructors$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$fields$1 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$fields$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$fields$2 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$fields$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$innerClasses$1 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$innerClasses$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$innerClasses$2 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$innerClasses$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$methods$2 { kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass$methods$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.EnhancedTypeAnnotationDescriptor { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.EnhancedTypeAnnotationDescriptor INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancementKt$enhanceSignature$receiverTypeEnhancement$1 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancementKt$enhanceSignature$receiverTypeEnhancement$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancementKt$enhanceSignature$returnTypeEnhancement$1 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.SignatureEnhancementKt$enhanceSignature$returnTypeEnhancement$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeIndexedQualifiersForOverride$1 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeIndexedQualifiersForOverride$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeQualifiersForOverride$2 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeQualifiersForOverride$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeQualifiersForOverride$3 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$computeQualifiersForOverride$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$extractQualifiersFromAnnotations$2 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$extractQualifiersFromAnnotations$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$extractQualifiersFromAnnotations$3 { kotlin.reflect.jvm.internal.impl.load.java.typeEnhancement.TypeQualifiersKt$extractQualifiersFromAnnotations$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.DeserializedDescriptorResolver$createKotlinPackagePartScope$2 { kotlin.reflect.jvm.internal.impl.load.kotlin.DeserializedDescriptorResolver$createKotlinPackagePartScope$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.FallbackBuiltIns$Companion$initializer$1 { kotlin.reflect.jvm.internal.impl.load.kotlin.FallbackBuiltIns$Companion$initializer$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.JavaFlexibleTypeDeserializer { kotlin.reflect.jvm.internal.impl.load.kotlin.JavaFlexibleTypeDeserializer INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.JvmBuiltInsSettings$getJavaAnalogue$fqName$1 { kotlin.reflect.jvm.internal.impl.load.kotlin.JvmBuiltInsSettings$getJavaAnalogue$fqName$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.JvmBuiltInsSettings$isMutabilityViolation$1 { kotlin.reflect.jvm.internal.impl.load.kotlin.JvmBuiltInsSettings$isMutabilityViolation$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.JvmMetadataVersion { kotlin.reflect.jvm.internal.impl.load.kotlin.JvmMetadataVersion INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.JvmTypeFactoryImpl { kotlin.reflect.jvm.internal.impl.load.kotlin.JvmTypeFactoryImpl INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.SignatureBuildingComponents { kotlin.reflect.jvm.internal.impl.load.kotlin.SignatureBuildingComponents INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.SignatureBuildingComponents$jvmDescriptor$1 { kotlin.reflect.jvm.internal.impl.load.kotlin.SignatureBuildingComponents$jvmDescriptor$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.TypeMappingConfiguration$Companion$DEFAULT_INNER_CLASS_NAME_FACTORY$1 { kotlin.reflect.jvm.internal.impl.load.kotlin.TypeMappingConfiguration$Companion$DEFAULT_INNER_CLASS_NAME_FACTORY$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.TypeMappingConfigurationImpl { kotlin.reflect.jvm.internal.impl.load.kotlin.TypeMappingConfigurationImpl INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.UnsafeVarianceTypeSubstitution$prepareTopLevelType$2 { kotlin.reflect.jvm.internal.impl.load.kotlin.UnsafeVarianceTypeSubstitution$prepareTopLevelType$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.ReflectClassStructure { kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.ReflectClassStructure INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.SignatureSerializer { kotlin.reflect.jvm.internal.impl.load.kotlin.reflect.SignatureSerializer INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.name.NameUtils { kotlin.reflect.jvm.internal.impl.name.NameUtils INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.platform.JavaToKotlinClassMap { kotlin.reflect.jvm.internal.impl.platform.JavaToKotlinClassMap INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$FULLY_QUALIFIED { kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$FULLY_QUALIFIED INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$SHORT { kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$SHORT INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$SOURCE_CODE_QUALIFIED { kotlin.reflect.jvm.internal.impl.renderer.ClassifierNamePolicy$SOURCE_CODE_QUALIFIED INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT_WITH_MODIFIERS$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$COMPACT_WITH_SHORT_TYPES$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$DEBUG_TEXT$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$DEBUG_TEXT$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$FQ_NAMES_IN_TYPES$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$HTML$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$HTML$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$ONLY_NAMES_WITH_SHORT_TYPES$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$Companion$SHORT_NAMES_IN_TYPES$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$ValueParametersHandler$DEFAULT { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer$ValueParametersHandler$DEFAULT INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererImpl$functionTypeAnnotationsRenderer$2$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererImpl$functionTypeAnnotationsRenderer$2$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererImpl$functionTypeParameterTypesRenderer$2$1 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererImpl$functionTypeParameterTypesRenderer$2$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererOptionsImpl$typeNormalizer$2 { kotlin.reflect.jvm.internal.impl.renderer.DescriptorRendererOptionsImpl$typeNormalizer$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.renderer.ExcludedTypeAnnotations { kotlin.reflect.jvm.internal.impl.renderer.ExcludedTypeAnnotations INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides { kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides$areCallableDescriptorsEquivalent$1 { kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides$areCallableDescriptorsEquivalent$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides$areTypeParametersEquivalent$1 { kotlin.reflect.jvm.internal.impl.resolve.DescriptorEquivalenceForOverrides$areTypeParametersEquivalent$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.MemberComparator { kotlin.reflect.jvm.internal.impl.resolve.MemberComparator INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.MultiTargetPlatform$Common { kotlin.reflect.jvm.internal.impl.resolve.MultiTargetPlatform$Common INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.OverridingUtilsKt$findTopMostOverriddenDescriptors$1 { kotlin.reflect.jvm.internal.impl.resolve.OverridingUtilsKt$findTopMostOverriddenDescriptors$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$classesFromInnerToOuter$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$classesFromInnerToOuter$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$fqNameOrNull$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$fqNameOrNull$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$getAllSuperclassesWithoutAny$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$getAllSuperclassesWithoutAny$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$2 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasDefaultValue$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasOrInheritsParametersWithDefaultValue$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasOrInheritsParametersWithDefaultValue$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasOrInheritsParametersWithDefaultValue$2 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$hasOrInheritsParametersWithDefaultValue$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$parentsWithSelf$1 { kotlin.reflect.jvm.internal.impl.resolve.descriptorUtil.DescriptorUtilsKt$parentsWithSelf$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$EnumEntry { kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$EnumEntry INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$Extensions { kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$Extensions INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$NonExtensions { kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$NonExtensions INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$TopLevelPackages { kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindExclude$TopLevelPackages INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScope$Companion$ALL_NAME_FILTER$1 { kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScope$Companion$ALL_NAME_FILTER$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScope$Empty { kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScope$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScopeKt$getDescriptorsFiltered$1 { kotlin.reflect.jvm.internal.impl.resolve.scopes.MemberScopeKt$getDescriptorsFiltered$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.SyntheticConstructorsProvider$Empty { kotlin.reflect.jvm.internal.impl.resolve.scopes.SyntheticConstructorsProvider$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.SyntheticScopes$Empty { kotlin.reflect.jvm.internal.impl.resolve.scopes.SyntheticScopes$Empty INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedDescriptors$2 { kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedDescriptors$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedFunctions$1 { kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedFunctions$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedVariables$1 { kotlin.reflect.jvm.internal.impl.resolve.scopes.TypeIntersectionScope$getContributedVariables$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.AdditionalClassPartsProvider$None { kotlin.reflect.jvm.internal.impl.serialization.deserialization.AdditionalClassPartsProvider$None INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.Deserialization { kotlin.reflect.jvm.internal.impl.serialization.deserialization.Deserialization INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.DeserializationConfiguration$Default { kotlin.reflect.jvm.internal.impl.serialization.deserialization.DeserializationConfiguration$Default INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.FindClassInModuleKt$findNonGenericClassAcrossDependencies$typeParametersCount$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.FindClassInModuleKt$findNonGenericClassAcrossDependencies$typeParametersCount$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.FindClassInModuleKt$findNonGenericClassAcrossDependencies$typeParametersCount$2 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.FindClassInModuleKt$findNonGenericClassAcrossDependencies$typeParametersCount$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.FlexibleTypeDeserializer$ThrowException { kotlin.reflect.jvm.internal.impl.serialization.deserialization.FlexibleTypeDeserializer$ThrowException INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.LocalClassifierTypeSettings$Default { kotlin.reflect.jvm.internal.impl.serialization.deserialization.LocalClassifierTypeSettings$Default INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$classDataFinder$1$topLevelClassId$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$classDataFinder$1$topLevelClassId$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$computeMemberScope$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$computeMemberScope$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$computeMemberScope$3 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.MetadataPackageFragment$computeMemberScope$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.NotFoundClassesKt$computeTypeParametersCount$classNestingLevel$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.NotFoundClassesKt$computeTypeParametersCount$classNestingLevel$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.NotFoundClassesKt$computeTypeParametersCount$typeParametersCount$2 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.NotFoundClassesKt$computeTypeParametersCount$typeParametersCount$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.PlatformDependentDeclarationFilter$All { kotlin.reflect.jvm.internal.impl.serialization.deserialization.PlatformDependentDeclarationFilter$All INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.PlatformDependentDeclarationFilter$NoPlatformDependent { kotlin.reflect.jvm.internal.impl.serialization.deserialization.PlatformDependentDeclarationFilter$NoPlatformDependent INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer$createSuspendFunctionType$result$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer$createSuspendFunctionType$result$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotationsWithPossibleTargets$iterator$1 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotationsWithPossibleTargets$iterator$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotationsWithPossibleTargets$iterator$2 { kotlin.reflect.jvm.internal.impl.serialization.deserialization.descriptors.DeserializedAnnotationsWithPossibleTargets$iterator$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.jvm.ClassMapperLite { kotlin.reflect.jvm.internal.impl.serialization.jvm.ClassMapperLite INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.serialization.jvm.JvmProtoBufUtil { kotlin.reflect.jvm.internal.impl.serialization.jvm.JvmProtoBufUtil INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.storage.NoLock { java.util.concurrent.locks.Lock INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.AbstractTypeConstructor$supertypes$2 { kotlin.reflect.jvm.internal.impl.types.AbstractTypeConstructor$supertypes$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.KotlinTypeFactory { kotlin.reflect.jvm.internal.impl.types.KotlinTypeFactory INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.VarianceCheckerKt$checkTypePosition$1 { kotlin.reflect.jvm.internal.impl.types.VarianceCheckerKt$checkTypePosition$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.ErrorTypesAreEqualToAnything { kotlin.reflect.jvm.internal.impl.types.checker.ErrorTypesAreEqualToAnything INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$collectAllSupertypesWithGivenTypeConstructor$1 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$collectAllSupertypesWithGivenTypeConstructor$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$findCorrespondingSupertypes$1 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$findCorrespondingSupertypes$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$findCorrespondingSupertypes$2 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$findCorrespondingSupertypes$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$hasNothingSupertype$1 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$hasNothingSupertype$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$hasNothingSupertype$2 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$hasNothingSupertype$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$isSubtypeOfForSingleClassifierType$newArguments$1$allProjections$1$1 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$isSubtypeOfForSingleClassifierType$newArguments$1$allProjections$1$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$transformToNewType$lowerType$1 { kotlin.reflect.jvm.internal.impl.types.checker.NewKotlinTypeChecker$transformToNewType$lowerType$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker { kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker$hasNotNullSupertype$1 { kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker$hasNotNullSupertype$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker$hasPathByNotMarkedNullableNodes$2 { kotlin.reflect.jvm.internal.impl.types.checker.NullabilityChecker$hasPathByNotMarkedNullableNodes$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.StrictEqualityTypeChecker { kotlin.reflect.jvm.internal.impl.types.checker.StrictEqualityTypeChecker INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$LowerIfFlexible { kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$LowerIfFlexible INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$None { kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$None INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$UpperIfFlexible { kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$SupertypesPolicy$UpperIfFlexible INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$anySupertype$policy$1 { kotlin.reflect.jvm.internal.impl.types.checker.TypeCheckerContext$anySupertype$policy$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$boundClosure$1 { kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$boundClosure$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$containsTypeAliasParameters$1 { kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$containsTypeAliasParameters$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$containsTypeAliases$1 { kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$containsTypeAliases$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$requiresTypeAliasExpansion$1 { kotlin.reflect.jvm.internal.impl.types.typeUtil.TypeUtilsKt$requiresTypeAliasExpansion$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typesApproximation.CapturedTypeApproximationKt$approximateCapturedTypesIfNecessary$1 { kotlin.reflect.jvm.internal.impl.types.typesApproximation.CapturedTypeApproximationKt$approximateCapturedTypesIfNecessary$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.types.typesApproximation.CapturedTypeApproximationKt$toTypeProjection$1$descriptorRenderer$1 { kotlin.reflect.jvm.internal.impl.types.typesApproximation.CapturedTypeApproximationKt$toTypeProjection$1$descriptorRenderer$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.CheckResult$IllegalFunctionName { kotlin.reflect.jvm.internal.impl.util.CheckResult$IllegalFunctionName INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.CheckResult$SuccessCheck { kotlin.reflect.jvm.internal.impl.util.CheckResult$SuccessCheck INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.Checks$1 { kotlin.reflect.jvm.internal.impl.util.Checks$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.Checks$2 { kotlin.reflect.jvm.internal.impl.util.Checks$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.Checks$3 { kotlin.reflect.jvm.internal.impl.util.Checks$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.Checks$4 { kotlin.reflect.jvm.internal.impl.util.Checks$4 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.InfixChecks { kotlin.reflect.jvm.internal.impl.util.InfixChecks INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.IsKPropertyCheck { kotlin.reflect.jvm.internal.impl.util.IsKPropertyCheck INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.MemberKindCheck$Member { kotlin.reflect.jvm.internal.impl.util.MemberKindCheck$Member INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.MemberKindCheck$MemberOrExtension { kotlin.reflect.jvm.internal.impl.util.MemberKindCheck$MemberOrExtension INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ModuleVisibilityHelper$EMPTY { kotlin.reflect.jvm.internal.impl.util.ModuleVisibilityHelper$EMPTY INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.NoDefaultAndVarargsCheck { kotlin.reflect.jvm.internal.impl.util.NoDefaultAndVarargsCheck INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.NoTypeParametersCheck { kotlin.reflect.jvm.internal.impl.util.NoTypeParametersCheck INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorChecks { kotlin.reflect.jvm.internal.impl.util.OperatorChecks INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$1 { kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$2 { kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$2 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$2$1 { kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$2$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$3 { kotlin.reflect.jvm.internal.impl.util.OperatorChecks$checks$3 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.OperatorNameConventions { kotlin.reflect.jvm.internal.impl.util.OperatorNameConventions INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsBoolean { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsBoolean INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsBoolean$1 { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsBoolean$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsInt { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsInt INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsInt$1 { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsInt$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsUnit { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsUnit INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsUnit$1 { kotlin.reflect.jvm.internal.impl.util.ReturnsCheck$ReturnsUnit$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ValueParameterCountCheck$NoValueParameters { kotlin.reflect.jvm.internal.impl.util.ValueParameterCountCheck$NoValueParameters INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.util.ValueParameterCountCheck$SingleValueParameter { kotlin.reflect.jvm.internal.impl.util.ValueParameterCountCheck$SingleValueParameter INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$ALWAYS_NULL$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$ALWAYS_NULL$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$ALWAYS_TRUE$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$ALWAYS_TRUE$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING_2$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING_2$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING_3$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$DO_NOTHING_3$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$IDENTITY$1 { kotlin.reflect.jvm.internal.impl.utils.FunctionsKt$IDENTITY$1 INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.SmartList$EmptyIterator { kotlin.reflect.jvm.internal.impl.utils.SmartList$EmptyIterator INSTANCE; }'
          Maybe this is program field 'kotlin.reflect.jvm.internal.impl.utils.addToStdlib.AddToStdlibKt$sequenceOfLazyValues$1 { kotlin.reflect.jvm.internal.impl.utils.addToStdlib.AddToStdlibKt$sequenceOfLazyValues$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.EmptySequence { kotlin.sequences.EmptySequence INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt__SequencesKt$flatten$1 { kotlin.sequences.SequencesKt__SequencesKt$flatten$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt__SequencesKt$flatten$2 { kotlin.sequences.SequencesKt__SequencesKt$flatten$2 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt__SequencesKt$flatten$3 { kotlin.sequences.SequencesKt__SequencesKt$flatten$3 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$distinct$1 { kotlin.sequences.SequencesKt___SequencesKt$distinct$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$filterIndexed$2 { kotlin.sequences.SequencesKt___SequencesKt$filterIndexed$2 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$filterIsInstance$1 { kotlin.sequences.SequencesKt___SequencesKt$filterIsInstance$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$filterNotNull$1 { kotlin.sequences.SequencesKt___SequencesKt$filterNotNull$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$flatMap$1 { kotlin.sequences.SequencesKt___SequencesKt$flatMap$1 INSTANCE; }'
          Maybe this is program field 'kotlin.sequences.SequencesKt___SequencesKt$zip$1 { kotlin.sequences.SequencesKt___SequencesKt$zip$1 INSTANCE; }'
          Maybe this is program field 'kotlin.text.CharCategory$Companion$categoryMap$2 { kotlin.text.CharCategory$Companion$categoryMap$2 INSTANCE; }'
          Maybe this is program field 'kotlin.text.CharDirectionality$Companion$directionalityMap$2 { kotlin.text.CharDirectionality$Companion$directionalityMap$2 INSTANCE; }'
          Maybe this is program field 'kotlin.text.Charsets { kotlin.text.Charsets INSTANCE; }'
          Maybe this is program field 'kotlin.text.Regex$findAll$2 { kotlin.text.Regex$findAll$2 INSTANCE; }'
          Maybe this is program field 'kotlin.text.ScreenFloatValueRegEx { kotlin.text.ScreenFloatValueRegEx INSTANCE; }'
          Maybe this is program field 'kotlin.text.StringsKt__IndentKt$getIndentFunction$1 { kotlin.text.StringsKt__IndentKt$getIndentFunction$1 INSTANCE; }'
          Maybe this is program field 'kotlin.text.SystemProperties { kotlin.text.SystemProperties INSTANCE; }'
          Maybe this is program field 'kotlin.text.Typography { kotlin.text.Typography INSTANCE; }'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.builtins.functions.FunctionClassDescriptor$Kind { FunctionClassDescriptor$Kind(java.lang.String,int,kotlin.reflect.jvm.internal.impl.name.FqName,java.lang.String); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.name.FqName'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationUseSiteTarget { AnnotationUseSiteTarget(java.lang.String,int,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker); }', but not the descriptor class 'kotlin.jvm.internal.DefaultConstructorMarker'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.descriptors.annotations.KotlinTarget { KotlinTarget(java.lang.String,int,java.lang.String,boolean,int,kotlin.jvm.internal.DefaultConstructorMarker); }', but not the descriptor class 'kotlin.jvm.internal.DefaultConstructorMarker'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType { WireFormat$FieldType(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType { WireFormat$FieldType(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$1); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType { WireFormat$FieldType(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$1); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$1'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType$1 { WireFormat$FieldType$1(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType$2 { WireFormat$FieldType$2(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType$3 { WireFormat$FieldType$3(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$FieldType$4 { WireFormat$FieldType$4(java.lang.String,int,kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType,int); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.protobuf.WireFormat$JavaType'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.renderer.AnnotationArgumentsRenderingPolicy { AnnotationArgumentsRenderingPolicy(java.lang.String,int,boolean,boolean,int,kotlin.jvm.internal.DefaultConstructorMarker); }', but not the descriptor class 'kotlin.jvm.internal.DefaultConstructorMarker'
    Note: the configuration keeps the entry point 'kotlin.reflect.jvm.internal.impl.resolve.jvm.JvmPrimitiveType { JvmPrimitiveType(java.lang.String,int,kotlin.reflect.jvm.internal.impl.builtins.PrimitiveType,java.lang.String,java.lang.String,java.lang.String); }', but not the descriptor class 'kotlin.reflect.jvm.internal.impl.builtins.PrimitiveType'
    Note: the configuration keeps the entry point 'kotlin.text.RegexOption { RegexOption(java.lang.String,int,int,int,int,kotlin.jvm.internal.DefaultConstructorMarker); }', but not the descriptor class 'kotlin.jvm.internal.DefaultConstructorMarker'
    Note: there were 23 classes trying to access generic signatures using reflection.
          You should consider keeping the signature attributes
          (using '-keepattributes Signature').
          (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes)
    Note: there were 9 classes trying to access enclosing classes using reflection.
          You should consider keeping the inner classes attributes
          (using '-keepattributes InnerClasses').
          (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes)
    Note: there were 4 classes trying to access enclosing methods using reflection.
          You should consider keeping the enclosing method attributes
          (using '-keepattributes InnerClasses,EnclosingMethod').
          (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes)
    Note: there were 13 unkept descriptor classes in kept class members.
          You should consider explicitly keeping the mentioned classes
          (using '-keep').
          (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
    Note: there were 2 unresolved dynamic references to classes or interfaces.
          You should check if you need to specify additional program jars.
          (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
    Note: there were 2 accesses to class members by means of introspection.
          You should consider explicitly keeping the mentioned class members
          (using '-keep' or '-keepclassmembers').
          (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember)
    Warning: there were 14 unresolved references to classes or interfaces.
             You may need to add missing library jars or update their versions.
             If your code works fine without the missing classes, you can suppress
             the warnings with '-dontwarn' options.
             (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
    Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
    :app:transformClassesAndResourcesWithProguardForRelease FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
    > java.io.IOException: Please correct the above warnings first.
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    BUILD FAILED
    
    Total time: 17.344 secs
    
    
    opened by snowdream 2
  • The generated source dir for apt and kapt is different?

    The generated source dir for apt and kapt is different?

    for example,An android project with the variant(Flavor1 + Debug)

    kapt The generate source files will be put into "build/generated/source/kapt/flavor1Debug"

    apt The generate source files will be put into "build/generated/source/apt/flavor1/debug"

    what i mean is that "flavor1Debug" and "flavor1/debug" is so much different, why?

    opened by snowdream 1
  • Cannot change dependencies of configuration ':lib:kapt' after it has been resolved.

    Cannot change dependencies of configuration ':lib:kapt' after it has been resolved.

    * Where:
    Build file '/Users/snowdream/workspace/snowdream/git/SnowdreamFramework/ToyBricks/lib/build.gradle' line: 12
    
    * What went wrong:
    A problem occurred evaluating project ':lib'.
    > Cannot change dependencies of configuration ':lib:kapt' after it has been resolved.
    
    opened by snowdream 1
  • support kapt2

    support kapt2

    1. https://blog.jetbrains.com/kotlin/2016/12/kotlin-1-0-6-is-here/
    2. https://plugins.gradle.org/plugin/org.jetbrains.kotlin.kapt
    3. https://discuss.kotlinlang.org/t/kotlin-1-0-4-eap/1901/3
    4. https://discuss.kotlinlang.org/t/how-can-i-get-kotlin-working-dagger-2-and-intellij-for-non-android-projects/1572
    5. https://plugins.gradle.org/plugin/org.jetbrains.dokka
    6. https://github.com/JetBrains/kotlin-examples/blob/85710add2a46bb2fff97a22905f7ba64dc78fe3f/gradle/android-butterknife/build.gradle
    enhancement 
    opened by snowdream 0
  • Android Gradle Plugin 2.5,Does not currently work with the Kotlin plugin.

    Android Gradle Plugin 2.5,Does not currently work with the Kotlin plugin.

    form: http://tools.android.com/tech-docs/new-build-system/2-5-alpha-gradle-plugin

    Known Issues Generating multi-apks using the splits {} block doesn’t work—use the latest stable version of the plugin instead. Instant Run is has not been tested with this version of the plugin. While using this plugin with Android Studio, dependencies on local AAR files are not yet supported. Android Instant Apps (for Early Access Program partners) is not supported in this release. Does not currently work with Protobuf plugin. Does not currently work with the Kotlin plugin. Does not currently work with the retrolambda plugin. However, plugin 2.5 alpha-preview 2 includes built-in support for using Java 8 language features. We have not yet released a matching version of the Android Studio IDE to take full advantage of this plugin. Although this version of the plugin will work with Android Studio 2.3, you should not expect any Gradle sync performance improvement over using Android Studio 2.3 with Android Gradle plugin 2.3. You should expect faster Gradle sync times from this version of the plugin when it is used with Android Studio 2.4 or 2.5 (coming soon). This plugin breaks the third party android-apt plugin. Switch to the built-in annotation processor support which has been improved to handle resolving dependencies lazily.

    opened by snowdream 0
  • java.lang.ExceptionInInitializerError

    java.lang.ExceptionInInitializerError

    02-19 05:54:57.441 25749-25749/? W/art: Unexpected CPU variant for X86 using defaults: x86
    02-19 05:54:57.590 25749-25749/com.github.snowdream.toybricks.app W/System: ClassLoader referenced unknown path: /data/app/com.github.snowdream.toybricks.app-1/lib/x86
    02-19 05:54:57.607 25749-25749/com.github.snowdream.toybricks.app D/AndroidRuntime: Shutting down VM
    02-19 05:54:57.607 25749-25749/com.github.snowdream.toybricks.app E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                        Process: com.github.snowdream.toybricks.app, PID: 25749
                                                                                        java.lang.ExceptionInInitializerError
                                                                                            at com.github.snowdream.toybricks.a.a(Unknown Source)
                                                                                            at com.github.snowdream.toybricks.app.MainActivity.onCreate(Unknown Source)
                                                                                            at android.app.Activity.performCreate(Activity.java:6664)
                                                                                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
                                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
                                                                                            at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
                                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                            at android.os.Looper.loop(Looper.java:154)
                                                                                            at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                                                                                         Caused by: java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=1
                                                                                            at java.lang.String.substring(String.java:1931)
                                                                                            at com.github.snowdream.toybricks.a.a.a.a(Unknown Source)
                                                                                            at com.github.snowdream.toybricks.a.a.a.a(Unknown Source)
                                                                                            at com.github.snowdream.toybricks.a.<clinit>(Unknown Source)
                                                                                            at com.github.snowdream.toybricks.a.a(Unknown Source) 
                                                                                            at com.github.snowdream.toybricks.app.MainActivity.onCreate(Unknown Source) 
                                                                                            at android.app.Activity.performCreate(Activity.java:6664) 
                                                                                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
                                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) 
                                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
                                                                                            at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
                                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                            at android.os.Looper.loop(Looper.java:154) 
                                                                                            at android.app.ActivityThread.main(ActivityThread.java:6077) 
                                                                                            at java.lang.reflect.Method.invoke(Native Method) 
                                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
    
    
    opened by snowdream 0
Dokka plugin to provide the documentation model to AsciiDoxy

Dokka plugin template This repository provides a template for creating Dokka plugins (check the Creating a repository from a template article). TL;DR:

Rob van der Most 0 Dec 10, 2021
A pair of applications provide a direct means of integrating with one another via application programming interfaces (APIs)

What is a native integration? It's when a pair of applications provide a direct means of integrating with one another via application programming interfaces (APIs). Once integrated, data can flow between the apps and become more readily available to your employees.

Behruz Hurramov 2 Jan 17, 2022
Simple Android Library, that provides easy way to start the Activities with arguments.

Warning: Library is not maintained anymore. If you want to take care of this library, propose it via Pull Request. It needs adjustmensts for newer ver

Marcin Moskała 429 Dec 15, 2022
A fragment binding library - the easier, efficient way.

Byda allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.github.Codzure:B

null 3 May 27, 2021
A Kotlin library providing a simple, high-performance way to use off-heap native memory in JVM applications.

native_memory_allocator A library which uses sun.misc.Unsafe to allocate off-heap native memory. Motivation The goal of this project is to provide a s

Target 5 Dec 8, 2022
:bouquet: An easy way to persist and run code block only as many times as necessary on Android.

Only ?? An easy way to persist and run code block only as many times as necessary on Android. Download Gradle Add below codes to your root build.gradl

Jaewoong Eum 479 Dec 25, 2022
:bouquet: An easy way to persist and run code block only as many times as necessary on Android.

Only ?? An easy way to persist and run code block only as many times as necessary on Android. Download Gradle Add below codes to your root build.gradl

Jaewoong Eum 468 Apr 14, 2021
:performing_arts: An easy, flexible way to implement veil skeletons and shimmering effect for Android.

AndroidVeil An easy, flexible way to implement veil skeletons and shimmering effect for Android. Download Gradle Add below codes to your root build.gr

Jaewoong Eum 1.2k Dec 28, 2022
A lightweight alternative to Android's ViewModels. The easiest way to retain instances in Activities, Fragments or Composables.

A lightweight alternative to Android's ViewModels. The easiest way to retain instances in Activities, Fragments or Composables.

Marcello Galhardo 264 Dec 27, 2022
Extension functions over Android's callback-based APIs which allows writing them in a sequential way within coroutines or observe multiple callbacks through kotlin flow.

callback-ktx A lightweight Android library that wraps Android's callback-based APIs into suspending extension functions which allow writing them in a

Sagar Viradiya 171 Oct 31, 2022
Display code with syntax highlighting :sparkles: in native way.

CodeView (Android) CodeView helps to show code content with syntax highlighting in native way. Description CodeView contains 3 core parts to implement

Kirill Biakov 827 Dec 22, 2022
The easiest way to bring validation to your project

RxValidationTextInputLayout The easiest way to bring validation to EditText with TextInputLayout. Getting Started Add dependency to your project using

Ihor Kucherenko 45 Apr 18, 2022
A simple way to handle remote image in Kotlin.

Parrot A kotlin extension to load easily remote images in your ImageView. Install Add to gradle in allprojects maven { url 'https://jitpack.io' } the

Matteo Crippa 22 Oct 3, 2022
:closed_umbrella: An easy way to implement modern permission instructions popup.

Needs An easy way to implement modern permission instructions popup. Needs can be fully customized and showing with animations. Download Gradle Add be

Jaewoong Eum 609 Dec 8, 2022
Modern Calendar View Supporting Both Hijri and Gregorian Calendars but in highly dynamic way

KCalendar-View Modern calendar view supporting both Hijri and Gregorian calendar

Ahmed Ibrahim 8 Oct 29, 2022
kinstall is an easy way to install gradle-based command-line kotlin projects that use the application plugin.

kinstall kinstall is an easy way to install gradle-based command-line kotlin projects that use the application plugin. use First, install kinstall its

david kilmer 0 Apr 24, 2022
AdsManager - Easy way to implement Google Ads

AdsManager Easy way to implement Google Ads Implementaion: https://jitpack.io/#R

null 3 Jul 25, 2022
Koin Annotations - help declare Koin definition in a very fast and intuitive way, and generate all underlying Koin DSL for you

The goal of Koin Annotations project is to help declare Koin definition in a very fast and intuitive way, and generate all underlying Koin DSL for you. The goal is to help developer experience to scale and go fast ?? , thanks to Kotlin Compilers.

insert-koin.io 68 Jan 6, 2023
Reason about resource-safety in the same way you reason about Structured Concurrency with SuspendApp!

Reason about resource-safety in the same way you reason about Structured Concurrency with SuspendApp!

ΛRROW 34 Dec 21, 2022