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.utils.JsAstUtils;
|
||||
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.psi.KtExpression;
|
||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||
@@ -175,11 +174,6 @@ public class TranslationContext {
|
||||
return this.innerWithAliasingContext(aliasingContext.withDescriptorsAliased(aliases));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsName importDeclaration(@NotNull String suggestedName, @NotNull JsExpression declaration) {
|
||||
return staticContext.importDeclaration(suggestedName, declaration);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private JsBlock getBlockForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
if (descriptor instanceof CallableDescriptor) {
|
||||
@@ -234,11 +228,6 @@ public class TranslationContext {
|
||||
return staticContext.getQualifiedReference(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsNameRef getQualifiedReference(@NotNull FqName fqName) {
|
||||
return staticContext.getQualifiedReference(fqName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JsNameRef getInnerReference(@NotNull DeclarationDescriptor descriptor) {
|
||||
return JsAstUtils.pureFqn(getInnerNameForDescriptor(descriptor), null);
|
||||
|
||||
-1
@@ -46,7 +46,6 @@ public final class FunctionIntrinsics {
|
||||
register(ArrayFIF.INSTANCE);
|
||||
register(TopLevelFIF.INSTANCE);
|
||||
register(NumberAndCharConversionFIF.INSTANCE);
|
||||
register(ProgressionCompanionFIF.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