diff --git a/annotations/com/intellij/psi/annotations.xml b/annotations/com/intellij/psi/annotations.xml index 325cc901c25..b5f752134d5 100644 --- a/annotations/com/intellij/psi/annotations.xml +++ b/annotations/com/intellij/psi/annotations.xml @@ -1,4 +1,7 @@ + + + diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragment.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragment.java index 079a61416ee..cdaca372494 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragment.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragment.java @@ -16,10 +16,10 @@ package org.jetbrains.jet.lang.psi; -import com.intellij.psi.PsiCodeFragment; +import com.intellij.psi.JavaCodeFragment; import org.jetbrains.annotations.Nullable; -public interface JetExpressionCodeFragment extends PsiCodeFragment { +public interface JetExpressionCodeFragment extends JavaCodeFragment { @Nullable JetExpression getExpression(); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragmentImpl.kt b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragmentImpl.kt index 208b7362334..8d6e5ab086a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragmentImpl.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetExpressionCodeFragmentImpl.kt @@ -18,8 +18,10 @@ package org.jetbrains.jet.lang.psi import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement -import org.jetbrains.annotations.Nullable import org.jetbrains.jet.JetNodeTypes +import com.intellij.psi.JavaCodeFragment +import com.intellij.psi.PsiType +import com.intellij.psi.PsiClass class JetExpressionCodeFragmentImpl( project: Project, @@ -28,5 +30,52 @@ class JetExpressionCodeFragmentImpl( context: PsiElement? ) : JetCodeFragmentImpl(project, name, text, JetNodeTypes.EXPRESSION_CODE_FRAGMENT, context), JetExpressionCodeFragment { + private var _thisType: PsiType? = null + private var _superType: PsiType? = null + private var _exceptionHandler: JavaCodeFragment.ExceptionHandler? = null + + private val myImports: MutableSet = hashSetOf() + + override fun getThisType() = _thisType + + override fun setThisType(psiType: PsiType?) { + _thisType = psiType + } + + override fun getSuperType() = _superType + + override fun setSuperType(superType: PsiType?) { + _superType = superType + } + + override fun importsToString(): String { + return myImports.makeString(IMPORT_SEPARATOR) + } + + override fun addImportsFromString(imports: String?) { + if (imports == null) return + + myImports.addAll(imports.split(IMPORT_SEPARATOR)) + } + + override fun setVisibilityChecker(checker: JavaCodeFragment.VisibilityChecker?) { + } + + override fun getVisibilityChecker() = JavaCodeFragment.VisibilityChecker.EVERYTHING_VISIBLE + + override fun setExceptionHandler(checker: JavaCodeFragment.ExceptionHandler?) { + _exceptionHandler = checker + } + + override fun getExceptionHandler() = _exceptionHandler + + override fun importClass(aClass: PsiClass?): Boolean { + return true + } + override fun getExpression() = findChildByClass(javaClass()) + + class object { + val IMPORT_SEPARATOR = "," + } }