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