diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 9cb6a4a232e..e84174a261e 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,20 +10,14 @@
-
+
-
-
-
-
-
-
-
-
+
+
@@ -281,7 +275,7 @@
-
+
@@ -347,14 +341,14 @@
-
+
-
+
-
-
+
+
@@ -382,12 +376,12 @@
-
+
-
+
-
+
@@ -396,7 +390,7 @@
-
+
@@ -514,9 +508,9 @@
-
+
@@ -1330,7 +1324,7 @@
-
+
@@ -1377,7 +1371,7 @@
-
+
@@ -1390,7 +1384,6 @@
-
@@ -1415,6 +1408,7 @@
+
@@ -1487,24 +1481,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1535,11 +1511,29 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/translator/src/org/jetbrains/k2js/Analyzer.java b/translator/src/org/jetbrains/k2js/Analyzer.java
index e65f6e14a58..7f2ff7a5899 100644
--- a/translator/src/org/jetbrains/k2js/Analyzer.java
+++ b/translator/src/org/jetbrains/k2js/Analyzer.java
@@ -22,6 +22,7 @@ import java.util.List;
*/
public final class Analyzer {
+ //TODO: provide some generic way to access
private static final List LIB_FILE_NAMES = Arrays.asList(
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsSupport.jet",
"C:\\Dev\\Projects\\Kotlin\\jet\\stdlib\\ktSrc\\jssupport\\JsDeclarations.kt"
@@ -39,19 +40,36 @@ public final class Analyzer {
@NotNull
public static BindingContext analyzeFiles(@NotNull List files) {
final List jsLibFiles = getJsSupportStdLib();
+ List allFiles = allFiles(files, jsLibFiles);
+ Project project = getProject(files);
+ return AnalyzingUtils.analyzeFiles(project, JsConfiguration.jsLibConfiguration(project),
+ allFiles, notLibFiles(jsLibFiles), JetControlFlowDataTraceFactory.EMPTY);
+ }
+
+ @NotNull
+ private static Project getProject(@NotNull List files) {
+ assert !files.isEmpty();
+ return files.iterator().next().getProject();
+ }
+
+ @NotNull
+ private static List allFiles(@NotNull List files,
+ @NotNull List jsLibFiles) {
List allFiles = new ArrayList();
allFiles.addAll(files);
allFiles.addAll(jsLibFiles);
- assert !files.isEmpty();
- Project project = files.iterator().next().getProject();
- return AnalyzingUtils.analyzeFiles(project, new JsConfiguration(project),
- allFiles, new Predicate() {
+ return allFiles;
+ }
+
+ @NotNull
+ private static Predicate notLibFiles(@NotNull final List jsLibFiles) {
+ return new Predicate() {
@Override
public boolean apply(@Nullable PsiFile file) {
assert file instanceof JetFile;
return (!jsLibFiles.contains(file));
}
- }, JetControlFlowDataTraceFactory.EMPTY);
+ };
}
private static class JsConfiguration implements Configuration {
@@ -59,7 +77,7 @@ public final class Analyzer {
@NotNull
private Project project;
- public static JsConfiguration createStandardConfiguration(@NotNull Project project) {
+ public static JsConfiguration jsLibConfiguration(@NotNull Project project) {
return new JsConfiguration(project);
}
diff --git a/translator/src/org/jetbrains/k2js/JetFileUtils.java b/translator/src/org/jetbrains/k2js/JetFileUtils.java
index 0356d667733..485b2bacd24 100644
--- a/translator/src/org/jetbrains/k2js/JetFileUtils.java
+++ b/translator/src/org/jetbrains/k2js/JetFileUtils.java
@@ -29,7 +29,6 @@ public final class JetFileUtils {
}
});
-
@NotNull
public static String loadFile(@NotNull String path) throws IOException {
return doLoadFile(path);
@@ -60,8 +59,10 @@ public final class JetFileUtils {
private static PsiFile createFile(@NotNull String name, @NotNull String text) {
LightVirtualFile virtualFile = new LightVirtualFile(name, JetLanguage.INSTANCE, text);
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET);
- return ((PsiFileFactoryImpl) PsiFileFactory.getInstance(environment.getProject()))
+ PsiFile result = ((PsiFileFactoryImpl) PsiFileFactory.getInstance(environment.getProject()))
.trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false);
+ assert result != null;
+ return result;
}
}