diff --git a/annotations/com/intellij/psi/impl/source/annotations.xml b/annotations/com/intellij/psi/impl/source/annotations.xml
new file mode 100644
index 00000000000..4b14ea4b748
--- /dev/null
+++ b/annotations/com/intellij/psi/impl/source/annotations.xml
@@ -0,0 +1,5 @@
+
+ -
+
+
+
\ No newline at end of file
diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.java
deleted file mode 100644
index d4a90c35102..00000000000
--- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2010-2013 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.lang.psi;
-
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.*;
-import com.intellij.psi.impl.PsiManagerEx;
-import com.intellij.psi.impl.file.impl.FileManager;
-import com.intellij.psi.impl.source.tree.FileElement;
-import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.tree.IElementType;
-import com.intellij.testFramework.LightVirtualFile;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.jet.plugin.JetFileType;
-
-public abstract class JetCodeFragment extends JetFile implements PsiCodeFragment {
- private final Project project;
-
- protected PsiElement context;
- private GlobalSearchScope resolveScope;
-
- public JetCodeFragment(Project project, String name, CharSequence text, IElementType elementType, PsiElement context) {
- super(((PsiManagerEx) PsiManager.getInstance(project)).getFileManager().createFileViewProvider(
- new LightVirtualFile(name, JetFileType.INSTANCE, text), true), false);
- ((SingleRootFileViewProvider)getViewProvider()).forceCachedPsi(this);
- init(TokenType.CODE_FRAGMENT, elementType);
- this.project = project;
- this.context = context;
- }
-
- @Override
- public void forceResolveScope(GlobalSearchScope scope) {
- resolveScope = scope;
- }
-
- @Override
- public GlobalSearchScope getForcedResolveScope() {
- return resolveScope;
- }
-
- @Override
- public boolean isPhysical() {
- return true;
- }
-
- @Override
- public boolean isValid() {
- return true;
- }
-
- @Override
- public PsiElement getContext() {
- return context;
- }
-
- @Override
- @NotNull
- public GlobalSearchScope getResolveScope() {
- if (resolveScope != null) return resolveScope;
- return super.getResolveScope();
- }
-
- @Override
- protected JetCodeFragment clone() {
- JetCodeFragment clone = (JetCodeFragment)cloneImpl((FileElement)calcTreeElement().clone());
- clone.myOriginalFile = this;
- FileManager fileManager = ((PsiManagerEx) PsiManager.getInstance(project)).getFileManager();
- SingleRootFileViewProvider cloneViewProvider = (SingleRootFileViewProvider)fileManager.createFileViewProvider(new LightVirtualFile(
- getName(),
- JetFileType.INSTANCE,
- getText()), true);
- cloneViewProvider.forceCachedPsi(clone);
- clone.myViewProvider = cloneViewProvider;
- return clone;
- }
-
- private FileViewProvider myViewProvider = null;
-
- @Override
- @NotNull
- public FileViewProvider getViewProvider() {
- if (myViewProvider != null) return myViewProvider;
- return super.getViewProvider();
- }
-}
diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.kt b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.kt
new file mode 100644
index 00000000000..bf845984f96
--- /dev/null
+++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragment.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2010-2014 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.lang.psi
+
+import com.intellij.openapi.project.Project
+import com.intellij.psi.*
+import com.intellij.psi.impl.PsiManagerEx
+import com.intellij.psi.impl.source.tree.FileElement
+import com.intellij.psi.search.GlobalSearchScope
+import com.intellij.psi.tree.IElementType
+import com.intellij.testFramework.LightVirtualFile
+import org.jetbrains.jet.plugin.JetFileType
+
+public abstract class JetCodeFragment(
+ val _project: Project,
+ name: String,
+ text: CharSequence,
+ elementType: IElementType,
+ val _context: PsiElement?
+): JetFile((PsiManager.getInstance(_project) as PsiManagerEx).getFileManager().createFileViewProvider(LightVirtualFile(name, JetFileType.INSTANCE, text), true), false), PsiCodeFragment {
+
+ {
+ (getViewProvider() as SingleRootFileViewProvider).forceCachedPsi(this)
+ init(TokenType.CODE_FRAGMENT, elementType)
+ }
+
+ private var _resolveScope: GlobalSearchScope? = null
+ private var _viewProvider: FileViewProvider? = null
+
+ override fun forceResolveScope(scope: GlobalSearchScope?) {
+ _resolveScope = scope
+ }
+
+ override fun getForcedResolveScope() = _resolveScope
+
+ override fun isPhysical() = true
+
+ override fun isValid() = true
+
+ override fun getContext() = _context
+
+ override fun getResolveScope() = _resolveScope ?: super.getResolveScope()
+
+ override fun clone(): JetCodeFragment {
+ val clone = cloneImpl(calcTreeElement().clone() as FileElement) as JetCodeFragment
+ clone.setOriginalFile(this)
+ val fileManager = (PsiManager.getInstance(_project) as PsiManagerEx).getFileManager()
+ val cloneViewProvider = fileManager.createFileViewProvider(LightVirtualFile(getName(), JetFileType.INSTANCE, getText()), true) as SingleRootFileViewProvider
+ cloneViewProvider.forceCachedPsi(clone)
+ clone._viewProvider = cloneViewProvider
+ return clone
+ }
+
+ override fun getViewProvider() = _viewProvider ?: super.getViewProvider()
+}