Allow building UAST for in-memory virtual files

This commit is contained in:
Dmitry Jemerov
2017-10-04 18:40:37 +02:00
parent a54c71eb30
commit 85254838f6
5 changed files with 74 additions and 5 deletions
@@ -104,8 +104,6 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
}
private val _containingFile: PsiFile by lazyPub {
classOrObject.containingFile.virtualFile ?: error("No virtual file for " + classOrObject.text)
object : FakeFileForLightClass(
classOrObject.containingKtFile,
{ if (classOrObject.isTopLevel()) this else create(getOutermostClassOrObject(classOrObject))!! },
@@ -33,7 +33,7 @@ open class FakeFileForLightClass(
private val lightClass: () -> KtLightClass,
private val stub: () -> PsiClassHolderFileStub<*>,
private val packageFqName: FqName = ktFile.packageFqName
) : ClsFileImpl(ClassFileViewProvider(ktFile.manager, ktFile.virtualFile)) {
) : ClsFileImpl(ClassFileViewProvider(ktFile.manager, ktFile.viewProvider.virtualFile)) {
override fun getPackageName() = packageFqName.asString()
override fun getStub() = stub()