JS: remove intrinsics for progressions

This commit is contained in:
Alexey Andreev
2016-11-11 11:43:37 +03:00
parent dcb95eb9f0
commit 6649e0cb82
3 changed files with 0 additions and 62 deletions
@@ -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);
@@ -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) {
@@ -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)
}
}
}