From e97c5379afc50fcb5c71e471f21183534cb83303 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 26 Feb 2014 19:07:04 +0400 Subject: [PATCH] Report MANY_CLASS_OBJECTS upon traversing PSI --- .../jet/lang/resolve/TopDownAnalyzer.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java index 086a1b5e26c..c55e6a320a2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -46,6 +46,8 @@ import org.jetbrains.jet.storage.LockBasedStorageManager; import javax.inject.Inject; import java.util.*; +import static org.jetbrains.jet.lang.diagnostics.Errors.MANY_CLASS_OBJECTS; + public class TopDownAnalyzer { public static boolean LAZY; @@ -191,6 +193,22 @@ public class TopDownAnalyzer { ) ); registerDeclarations(classOrObject.getDeclarations()); + + checkManyClassObjects(classOrObject); + } + + private void checkManyClassObjects(JetClassOrObject classOrObject) { + boolean classObjectAlreadyFound = false; + for (JetDeclaration jetDeclaration : classOrObject.getDeclarations()) { + jetDeclaration.accept(this); + + if (jetDeclaration instanceof JetClassObject) { + if (classObjectAlreadyFound) { + trace.report(MANY_CLASS_OBJECTS.on((JetClassObject) jetDeclaration)); + } + classObjectAlreadyFound = true; + } + } } @Override