@@ -355,11 +355,11 @@ codeql::IsExpr ExprTranslator::translateIsExpr(const swift::IsExpr& expr) {
355355codeql::SubscriptExpr ExprTranslator::translateSubscriptExpr (const swift::SubscriptExpr& expr) {
356356 auto entry = createExprEntry (expr);
357357 fillAccessorSemantics (expr, entry);
358- assert (expr.getArgs () && " SubscriptExpr has getArgs" );
358+ fillLookupExpr (expr, entry);
359+ CODEQL_EXPECT_OR (return entry, expr.getArgs (), " SubscriptExpr has null getArgs" );
359360 for (const auto & arg : *expr.getArgs ()) {
360361 entry.arguments .push_back (emitArgument (arg));
361362 }
362- fillLookupExpr (expr, entry);
363363 return entry;
364364}
365365
@@ -384,9 +384,10 @@ codeql::KeyPathExpr ExprTranslator::translateKeyPathExpr(const swift::KeyPathExp
384384 }
385385 if (auto rootTypeRepr = expr.getRootType ()) {
386386 auto keyPathType = expr.getType ()->getAs <swift::BoundGenericClassType>();
387- assert (keyPathType && " KeyPathExpr must have BoundGenericClassType" );
387+ CODEQL_EXPECT_OR ( return entry, keyPathType, " KeyPathExpr must have BoundGenericClassType" );
388388 auto keyPathTypeArgs = keyPathType->getGenericArgs ();
389- assert (keyPathTypeArgs.size () != 0 && " KeyPathExpr type must have generic args" );
389+ CODEQL_EXPECT_OR (return entry, keyPathTypeArgs.size () != 0 ,
390+ " KeyPathExpr type must have generic args" );
390391 entry.root = dispatcher.fetchLabel (rootTypeRepr, keyPathTypeArgs[0 ]);
391392 }
392393 }
@@ -474,10 +475,10 @@ codeql::ErrorExpr ExprTranslator::translateErrorExpr(const swift::ErrorExpr& exp
474475
475476void ExprTranslator::fillAbstractClosureExpr (const swift::AbstractClosureExpr& expr,
476477 codeql::AbstractClosureExpr& entry) {
477- assert (expr.getParameters () && " AbstractClosureExpr has getParameters()" );
478- entry.params = dispatcher.fetchRepeatedLabels (*expr.getParameters ());
479478 entry.body = dispatcher.fetchLabel (expr.getBody ());
480479 entry.captures = dispatcher.fetchRepeatedLabels (expr.getCaptureInfo ().getCaptures ());
480+ CODEQL_EXPECT_OR (return , expr.getParameters (), " AbstractClosureExpr has null getParameters()" );
481+ entry.params = dispatcher.fetchRepeatedLabels (*expr.getParameters ());
481482}
482483
483484TrapLabel<ArgumentTag> ExprTranslator::emitArgument (const swift::Argument& arg) {
@@ -524,7 +525,7 @@ void ExprTranslator::fillAnyTryExpr(const swift::AnyTryExpr& expr, codeql::AnyTr
524525
525526void ExprTranslator::fillApplyExpr (const swift::ApplyExpr& expr, codeql::ApplyExpr& entry) {
526527 entry.function = dispatcher.fetchLabel (expr.getFn ());
527- assert ( expr.getArgs () && " ApplyExpr has getArgs" );
528+ CODEQL_EXPECT_OR ( return , expr.getArgs (), " ApplyExpr has null getArgs" );
528529 for (const auto & arg : *expr.getArgs ()) {
529530 entry.arguments .push_back (emitArgument (arg));
530531 }
0 commit comments