JS: remove intrinsics for progressions
This commit is contained in:
-11
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.js.config.JsConfig;
|
|||||||
import org.jetbrains.kotlin.js.translate.intrinsic.Intrinsics;
|
import org.jetbrains.kotlin.js.translate.intrinsic.Intrinsics;
|
||||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils;
|
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils;
|
||||||
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils;
|
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
|
||||||
import org.jetbrains.kotlin.psi.KtExpression;
|
import org.jetbrains.kotlin.psi.KtExpression;
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
@@ -175,11 +174,6 @@ public class TranslationContext {
|
|||||||
return this.innerWithAliasingContext(aliasingContext.withDescriptorsAliased(aliases));
|
return this.innerWithAliasingContext(aliasingContext.withDescriptorsAliased(aliases));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JsName importDeclaration(@NotNull String suggestedName, @NotNull JsExpression declaration) {
|
|
||||||
return staticContext.importDeclaration(suggestedName, declaration);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private JsBlock getBlockForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
private JsBlock getBlockForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||||
if (descriptor instanceof CallableDescriptor) {
|
if (descriptor instanceof CallableDescriptor) {
|
||||||
@@ -234,11 +228,6 @@ public class TranslationContext {
|
|||||||
return staticContext.getQualifiedReference(descriptor);
|
return staticContext.getQualifiedReference(descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JsNameRef getQualifiedReference(@NotNull FqName fqName) {
|
|
||||||
return staticContext.getQualifiedReference(fqName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNameRef getInnerReference(@NotNull DeclarationDescriptor descriptor) {
|
public JsNameRef getInnerReference(@NotNull DeclarationDescriptor descriptor) {
|
||||||
return JsAstUtils.pureFqn(getInnerNameForDescriptor(descriptor), null);
|
return JsAstUtils.pureFqn(getInnerNameForDescriptor(descriptor), null);
|
||||||
|
|||||||
-1
@@ -46,7 +46,6 @@ public final class FunctionIntrinsics {
|
|||||||
register(ArrayFIF.INSTANCE);
|
register(ArrayFIF.INSTANCE);
|
||||||
register(TopLevelFIF.INSTANCE);
|
register(TopLevelFIF.INSTANCE);
|
||||||
register(NumberAndCharConversionFIF.INSTANCE);
|
register(NumberAndCharConversionFIF.INSTANCE);
|
||||||
register(ProgressionCompanionFIF.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void register(@NotNull FunctionIntrinsicFactory instance) {
|
private void register(@NotNull FunctionIntrinsicFactory instance) {
|
||||||
|
|||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2015 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.js.translate.intrinsic.functions.factories
|
|
||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsExpression
|
|
||||||
import com.google.dart.compiler.backend.js.ast.JsNew
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|
||||||
import org.jetbrains.kotlin.js.patterns.PatternBuilder.pattern
|
|
||||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
|
||||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
|
||||||
import org.jetbrains.kotlin.js.translate.reference.ReferenceTranslator
|
|
||||||
|
|
||||||
object ProgressionCompanionFIF : FunctionIntrinsicFactory {
|
|
||||||
val patterns = listOf(methodPattern("IntProgression"), methodPattern("LongProgression"), methodPattern("CharProgression"))
|
|
||||||
|
|
||||||
private fun methodPattern(builtinProgressionName: String) =
|
|
||||||
pattern("kotlin.ranges", builtinProgressionName, "Companion", "fromClosedRange")
|
|
||||||
|
|
||||||
override fun getIntrinsic(descriptor: FunctionDescriptor): FunctionIntrinsic? =
|
|
||||||
if (patterns.any { it.apply(descriptor) }) {
|
|
||||||
FromClosedRangeIntrinsic(descriptor)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
|
|
||||||
private class FromClosedRangeIntrinsic(descriptor: FunctionDescriptor) : FunctionIntrinsic() {
|
|
||||||
val progressionType = descriptor.containingDeclaration.containingDeclaration as ClassDescriptor
|
|
||||||
|
|
||||||
override fun apply(receiver: JsExpression?, arguments: MutableList<JsExpression>, context: TranslationContext): JsExpression {
|
|
||||||
val constructor = ReferenceTranslator.translateAsTypeReference(progressionType, context)
|
|
||||||
return JsNew(constructor, arguments)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user