diff --git a/ets2panda/checker/ets/utilityTypeHandlers.cpp b/ets2panda/checker/ets/utilityTypeHandlers.cpp index 1041ab4faf7387d6e0cc0f3568786254393c0d47..d004320264a10a805256d42744ccbe68fd37f787 100644 --- a/ets2panda/checker/ets/utilityTypeHandlers.cpp +++ b/ets2panda/checker/ets/utilityTypeHandlers.cpp @@ -530,6 +530,7 @@ static void SetupFunctionParams(ir::ScriptFunction *function, varbinder::Functio checker->AllocNode(checker->Allocator())}, checker->Allocator()->Adapter()), checker->Allocator()); + ES2PANDA_ASSERT(unionType != nullptr); paramExpr->Ident()->SetTsTypeAnnotation(unionType); unionType->SetParent(paramExpr->Ident()); } diff --git a/ets2panda/compiler/lowering/ets/genericBridgesLowering.cpp b/ets2panda/compiler/lowering/ets/genericBridgesLowering.cpp index 08056414191c1854a285f4b64436d36497699d97..fed45f5633c6cd72e2f71629cf9c9c4054bc976f 100644 --- a/ets2panda/compiler/lowering/ets/genericBridgesLowering.cpp +++ b/ets2panda/compiler/lowering/ets/genericBridgesLowering.cpp @@ -83,10 +83,10 @@ void GenericBridgesPhase::AddGenericBridge(ir::ClassDefinition const *const clas typeNodes.reserve(2U * baseSignature->Params().size() + 2U); auto const sourceCode = CreateMethodDefinitionString(classDefinition, baseSignature, derivedFunction, typeNodes); - - auto *const bridgeMethod = - parser->CreateFormattedClassMethodDefinition(sourceCode, typeNodes)->AsMethodDefinition(); - ES2PANDA_ASSERT(bridgeMethod); + auto *const bridgeMethodDefinition = parser->CreateFormattedClassMethodDefinition(sourceCode, typeNodes); + ES2PANDA_ASSERT(bridgeMethodDefinition != nullptr); + auto *const bridgeMethod = bridgeMethodDefinition->AsMethodDefinition(); + ES2PANDA_ASSERT(bridgeMethod != nullptr && methodDefinition->Id() != nullptr); bridgeMethod->AddModifier(methodDefinition->Modifiers()); bridgeMethod->ClearModifier(ir::ModifierFlags::NATIVE | ir::ModifierFlags::ABSTRACT); bridgeMethod->AddAstNodeFlags(methodDefinition->GetAstNodeFlags()); diff --git a/ets2panda/ir/ets/etsTypeReference.cpp b/ets2panda/ir/ets/etsTypeReference.cpp index 21db7e18148714de68f28570854a57ebbaef4fcc..f33748988ebd6eb6f24f32dd462cb1038fb15421 100644 --- a/ets2panda/ir/ets/etsTypeReference.cpp +++ b/ets2panda/ir/ets/etsTypeReference.cpp @@ -112,7 +112,12 @@ checker::Type *ETSTypeReference::GetType(checker::ETSChecker *checker) ETSTypeReference *ETSTypeReference::Clone(ArenaAllocator *const allocator, AstNode *const parent) { - auto *const partClone = part_ != nullptr ? part_->Clone(allocator, nullptr)->AsETSTypeReferencePart() : nullptr; + ETSTypeReferencePart *partClone = nullptr; + if (part_ != nullptr) { + auto *const clone = part_->Clone(allocator, nullptr); + ES2PANDA_ASSERT(clone != nullptr); + partClone = clone->AsETSTypeReferencePart(); + } auto *const clone = allocator->New(partClone, allocator); if (partClone != nullptr) {