Fix detection of scripts in cls stub builder
This commit is contained in:
+1
-1
@@ -51,7 +51,7 @@ class KotlinBuiltInStubBuilder : ClsStubBuilder() {
|
|||||||
)
|
)
|
||||||
val context = components.createContext(nameResolver, packageFqName, TypeTable(packageProto.typeTable))
|
val context = components.createContext(nameResolver, packageFqName, TypeTable(packageProto.typeTable))
|
||||||
|
|
||||||
val fileStub = createFileStub(packageFqName)
|
val fileStub = createFileStub(packageFqName, isScript = false)
|
||||||
createDeclarationsStubs(
|
createDeclarationsStubs(
|
||||||
fileStub, context,
|
fileStub, context,
|
||||||
ProtoContainer.Package(packageFqName, context.nameResolver, context.typeTable, source = null),
|
ProtoContainer.Package(packageFqName, context.nameResolver, context.typeTable, source = null),
|
||||||
|
|||||||
+1
-1
@@ -84,7 +84,7 @@ open class KotlinClsStubBuilder : ClsStubBuilder() {
|
|||||||
if (classId.isLocal) return null
|
if (classId.isLocal) return null
|
||||||
val (nameResolver, classProto) = JvmProtoBufUtil.readClassDataFrom(annotationData, strings)
|
val (nameResolver, classProto) = JvmProtoBufUtil.readClassDataFrom(annotationData, strings)
|
||||||
val context = components.createContext(nameResolver, packageFqName, TypeTable(classProto.typeTable))
|
val context = components.createContext(nameResolver, packageFqName, TypeTable(classProto.typeTable))
|
||||||
createTopLevelClassStub(classId, classProto, KotlinJvmBinarySourceElement(kotlinClass), context)
|
createTopLevelClassStub(classId, classProto, KotlinJvmBinarySourceElement(kotlinClass), context, header.isScript)
|
||||||
}
|
}
|
||||||
KotlinClassHeader.Kind.FILE_FACADE -> {
|
KotlinClassHeader.Kind.FILE_FACADE -> {
|
||||||
val (nameResolver, packageProto) = JvmProtoBufUtil.readPackageDataFrom(annotationData, strings)
|
val (nameResolver, packageProto) = JvmProtoBufUtil.readPackageDataFrom(annotationData, strings)
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ class KotlinJavaScriptStubBuilder : ClsStubBuilder() {
|
|||||||
val classProto = ProtoBuf.Class.parseFrom(content, JsSerializerProtocol.extensionRegistry)
|
val classProto = ProtoBuf.Class.parseFrom(content, JsSerializerProtocol.extensionRegistry)
|
||||||
val context = components.createContext(nameResolver, packageFqName, TypeTable(classProto.typeTable))
|
val context = components.createContext(nameResolver, packageFqName, TypeTable(classProto.typeTable))
|
||||||
val classId = JsMetaFileUtils.getClassId(file)
|
val classId = JsMetaFileUtils.getClassId(file)
|
||||||
return createTopLevelClassStub(classId, classProto, source = null, context = context)
|
return createTopLevelClassStub(classId, classProto, source = null, context = context, isScript = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -46,9 +46,10 @@ fun createTopLevelClassStub(
|
|||||||
classId: ClassId,
|
classId: ClassId,
|
||||||
classProto: ProtoBuf.Class,
|
classProto: ProtoBuf.Class,
|
||||||
source: SourceElement?,
|
source: SourceElement?,
|
||||||
context: ClsStubBuilderContext
|
context: ClsStubBuilderContext,
|
||||||
|
isScript: Boolean
|
||||||
): KotlinFileStubImpl {
|
): KotlinFileStubImpl {
|
||||||
val fileStub = createFileStub(classId.packageFqName)
|
val fileStub = createFileStub(classId.packageFqName, isScript)
|
||||||
createClassStub(fileStub, classProto, context.nameResolver, classId, source, context)
|
createClassStub(fileStub, classProto, context.nameResolver, classId, source, context)
|
||||||
return fileStub
|
return fileStub
|
||||||
}
|
}
|
||||||
@@ -58,7 +59,7 @@ fun createPackageFacadeStub(
|
|||||||
packageFqName: FqName,
|
packageFqName: FqName,
|
||||||
c: ClsStubBuilderContext
|
c: ClsStubBuilderContext
|
||||||
): KotlinFileStubImpl {
|
): KotlinFileStubImpl {
|
||||||
val fileStub = KotlinFileStubForIde.forFile(packageFqName, packageFqName.isRoot)
|
val fileStub = KotlinFileStubForIde.forFile(packageFqName, isScript = false)
|
||||||
setupFileStub(fileStub, packageFqName)
|
setupFileStub(fileStub, packageFqName)
|
||||||
createDeclarationsStubs(
|
createDeclarationsStubs(
|
||||||
fileStub, c, ProtoContainer.Package(packageFqName, c.nameResolver, c.typeTable, source = null), packageProto)
|
fileStub, c, ProtoContainer.Package(packageFqName, c.nameResolver, c.typeTable, source = null), packageProto)
|
||||||
@@ -101,10 +102,10 @@ fun createMultifileClassStub(
|
|||||||
return fileStub
|
return fileStub
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createIncompatibleAbiVersionFileStub() = createFileStub(FqName.ROOT)
|
fun createIncompatibleAbiVersionFileStub() = createFileStub(FqName.ROOT, isScript = false)
|
||||||
|
|
||||||
fun createFileStub(packageFqName: FqName): KotlinFileStubImpl {
|
fun createFileStub(packageFqName: FqName, isScript: Boolean): KotlinFileStubImpl {
|
||||||
val fileStub = KotlinFileStubForIde.forFile(packageFqName, packageFqName.isRoot)
|
val fileStub = KotlinFileStubForIde.forFile(packageFqName, isScript)
|
||||||
setupFileStub(fileStub, packageFqName)
|
setupFileStub(fileStub, packageFqName)
|
||||||
return fileStub
|
return fileStub
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user