Code cleanup

This commit is contained in:
Alexey Tsvetkov
2015-10-19 19:14:40 +03:00
parent 6f96484e1f
commit e9e42b0251
10 changed files with 17 additions and 51 deletions
@@ -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());
} }
@@ -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
@@ -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 ")
} }
} }
@@ -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,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,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")
} }
} }