Whole module IR serialization/deserialization.

With public descriptors inserted and wrapped ones used instead of the locals.
This commit is contained in:
Alexander Gorshenev
2018-06-14 17:27:03 +03:00
committed by alexander-gorshenev
parent 21852ec2a3
commit cfe153c742
75 changed files with 4500 additions and 2998 deletions
@@ -16,23 +16,30 @@ option optimize_for = LITE_RUNTIME;
// Konan extensions to the "descriptors" protobuf.
message DescriptorUniqId {
required int64 index = 1;
}
extend Package {
optional int32 package_fq_name = 171;
}
extend Class {
repeated Annotation class_annotation = 170;
optional DescriptorUniqId class_uniq_id = 171;
}
extend Constructor {
repeated Annotation constructor_annotation = 170;
optional InlineIrBody inline_constructor_ir_body = 171;
optional DescriptorUniqId constructor_uniq_id = 172;
}
extend Function {
repeated Annotation function_annotation = 170;
optional InlineIrBody inline_ir_body = 171;
optional int32 function_file = 172;
optional DescriptorUniqId function_uniq_id = 173;
}
extend Property {
@@ -45,15 +52,18 @@ extend Property {
optional InlineIrBody inline_getter_ir_body = 174;
optional InlineIrBody inline_setter_ir_body = 175;
optional int32 property_file = 176;
optional DescriptorUniqId property_uniq_id = 179;
}
extend EnumEntry {
repeated Annotation enum_entry_annotation = 170;
optional int32 enum_entry_ordinal = 171;
optional DescriptorUniqId enum_entry_uniq_id = 172;
}
extend ValueParameter {
repeated Annotation parameter_annotation = 170;
optional DescriptorUniqId value_param_uniq_id = 171;
}
extend Type {
@@ -63,6 +73,7 @@ extend Type {
extend TypeParameter {
repeated Annotation type_parameter_annotation = 170;
optional DescriptorUniqId type_param_uniq_id = 171;
}
message InlineIrBody {
@@ -1,3 +1,19 @@
/*
* Copyright 2010-2019 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.kotlin.konan.library.resolver.impl
import org.jetbrains.kotlin.konan.file.File
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.descriptors.konan.DeserializedKonanModuleOrigin
import org.jetbrains.kotlin.descriptors.konan.KonanModuleDescriptorFactory
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.konan.library.KonanLibrary
import org.jetbrains.kotlin.konan.library.impl.KonanLibraryImpl
import org.jetbrains.kotlin.konan.library.resolver.PackageAccessedHandler
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.CompilerDeserializationConfiguration