blob: a9a455751aa0846f96ff84bd569dfdf5896cff35 [file]
/*
* Copyright 2010-2015 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.library.metadata;
// Changes to this proto are tracked by KlibMetadataVersion version. See KlibMetadataVersion KDoc.
import "core/metadata/src/metadata.proto";
import "core/metadata/src/ext_options.proto";
option java_outer_classname = "KlibMetadataProtoBuf";
option optimize_for = LITE_RUNTIME;
message Header {
required string module_name = 1;
/*
Possible values are listed in KlibMetadataHeaderFlags class.
Flags are also stored in the manifest.
*/
optional int32 flags = 2;
repeated string package_fragment_name = 7;
repeated string empty_package = 8;
// TODO: Unused.
// TODO: We need to have backend specific extension for versionings.
// (patch << 16) + (minor << 8) + major
// optional int32 js_code_binary_version = 3 [default = 1];
// WARNING: Don't occupy index 4 which was previously used for storing string table.
// optional org.jetbrains.kotlin.metadata.StringTable strings = 4;
// WARNING: Don't occupy index 5 which was previously used for storing qualified name table.
// optional org.jetbrains.kotlin.metadata.QualifiedNameTable qualified_names = 5;
// WARNING: Don't occupy index 6 which was previously used for storing Annotations.
// org.jetbrains.kotlin.metadata.Annotation annotation = 6;
// WARNING: Don't occupy index 9 which was previously used for storing file names.
// File file = 9;
}
extend org.jetbrains.kotlin.metadata.Package {
optional int32 package_fq_name = 171;
}
extend org.jetbrains.kotlin.metadata.TypeAlias {
optional int32 type_alias_file = 170 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string type_alias_kdoc = 171 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.Class {
repeated org.jetbrains.kotlin.metadata.Annotation class_annotation = 170;
optional int32 class_file = 175 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string class_kdoc = 176 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.Constructor {
repeated org.jetbrains.kotlin.metadata.Annotation constructor_annotation = 170;
optional string constructor_kdoc = 173 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.Function {
repeated org.jetbrains.kotlin.metadata.Annotation function_annotation = 170;
repeated org.jetbrains.kotlin.metadata.Annotation function_extension_receiver_annotation = 171;
optional int32 function_file = 172 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string function_kdoc = 174 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.Property {
repeated org.jetbrains.kotlin.metadata.Annotation property_annotation = 170;
repeated org.jetbrains.kotlin.metadata.Annotation property_getter_annotation = 177;
repeated org.jetbrains.kotlin.metadata.Annotation property_setter_annotation = 178;
repeated org.jetbrains.kotlin.metadata.Annotation property_backing_field_annotation = 181;
repeated org.jetbrains.kotlin.metadata.Annotation property_delegated_field_annotation = 182;
repeated org.jetbrains.kotlin.metadata.Annotation property_extension_receiver_annotation = 183;
optional org.jetbrains.kotlin.metadata.Annotation.Argument.Value compile_time_value = 173;
optional int32 property_file = 176 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string property_kdoc = 180 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string property_getter_kdoc = 184 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
optional string property_setter_kdoc = 185 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.EnumEntry {
repeated org.jetbrains.kotlin.metadata.Annotation enum_entry_annotation = 170;
optional int32 enum_entry_ordinal = 171;
optional string enum_entry_kdoc = 173 [(org.jetbrains.kotlin.metadata.skip_in_comparison) = true];
}
extend org.jetbrains.kotlin.metadata.ValueParameter {
repeated org.jetbrains.kotlin.metadata.Annotation parameter_annotation = 170;
}
extend org.jetbrains.kotlin.metadata.Type {
repeated org.jetbrains.kotlin.metadata.Annotation type_annotation = 170;
}
extend org.jetbrains.kotlin.metadata.TypeParameter {
repeated org.jetbrains.kotlin.metadata.Annotation type_parameter_annotation = 170;
}
extend org.jetbrains.kotlin.metadata.PackageFragment {
optional bool is_empty = 172;
optional string fq_name = 173;
// id in StringTable
repeated int32 class_name = 174 [packed = true];
}