Merge remote-tracking branch 'origin/master'
Conflicts: js/js.tests/test/org/jetbrains/k2js/test/SingleFileTranslationTest.java js/js.tests/test/org/jetbrains/k2js/test/semantics/StdLibTestToJSTest.java
This commit is contained in:
@@ -71,6 +71,9 @@
|
||||
<projectService serviceInterface="org.jetbrains.jet.lang.resolve.java.JetFilesProvider"
|
||||
serviceImplementation="org.jetbrains.jet.plugin.project.PluginJetFilesProvider"/>
|
||||
|
||||
<projectService serviceInterface="org.jetbrains.jet.lang.resolve.java.extAnnotations.ExternalAnnotationsProvider"
|
||||
serviceImplementation="org.jetbrains.jet.plugin.extAnnotations.IdeaExternalAnnotationsProvider"/>
|
||||
|
||||
<errorHandler implementation="org.jetbrains.jet.plugin.reporter.KotlinReportSubmitter"/>
|
||||
|
||||
<internalFileTemplate name="Kotlin File"/>
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import jet.runtime.typeinfo.JetValueParameter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
import org.jetbrains.jet.lang.resolve.java.kt.JetValueParameterAnnotation;
|
||||
@@ -165,16 +166,13 @@ class JetFromJavaDescriptorHelper {
|
||||
|
||||
// Should be parameter with JetValueParameter.receiver == true
|
||||
for (PsiParameter parameter : psiMethod.getParameterList().getParameters()) {
|
||||
PsiModifierList modifierList = parameter.getModifierList();
|
||||
if (modifierList != null) {
|
||||
for (PsiAnnotation psiAnnotation : modifierList.getAnnotations()) {
|
||||
if (!JetValueParameter.class.getCanonicalName().equals(psiAnnotation.getQualifiedName())) {
|
||||
continue;
|
||||
}
|
||||
for (PsiAnnotation psiAnnotation : JavaDescriptorResolver.getAllAnnotations(parameter)) {
|
||||
if (!JetValueParameter.class.getCanonicalName().equals(psiAnnotation.getQualifiedName())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (filterPredicate.apply(new JetValueParameterAnnotation(psiAnnotation))) {
|
||||
selectedMethods.add(psiMethod);
|
||||
}
|
||||
if (filterPredicate.apply(new JetValueParameterAnnotation(psiAnnotation))) {
|
||||
selectedMethods.add(psiMethod);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ import com.intellij.openapi.projectRoots.JavaSdkType;
|
||||
import com.intellij.openapi.projectRoots.JdkUtil;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SimpleJavaSdkType;
|
||||
import com.intellij.openapi.roots.AnnotationOrderRootType;
|
||||
import com.intellij.openapi.roots.OrderEnumerator;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.Chunk;
|
||||
@@ -220,6 +222,13 @@ public class JetCompiler implements TranslatingCompiler {
|
||||
script.append(" classpath += \"" + path(mainOutput) + "\"\n");
|
||||
}
|
||||
|
||||
script.append(" // External annotations\n");
|
||||
for (Module module : chunk.getModules()) {
|
||||
for (VirtualFile file : OrderEnumerator.orderEntries(module).roots(AnnotationOrderRootType.getInstance()).getRoots()) {
|
||||
script.append(" annotationsPath += \"").append(path(file)).append("\"\n");
|
||||
}
|
||||
}
|
||||
|
||||
script.append(" }\n");
|
||||
script.append("}\n");
|
||||
return script;
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright 2010-2012 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.jet.plugin.extAnnotations;
|
||||
|
||||
import com.intellij.codeInsight.ExternalAnnotationsManager;
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiAnnotation;
|
||||
import com.intellij.psi.PsiModifierListOwner;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.resolve.java.extAnnotations.ExternalAnnotationsProvider;
|
||||
|
||||
/**
|
||||
* This class is copied from IDEA.
|
||||
* This class should be eliminated when Kotlin will depend on IDEA 12.x (KT-2326)
|
||||
* @author Evgeny Gerashchenko
|
||||
* @since 6/26/12
|
||||
*/
|
||||
@Deprecated
|
||||
public class IdeaExternalAnnotationsProvider extends ExternalAnnotationsProvider {
|
||||
private final ExternalAnnotationsManager externalAnnotationsManager;
|
||||
|
||||
public IdeaExternalAnnotationsProvider(ExternalAnnotationsManager externalAnnotationsManager) {
|
||||
this.externalAnnotationsManager = externalAnnotationsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized PsiAnnotation findExternalAnnotation(@NotNull PsiModifierListOwner listOwner, @NotNull String annotationFQN) {
|
||||
return externalAnnotationsManager.findExternalAnnotation(listOwner, annotationFQN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized PsiAnnotation[] findExternalAnnotations(@NotNull PsiModifierListOwner listOwner) {
|
||||
return externalAnnotationsManager.findExternalAnnotations(listOwner);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user