From ffe7857b26673e5b7132d358ddc427817c0561b9 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Tue, 12 Sep 2023 12:35:31 +0100 Subject: [PATCH] Optimize decl id insertion in method application. --- .../expression/typed_expression/method_application.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/expression/typed_expression/method_application.rs b/sway-core/src/semantic_analysis/ast_node/expression/typed_expression/method_application.rs index 64e925e9c43..8775c3dd483 100644 --- a/sway-core/src/semantic_analysis/ast_node/expression/typed_expression/method_application.rs +++ b/sway-core/src/semantic_analysis/ast_node/expression/typed_expression/method_application.rs @@ -1,5 +1,8 @@ use crate::{ - decl_engine::{DeclEngineInsert, DeclRefFunction, ReplaceDecls, UpdateConstantExpression}, + decl_engine::{ + engine::DeclEngineReplace, DeclEngineInsert, DeclRefFunction, ReplaceDecls, + UpdateConstantExpression, + }, language::{parsed::*, ty, *}, namespace::TryInsertingTraitImplOnFailure, semantic_analysis::{type_check_context::EnforceTypeArguments, *}, @@ -346,16 +349,14 @@ pub(crate) fn type_check_method_application( method.replace_decls(&decl_mapping, handler, &mut ctx)?; let return_type = method.return_type.type_id; - let new_decl_ref = decl_engine - .insert(method) - .with_parent(decl_engine, (*decl_ref.id()).into()); + decl_engine.replace(*decl_ref.id(), method); let exp = ty::TyExpression { expression: ty::TyExpressionVariant::FunctionApplication { call_path, contract_call_params: contract_call_params_map, arguments: typed_arguments_with_names, - fn_ref: new_decl_ref, + fn_ref: decl_ref, selector, type_binding: Some(method_name_binding.strip_inner()), call_path_typeid: Some(call_path_typeid),