Minor. Introduce FunctionHandle::mightBeIncorrectCode
This commit is contained in:
@@ -30,6 +30,8 @@ interface FunctionHandle {
|
|||||||
val mayBeUsedAsSuperImplementation: Boolean
|
val mayBeUsedAsSuperImplementation: Boolean
|
||||||
|
|
||||||
fun getOverridden(): Iterable<FunctionHandle>
|
fun getOverridden(): Iterable<FunctionHandle>
|
||||||
|
|
||||||
|
val mightBeIncorrectCode: Boolean get() = false
|
||||||
}
|
}
|
||||||
|
|
||||||
data class Bridge<out Signature>(
|
data class Bridge<out Signature>(
|
||||||
|
|||||||
@@ -23,17 +23,20 @@ public class ClassBuilderMode {
|
|||||||
public final boolean generateMetadata;
|
public final boolean generateMetadata;
|
||||||
public final boolean generateSourceRetentionAnnotations;
|
public final boolean generateSourceRetentionAnnotations;
|
||||||
public final boolean generateMultiFileFacadePartClasses;
|
public final boolean generateMultiFileFacadePartClasses;
|
||||||
|
public final boolean mightBeIncorrectCode;
|
||||||
|
|
||||||
private ClassBuilderMode(
|
private ClassBuilderMode(
|
||||||
boolean generateBodies,
|
boolean generateBodies,
|
||||||
boolean generateMetadata,
|
boolean generateMetadata,
|
||||||
boolean generateSourceRetentionAnnotations,
|
boolean generateSourceRetentionAnnotations,
|
||||||
boolean generateMultiFileFacadePartClasses
|
boolean generateMultiFileFacadePartClasses,
|
||||||
|
boolean mightBeIncorrectCode
|
||||||
) {
|
) {
|
||||||
this.generateBodies = generateBodies;
|
this.generateBodies = generateBodies;
|
||||||
this.generateMetadata = generateMetadata;
|
this.generateMetadata = generateMetadata;
|
||||||
this.generateSourceRetentionAnnotations = generateSourceRetentionAnnotations;
|
this.generateSourceRetentionAnnotations = generateSourceRetentionAnnotations;
|
||||||
this.generateMultiFileFacadePartClasses = generateMultiFileFacadePartClasses;
|
this.generateMultiFileFacadePartClasses = generateMultiFileFacadePartClasses;
|
||||||
|
this.mightBeIncorrectCode = mightBeIncorrectCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,7 +46,8 @@ public class ClassBuilderMode {
|
|||||||
/* bodies = */ true,
|
/* bodies = */ true,
|
||||||
/* metadata = */ true,
|
/* metadata = */ true,
|
||||||
/* sourceRetention = */ false,
|
/* sourceRetention = */ false,
|
||||||
/* generateMultiFileFacadePartClasses = */ true);
|
/* generateMultiFileFacadePartClasses = */ true,
|
||||||
|
/* mightBeIncorrectCode = */ false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ABI for compilation (non-private signatures + inline function bodies)
|
* ABI for compilation (non-private signatures + inline function bodies)
|
||||||
@@ -52,7 +56,8 @@ public class ClassBuilderMode {
|
|||||||
/* bodies = */ true,
|
/* bodies = */ true,
|
||||||
/* metadata = */ true,
|
/* metadata = */ true,
|
||||||
/* sourceRetention = */ false,
|
/* sourceRetention = */ false,
|
||||||
/* generateMultiFileFacadePartClasses = */ true);
|
/* generateMultiFileFacadePartClasses = */ true,
|
||||||
|
/* mightBeIncorrectCode = */ false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generating light classes: Only function signatures
|
* Generating light classes: Only function signatures
|
||||||
@@ -61,7 +66,8 @@ public class ClassBuilderMode {
|
|||||||
/* bodies = */ false,
|
/* bodies = */ false,
|
||||||
/* metadata = */ false,
|
/* metadata = */ false,
|
||||||
/* sourceRetention = */ true,
|
/* sourceRetention = */ true,
|
||||||
/* generateMultiFileFacadePartClasses = */ false);
|
/* generateMultiFileFacadePartClasses = */ false,
|
||||||
|
/* mightBeIncorrectCode = */ true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function signatures + metadata (to support incremental compilation with kapt)
|
* Function signatures + metadata (to support incremental compilation with kapt)
|
||||||
@@ -70,12 +76,14 @@ public class ClassBuilderMode {
|
|||||||
/* bodies = */ false,
|
/* bodies = */ false,
|
||||||
/* metadata = */ true,
|
/* metadata = */ true,
|
||||||
/* sourceRetention = */ true,
|
/* sourceRetention = */ true,
|
||||||
/* generateMultiFileFacadePartClasses = */ true);
|
/* generateMultiFileFacadePartClasses = */ true,
|
||||||
|
/* mightBeIncorrectCode = */ true);
|
||||||
|
|
||||||
@TestOnly
|
@TestOnly
|
||||||
public final static ClassBuilderMode LIGHT_ANALYSIS_FOR_TESTS = new ClassBuilderMode(
|
public final static ClassBuilderMode LIGHT_ANALYSIS_FOR_TESTS = new ClassBuilderMode(
|
||||||
/* bodies = */ false,
|
/* bodies = */ false,
|
||||||
/* metadata = */ true,
|
/* metadata = */ true,
|
||||||
/* sourceRetention = */ false,
|
/* sourceRetention = */ false,
|
||||||
/* generateMultiFileFacadePartClasses = */ true);
|
/* generateMultiFileFacadePartClasses = */ true,
|
||||||
|
/* mightBeIncorrectCode = */ true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ class DescriptorBasedFunctionHandleForJvm(
|
|||||||
|
|
||||||
override val isDeclaration: Boolean =
|
override val isDeclaration: Boolean =
|
||||||
descriptor.kind.isReal || needToGenerateDelegationToDefaultImpls(descriptor)
|
descriptor.kind.isReal || needToGenerateDelegationToDefaultImpls(descriptor)
|
||||||
|
|
||||||
|
override val mightBeIncorrectCode: Boolean
|
||||||
|
get() = state.classBuilderMode.mightBeIncorrectCode
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun CallableMemberDescriptor.isJvmDefaultOrPlatformDependent() =
|
private fun CallableMemberDescriptor.isJvmDefaultOrPlatformDependent() =
|
||||||
|
|||||||
Reference in New Issue
Block a user