From 5251b3286e3cb2ffe5ccd044aaea1ea65b996f8b Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 26 Feb 2014 18:30:26 +0400 Subject: [PATCH] Do not process annotations twice in LAZY mode --- .../src/org/jetbrains/jet/lang/resolve/BodyResolver.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java index f3c35fd5c76..377c45fee5f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java @@ -122,7 +122,10 @@ public class BodyResolver { resolveDelegationSpecifierLists(c); resolvePropertyDeclarationBodies(c); - resolveClassAnnotations(c); + + if (!TopDownAnalyzer.LAZY) { + resolveClassAnnotations(c); + } resolveAnonymousInitializers(c); resolvePrimaryConstructorParameters(c); @@ -589,7 +592,9 @@ public class BodyResolver { JetScope declaringScope = c.getDeclaringScopes().apply(declaration); assert declaringScope != null; - resolveAnnotationArguments(declaringScope, declaration); + if (!TopDownAnalyzer.LAZY || c.getTopDownAnalysisParameters().isDeclaredLocally()) { + resolveAnnotationArguments(declaringScope, declaration); + } resolveFunctionBody(c, trace, declaration, descriptor, declaringScope); assert descriptor.getReturnType() != null;