diff --git a/ets2panda/checker/ets/dynamic.cpp b/ets2panda/checker/ets/dynamic.cpp index 7b589e781bfa049ec5302cdddf69eaa8b676953b..93a5d32808d0c1f71fe9969cac04804fca1f713b 100644 --- a/ets2panda/checker/ets/dynamic.cpp +++ b/ets2panda/checker/ets/dynamic.cpp @@ -705,6 +705,7 @@ void ETSChecker::BuildLambdaObjectClass(ETSObjectType *functionalInterface, ir:: { auto *invokeMethod = functionalInterface->GetOwnProperty( compiler::Signatures::STATIC_INVOKE_METHOD); + ES2PANDA_ASSERT(invokeMethod != nullptr); auto *invokeSignature = invokeMethod->TsType()->AsETSFunctionType()->CallSignatures()[0]; ES2PANDA_ASSERT(invokeSignature != nullptr); std::stringstream ss; diff --git a/ets2panda/checker/ets/typeRelationContext.h b/ets2panda/checker/ets/typeRelationContext.h index b198336e9f6d280cd00236ea4e48ebe7353b7cae..084d01c2a3824f938935cdf1e496c660a761999d 100644 --- a/ets2panda/checker/ets/typeRelationContext.h +++ b/ets2panda/checker/ets/typeRelationContext.h @@ -36,6 +36,7 @@ public: ES2PANDA_ASSERT(target != nullptr); ES2PANDA_ASSERT(node != nullptr); + ES2PANDA_ASSERT(source != nullptr); if (target->IsETSArrayType() && node->IsArrayExpression()) { assignable_ = ValidateArrayTypeInitializerByElement(relation, node->AsArrayExpression(), target->AsETSArrayType()); diff --git a/ets2panda/checker/ets/utilityTypeHandlers.cpp b/ets2panda/checker/ets/utilityTypeHandlers.cpp index 90b805ca7b2174e4d31c8641c48967fe896e1f7c..5ce306641c7a9a91afc0ecec3796597c47991fdb 100644 --- a/ets2panda/checker/ets/utilityTypeHandlers.cpp +++ b/ets2panda/checker/ets/utilityTypeHandlers.cpp @@ -243,7 +243,6 @@ ir::ClassProperty *ETSChecker::CreateNullishPropertyFromAccessor(ir::MethodDefin ES2PANDA_ASSERT(prop != nullptr); prop->SetParent(newClassDefinition); ident->SetParent(prop); - prop->SetTypeAnnotation(accessor->Function()->IsGetter() ? accessor->Function()->ReturnTypeAnnotation() : accessor->Function()->Params()[0]->AsETSParameterExpression()->TypeAnnotation()); diff --git a/ets2panda/checker/types/ets/etsFunctionType.cpp b/ets2panda/checker/types/ets/etsFunctionType.cpp index 82d5ba909e6ddc0de01cd4ede9ba46b172482bc5..533f62eb4740b3bbb284cc02eac1d4c07e5f1ad1 100644 --- a/ets2panda/checker/types/ets/etsFunctionType.cpp +++ b/ets2panda/checker/types/ets/etsFunctionType.cpp @@ -79,6 +79,8 @@ static ETSObjectType *FunctionTypeToFunctionalInterfaceType(ETSChecker *checker, auto nPosParams = arity < sigParamsSize ? arity : sigParamsSize; auto *functionN = checker->GlobalBuiltinFunctionType(nPosParams, true); auto *substitution = checker->NewSubstitution(); + ES2PANDA_ASSERT(functionN != nullptr); + ES2PANDA_ASSERT(substitution != nullptr); for (size_t i = 0; i < nPosParams; i++) { substitution->emplace(functionN->TypeArguments()[i]->AsETSTypeParameter(), checker->MaybeBoxType(signature->Params()[i]->TsType())); @@ -86,8 +88,6 @@ static ETSObjectType *FunctionTypeToFunctionalInterfaceType(ETSChecker *checker, auto *elementType = !signature->RestVar()->TsType()->IsETSTupleType() ? checker->GetElementTypeOfArray(signature->RestVar()->TsType()) : checker->GlobalETSAnyType(); - ES2PANDA_ASSERT(functionN != nullptr); - ES2PANDA_ASSERT(substitution != nullptr); substitution->emplace(functionN->TypeArguments()[0]->AsETSTypeParameter(), checker->MaybeBoxType(elementType)); return functionN->Substitute(checker->Relation(), substitution, true, isExtensionHack); } diff --git a/ets2panda/checker/types/typeRelation.cpp b/ets2panda/checker/types/typeRelation.cpp index 4055cf91d7b88c1808ad04385955c9a25580f4bb..f96b0ffa6d4487f7754b8c7bb8fd91ca0694a63b 100644 --- a/ets2panda/checker/types/typeRelation.cpp +++ b/ets2panda/checker/types/typeRelation.cpp @@ -162,6 +162,7 @@ bool TypeRelation::IsComparableTo(Type *source, Type *target) // NOTE: vpukhov. reimplement dynamic comparison and remove this check ES2PANDA_ASSERT(source != nullptr); + ES2PANDA_ASSERT(target != nullptr); if (source->IsETSDynamicType() || target->IsETSDynamicType()) { if (!(source->IsETSDynamicType() && target->IsETSDynamicType())) { return false; diff --git a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp index 2786524361d84c6ff24486dc44a92a0b04d014f6..8951849eec89e759d9731db3eb84316644d6c186 100644 --- a/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp +++ b/ets2panda/declgen_ets2ts/declgenEts2Ts.cpp @@ -1669,6 +1669,7 @@ bool TSDeclGen::GenInterfaceProp(const ir::MethodDefinition *methodDef) OutDts("?"); } OutDts(": "); + ES2PANDA_ASSERT(methodDef->Function() != nullptr); GenType(methodDef->Function()->Signature()->ReturnType()); OutDts(";"); OutEndlDts(); diff --git a/ets2panda/parser/ETSparser.cpp b/ets2panda/parser/ETSparser.cpp index fdd530052b364dbc810ae758f3944aad3917a9dc..184c1945610c849bbfc9e6d084b7fa9f10f1a52c 100644 --- a/ets2panda/parser/ETSparser.cpp +++ b/ets2panda/parser/ETSparser.cpp @@ -159,7 +159,6 @@ void ETSParser::ParseFileHeaderFlag(lexer::SourcePosition startLoc, ArenaVector< auto *exprStatementNode = AllocNode(fileHeaderFlag); ES2PANDA_ASSERT(exprStatementNode != nullptr); exprStatementNode->SetRange({startLoc, fileHeaderFlag->End()}); - ES2PANDA_ASSERT(exprStatementNode != nullptr); ConsumeSemicolon(exprStatementNode); if (statements != nullptr) { statements->push_back(exprStatementNode); @@ -1159,6 +1158,7 @@ ir::Statement *ETSParser::ParseExport(lexer::SourcePosition startLoc, ir::Modifi auto *reExportDeclaration = ParseImportPathBuildImport(std::move(specifiers), true, startLoc, ir::ImportKinds::ALL); auto reExport = AllocNode(reExportDeclaration, std::vector(), GetProgram()->AbsoluteName(), Allocator()); + ES2PANDA_ASSERT(reExport != nullptr); reExport->AddModifier(modifiers); return reExport; }