@@ -301,25 +301,30 @@ extract_occurrence <- function(pd) {
301301 sym_cond <- rev(sym_cond )
302302 }
303303
304- after <- match(min(x $ id [assign_cond ]), sort(x $ id [c(min(assign_cond ), sym_cond )])) - 1
305-
306304 # Separate symbols before and after assignment
307305 symbols_before_assign <- sym_cond [x $ id [sym_cond ] < min(x $ id [assign_cond ])]
308306 symbols_after_assign <- sym_cond [x $ id [sym_cond ] > min(x $ id [assign_cond ])]
309307
310- # Filter out function calls from left side of assignment (before assignment operator)
308+ # Move function calls from left side to right side of assignment
311309 # Function calls should only appear as dependencies (right side), not as assignment targets
310+ function_calls_on_left <- c()
312311 if (length(symbols_before_assign ) > 0 ) {
313312 is_function_call_before <- x [symbols_before_assign , " token" ] == " SYMBOL_FUNCTION_CALL"
313+ function_calls_on_left <- symbols_before_assign [is_function_call_before ]
314314 symbols_before_assign <- symbols_before_assign [! is_function_call_before ]
315315 }
316316
317- # Combine all symbols (filtered left side + all right side)
318- filtered_sym_cond <- c(symbols_before_assign , symbols_after_assign )
317+ # Combine symbols: filtered left side + all right side + moved function calls
318+ filtered_sym_cond <- c(symbols_before_assign , symbols_after_assign , function_calls_on_left )
319+
320+ # Update the after position based on filtered symbols (only non-function symbols on left)
321+ if (length(symbols_before_assign ) > 0 ) {
322+ after <- match(min(x $ id [assign_cond ]), sort(x $ id [c(min(assign_cond ), symbols_before_assign )])) - 1
323+ } else {
324+ after <- 0
325+ }
319326
320- # Update the after position based on filtered symbols
321327 if (length(filtered_sym_cond ) > 0 ) {
322- after <- match(min(x $ id [assign_cond ]), sort(x $ id [c(min(assign_cond ), filtered_sym_cond )])) - 1
323328 ans <- append(x [filtered_sym_cond , " text" ], " <-" , after = max(1 , after ))
324329 } else {
325330 ans <- " <-"
0 commit comments