[KLIB] Implement new linker based on IdSignature

- Remove klib dependency on metadata and uniqID
 - Refactored proto format to make it more effective and compact
  -- Use special encoding for some types of data (coordinates, flags, types)
  -- Remove symbols table
  -- Use packed proto list if it is possible
 - Remove extension from metadata
 - Remove special ids for function interfaces
 - Fix klib IO
 - Fix incremental cache
 - General code clean up
This commit is contained in:
Roman Artemev
2020-01-27 15:58:52 +03:00
committed by romanart
parent 31d73c5d79
commit 6a37955a36
211 changed files with 6616 additions and 78716 deletions
@@ -108,4 +108,10 @@ object ProtoEnumFlags {
ProtoBuf.Type.Argument.Projection.STAR ->
throw IllegalArgumentException("Only IN, OUT and INV are supported. Actual argument: $projection")
}
fun variance(variance: Variance) = when (variance) {
Variance.IN_VARIANCE -> TypeParameter.Variance.IN
Variance.OUT_VARIANCE -> TypeParameter.Variance.OUT
Variance.INVARIANT -> TypeParameter.Variance.INV
}
}