From bf8bfc63c5cec4e642b2f20c3bd2e18290565b28 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 26 Nov 2013 20:08:18 +0400 Subject: [PATCH] Don't analyze tail calls when only declaration headers are processed Otherwise we are getting spurious "NO_TAIL_CALLS" warnings --- .../jetbrains/jet/lang/resolve/FunctionAnalyzerExtension.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/FunctionAnalyzerExtension.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/FunctionAnalyzerExtension.java index 49375e15158..45ba9233b06 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/FunctionAnalyzerExtension.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/FunctionAnalyzerExtension.java @@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import javax.inject.Inject; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -47,6 +46,9 @@ public class FunctionAnalyzerExtension { for (Map.Entry entry : bodiesResolveContext.getFunctions().entrySet()) { JetNamedFunction function = entry.getKey(); SimpleFunctionDescriptor functionDescriptor = entry.getValue(); + + if (!bodiesResolveContext.completeAnalysisNeeded(function.getContainingFile())) continue; + List extensions = getExtensions(functionDescriptor); for (AnalyzerExtension extension : extensions) { extension.process(functionDescriptor, function, trace);