Add utility InlineUtil.isInline instead of interface method in SimpleFunctionDescriptor
Also fix some warnings and reformat along the way
This commit is contained in:
@@ -19,10 +19,7 @@ package org.jetbrains.kotlin.builtins;
|
||||
import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotated;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
@@ -46,6 +43,10 @@ public class InlineUtil {
|
||||
KotlinBuiltIns.isExactFunctionOrExtensionFunctionType(type);
|
||||
}
|
||||
|
||||
public static boolean isInline(@Nullable DeclarationDescriptor descriptor) {
|
||||
return descriptor instanceof SimpleFunctionDescriptor && getInlineType(descriptor).isInline();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static InlineStrategy getInlineType(@NotNull DeclarationDescriptor descriptor) {
|
||||
ClassDescriptor inlineAnnotation = KotlinBuiltIns.getInstance().getInlineClassAnnotation();
|
||||
|
||||
@@ -17,13 +17,11 @@
|
||||
package org.jetbrains.kotlin.descriptors;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.builtins.InlineStrategy;
|
||||
|
||||
/**
|
||||
* Simple functions are the ones with 'fun' keyword and function literals
|
||||
*/
|
||||
public interface SimpleFunctionDescriptor extends FunctionDescriptor {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
SimpleFunctionDescriptor copy(DeclarationDescriptor newOwner, Modality modality, Visibility visibility, Kind kind, boolean copyOverrides);
|
||||
@@ -31,7 +29,4 @@ public interface SimpleFunctionDescriptor extends FunctionDescriptor {
|
||||
@NotNull
|
||||
@Override
|
||||
SimpleFunctionDescriptor getOriginal();
|
||||
|
||||
@NotNull
|
||||
InlineStrategy getInlineStrategy();
|
||||
}
|
||||
|
||||
+13
-18
@@ -23,15 +23,10 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.types.JetType;
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor;
|
||||
import org.jetbrains.kotlin.builtins.InlineStrategy;
|
||||
import org.jetbrains.kotlin.builtins.InlineUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl implements SimpleFunctionDescriptor {
|
||||
|
||||
private InlineStrategy inlineStrategy;
|
||||
|
||||
protected SimpleFunctionDescriptorImpl(
|
||||
@NotNull DeclarationDescriptor containingDeclaration,
|
||||
@Nullable SimpleFunctionDescriptor original,
|
||||
@@ -54,7 +49,6 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
|
||||
return new SimpleFunctionDescriptorImpl(containingDeclaration, null, annotations, name, kind, source);
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public SimpleFunctionDescriptorImpl initialize(
|
||||
@@ -66,9 +60,8 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
|
||||
@Nullable Modality modality,
|
||||
@NotNull Visibility visibility
|
||||
) {
|
||||
super.initialize(receiverParameterType, dispatchReceiverParameter, typeParameters, unsubstitutedValueParameters, unsubstitutedReturnType,
|
||||
modality, visibility);
|
||||
this.inlineStrategy = InlineUtil.getInlineType(this);
|
||||
super.initialize(receiverParameterType, dispatchReceiverParameter, typeParameters, unsubstitutedValueParameters,
|
||||
unsubstitutedReturnType, modality, visibility);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -93,18 +86,20 @@ public class SimpleFunctionDescriptorImpl extends FunctionDescriptorImpl impleme
|
||||
getName(),
|
||||
kind,
|
||||
SourceElement.NO_SOURCE
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public SimpleFunctionDescriptor copy(DeclarationDescriptor newOwner, Modality modality, Visibility visibility, Kind kind, boolean copyOverrides) {
|
||||
return (SimpleFunctionDescriptorImpl)doSubstitute(TypeSubstitutor.EMPTY, newOwner, modality, visibility, null, copyOverrides, kind);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public InlineStrategy getInlineStrategy() {
|
||||
return inlineStrategy;
|
||||
public SimpleFunctionDescriptor copy(
|
||||
DeclarationDescriptor newOwner,
|
||||
Modality modality,
|
||||
Visibility visibility,
|
||||
Kind kind,
|
||||
boolean copyOverrides
|
||||
) {
|
||||
return (SimpleFunctionDescriptorImpl) doSubstitute(
|
||||
TypeSubstitutor.EMPTY, newOwner, modality, visibility, null, copyOverrides, kind
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user