From c4bbcdd3c4565a81a3078d208178781bea7e8c6e Mon Sep 17 00:00:00 2001 From: Matt Brown Date: Mon, 12 Aug 2024 12:43:01 -0400 Subject: [PATCH] Use class name when expanding method ref --- src/analyzer/expression_analyzer.rs | 2 +- src/ttype/type_expander.rs | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/analyzer/expression_analyzer.rs b/src/analyzer/expression_analyzer.rs index 35b13fca..3865eb34 100644 --- a/src/analyzer/expression_analyzer.rs +++ b/src/analyzer/expression_analyzer.rs @@ -16,8 +16,8 @@ use crate::expr::{ }; use crate::function_analysis_data::FunctionAnalysisData; use crate::reconciler; -use crate::scope_analyzer::ScopeAnalyzer; use crate::scope::{var_has_root, BlockContext}; +use crate::scope_analyzer::ScopeAnalyzer; use crate::statements_analyzer::StatementsAnalyzer; use crate::stmt_analyzer::AnalysisError; use crate::{algebra_analyzer, expression_analyzer, formula_generator}; diff --git a/src/ttype/type_expander.rs b/src/ttype/type_expander.rs index 5cb59f56..76e610c4 100644 --- a/src/ttype/type_expander.rs +++ b/src/ttype/type_expander.rs @@ -604,6 +604,7 @@ pub fn get_closure_from_id( codebase, interner, data_flow_graph, + &TypeExpansionOptions::default(), )); } } @@ -617,6 +618,10 @@ pub fn get_closure_from_id( codebase, interner, data_flow_graph, + &TypeExpansionOptions { + self_class: Some(classlike_name), + ..Default::default() + }, )); } } @@ -632,6 +637,7 @@ fn get_expanded_closure( codebase: &CodebaseInfo, interner: &Option<&Interner>, data_flow_graph: &mut DataFlowGraph, + options: &TypeExpansionOptions, ) -> TAtomic { TAtomic::TClosure { params: functionlike_info @@ -640,15 +646,7 @@ fn get_expanded_closure( .map(|param| FnParameter { signature_type: if let Some(t) = ¶m.signature_type { let mut t = t.clone(); - expand_union( - codebase, - interner, - &mut t, - &TypeExpansionOptions { - ..Default::default() - }, - data_flow_graph, - ); + expand_union(codebase, interner, &mut t, options, data_flow_graph); Some(Box::new(t)) } else { None @@ -664,9 +662,7 @@ fn get_expanded_closure( codebase, interner, &mut return_type, - &TypeExpansionOptions { - ..Default::default() - }, + options, data_flow_graph, ); Some(Box::new(return_type))