Less eagerly fail on the boundary between deserializer and DeclarationStubGenerator.

This commit is contained in:
Alexander Gorshenev
2019-01-14 18:41:42 +03:00
committed by alexander-gorshenev
parent 884e6e15e9
commit f10e826b52
@@ -86,7 +86,7 @@ class DeclarationStubGenerator(
descriptor: PropertyDescriptor, descriptor: PropertyDescriptor,
bindingContext: BindingContext? = null bindingContext: BindingContext? = null
): IrProperty = symbolTable.referenceProperty(descriptor) { ): IrProperty = symbolTable.referenceProperty(descriptor) {
deserializer?.findDeserializedDeclaration(descriptor) as IrProperty? ?: deserializer?.findDeserializedDeclaration(descriptor) as? IrProperty? ?:
IrLazyProperty( IrLazyProperty(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor, UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor,
this, typeTranslator, bindingContext this, typeTranslator, bindingContext
@@ -111,7 +111,7 @@ class DeclarationStubGenerator(
descriptor.original, descriptor.original,
descriptor.type.toIrType() descriptor.type.toIrType()
) { ) {
deserializer?.findDeserializedDeclaration(referenced) as IrField? ?: deserializer?.findDeserializedDeclaration(referenced) as? IrField? ?:
IrFieldImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, descriptor.type.toIrType()) IrFieldImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, descriptor.type.toIrType())
}.apply { }.apply {
initializer = descriptor.compileTimeInitializer?.let { initializer = descriptor.compileTimeInitializer?.let {
@@ -149,7 +149,7 @@ class DeclarationStubGenerator(
origin, origin,
descriptor.original descriptor.original
) { ) {
deserializer?.findDeserializedDeclaration(referenced) as IrSimpleFunction? ?: deserializer?.findDeserializedDeclaration(referenced) as? IrSimpleFunction? ?:
IrLazyFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator) IrLazyFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator)
} }
} }
@@ -163,7 +163,7 @@ class DeclarationStubGenerator(
return symbolTable.declareConstructor( return symbolTable.declareConstructor(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor.original UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor.original
) { ) {
deserializer?.findDeserializedDeclaration(referenced) as IrConstructor? ?: deserializer?.findDeserializedDeclaration(referenced) as? IrConstructor? ?:
IrLazyConstructor(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator) IrLazyConstructor(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator)
} }
} }
@@ -195,7 +195,7 @@ class DeclarationStubGenerator(
return symbolTable.declareClass( return symbolTable.declareClass(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor
) { ) {
deserializer?.findDeserializedDeclaration(referenceClass) as IrClass? ?: deserializer?.findDeserializedDeclaration(referenceClass) as? IrClass? ?:
IrLazyClass(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator) IrLazyClass(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator)
} }
} }
@@ -206,7 +206,7 @@ class DeclarationStubGenerator(
return referenced.owner return referenced.owner
} }
return symbolTable.declareEnumEntry(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor) { return symbolTable.declareEnumEntry(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor) {
deserializer?.findDeserializedDeclaration(referenced) as IrEnumEntry? ?: deserializer?.findDeserializedDeclaration(referenced) as? IrEnumEntry? ?:
IrLazyEnumEntryImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator) IrLazyEnumEntryImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, it, this, typeTranslator)
} }
} }
@@ -217,7 +217,7 @@ class DeclarationStubGenerator(
return referenced.owner return referenced.owner
} }
return symbolTable.declareGlobalTypeParameter(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor) { return symbolTable.declareGlobalTypeParameter(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor) {
deserializer?.findDeserializedDeclaration(referenced) as IrTypeParameter? ?: deserializer?.findDeserializedDeclaration(referenced) as? IrTypeParameter? ?:
IrLazyTypeParameter( IrLazyTypeParameter(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin,
it, this, typeTranslator it, this, typeTranslator