Code cleanup
This commit is contained in:
@@ -48,11 +48,6 @@ public class AccessorForFunctionDescriptor extends AbstractAccessorForFunctionDe
|
|||||||
descriptor.getReturnType(),
|
descriptor.getReturnType(),
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL);
|
Visibilities.LOCAL);
|
||||||
setOperator(descriptor.isOperator());
|
|
||||||
setInfix(descriptor.isInfix());
|
|
||||||
setExternal(descriptor.isExternal());
|
|
||||||
setInline(descriptor.isInline());
|
|
||||||
setTailrec(descriptor.isTailrec());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ private val NATIVE_ANNOTATION_CLASS_NAME = FqName("kotlin.jvm.native")
|
|||||||
|
|
||||||
public fun DeclarationDescriptor.hasNativeAnnotation(): Boolean {
|
public fun DeclarationDescriptor.hasNativeAnnotation(): Boolean {
|
||||||
return this is FunctionDescriptor && this.isExternal
|
return this is FunctionDescriptor && this.isExternal
|
||||||
|| this is PropertyAccessorDescriptor && this.isExternal
|
|
||||||
|| annotations.findAnnotation(NATIVE_ANNOTATION_CLASS_NAME) != null
|
|| annotations.findAnnotation(NATIVE_ANNOTATION_CLASS_NAME) != null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -114,8 +114,7 @@ public class AnnotationResolver {
|
|||||||
return Annotations.Companion.getEMPTY();
|
return Annotations.Companion.getEMPTY();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<JetAnnotationEntry> annotationEntryElements = modifierList.getAnnotationEntries();
|
return resolveAnnotationEntries(scope, modifierList.getAnnotationEntries(), trace, shouldResolveArguments);
|
||||||
return resolveAnnotationEntries(scope, annotationEntryElements, trace, shouldResolveArguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Annotations resolveAnnotationEntries(
|
private Annotations resolveAnnotationEntries(
|
||||||
|
|||||||
@@ -33,13 +33,8 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
|||||||
|
|
||||||
public class InlineUtil {
|
public class InlineUtil {
|
||||||
public static boolean isInlineLambdaParameter(@NotNull ParameterDescriptor valueParameterOrReceiver) {
|
public static boolean isInlineLambdaParameter(@NotNull ParameterDescriptor valueParameterOrReceiver) {
|
||||||
boolean isNoinlineParameter = false;
|
return !(valueParameterOrReceiver instanceof ValueParameterDescriptor
|
||||||
|
&& ((ValueParameterDescriptor) valueParameterOrReceiver).isNoinline()) &&
|
||||||
if (valueParameterOrReceiver instanceof ValueParameterDescriptor) {
|
|
||||||
isNoinlineParameter = ((ValueParameterDescriptor) valueParameterOrReceiver).isNoinline();
|
|
||||||
}
|
|
||||||
|
|
||||||
return !isNoinlineParameter &&
|
|
||||||
KotlinBuiltIns.isExactFunctionOrExtensionFunctionType(valueParameterOrReceiver.getOriginal().getType());
|
KotlinBuiltIns.isExactFunctionOrExtensionFunctionType(valueParameterOrReceiver.getOriginal().getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-21
@@ -187,35 +187,17 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isExternal() {
|
public boolean isExternal() {
|
||||||
if (isExternal) return true;
|
return isExternal;
|
||||||
|
|
||||||
for (FunctionDescriptor descriptor : overriddenFunctions) {
|
|
||||||
if (descriptor.isExternal()) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInline() {
|
public boolean isInline() {
|
||||||
if (isInline) return true;
|
return isInline;
|
||||||
|
|
||||||
for (FunctionDescriptor descriptor : overriddenFunctions) {
|
|
||||||
if (descriptor.isInline()) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isTailrec() {
|
public boolean isTailrec() {
|
||||||
if (isTailrec) return true;
|
return isTailrec;
|
||||||
|
|
||||||
for (FunctionDescriptor descriptor : overriddenFunctions) {
|
|
||||||
if (descriptor.isTailrec()) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-7
@@ -72,17 +72,17 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean declaresDefaultValue() {
|
public boolean declaresDefaultValue() {
|
||||||
return declaresDefaultValue && containingDeclarationIsReal();
|
return declaresDefaultValue && ((CallableMemberDescriptor) getContainingDeclaration()).getKind().isReal();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCrossinline() {
|
public boolean isCrossinline() {
|
||||||
return isCrossinline && containingDeclarationIsReal();
|
return isCrossinline;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isNoinline() {
|
public boolean isNoinline() {
|
||||||
return isNoinline && containingDeclarationIsReal();
|
return isNoinline;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -147,8 +147,4 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean containingDeclarationIsReal() {
|
|
||||||
return ((CallableMemberDescriptor) getContainingDeclaration()).getKind().isReal();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -467,13 +467,13 @@ internal class DescriptorRendererImpl(
|
|||||||
if (functionDescriptor.isInfix && functionDescriptor.overriddenDescriptors.none { it.isInfix }) {
|
if (functionDescriptor.isInfix && functionDescriptor.overriddenDescriptors.none { it.isInfix }) {
|
||||||
builder.append("infix ")
|
builder.append("infix ")
|
||||||
}
|
}
|
||||||
if (functionDescriptor.isExternal && functionDescriptor.overriddenDescriptors.none { it.isExternal }) {
|
if (functionDescriptor.isExternal) {
|
||||||
builder.append("external ")
|
builder.append("external ")
|
||||||
}
|
}
|
||||||
if (functionDescriptor.isInline && functionDescriptor.overriddenDescriptors.none { it.isInline }) {
|
if (functionDescriptor.isInline) {
|
||||||
builder.append("inline ")
|
builder.append("inline ")
|
||||||
}
|
}
|
||||||
if (functionDescriptor.isTailrec && functionDescriptor.overriddenDescriptors.none { it.isTailrec }) {
|
if (functionDescriptor.isTailrec) {
|
||||||
builder.append("tailrec ")
|
builder.append("tailrec ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -853,7 +853,7 @@ internal class DescriptorRendererImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
|
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
|
||||||
if (descriptor.isExternal && descriptor.overriddenDescriptors.none { it.isExternal }) {
|
if (descriptor.isExternal) {
|
||||||
builder.append("external ")
|
builder.append("external ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module/META-INF/module.kotlin_module
|
||||||
out/production/module/inline/InlineKt.class
|
out/production/module/test/InlineKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
End of files
|
End of files
|
||||||
@@ -12,4 +12,4 @@ Compiling files:
|
|||||||
src/usage.kt
|
src/usage.kt
|
||||||
End of files
|
End of files
|
||||||
COMPILATION FAILED
|
COMPILATION FAILED
|
||||||
Unresolved reference: inline
|
Unresolved reference: test
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package inline
|
package test
|
||||||
|
|
||||||
inline fun f(body: () -> Unit) {
|
inline fun f(body: () -> Unit) {
|
||||||
println("i'm inline function")
|
println("i'm inline function")
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package usage
|
package usage
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
inline.f {
|
test.f {
|
||||||
println("to be inlined")
|
println("to be inlined")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user