diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 148b2e3c169..e63a5363cf0 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -6,10 +6,6 @@
-
-
-
-
@@ -207,10 +203,10 @@
-
+
-
+
@@ -230,7 +226,7 @@
-
+
@@ -348,10 +344,10 @@
-
+
-
+
@@ -834,41 +830,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1003,6 +965,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1130,11 +1115,11 @@
-
-
-
-
-
+
+
+
+
+
localhost
@@ -1200,16 +1185,16 @@
-
+
-
+
-
+
@@ -1253,7 +1238,7 @@
-
+
@@ -1266,7 +1251,6 @@
-
@@ -1291,6 +1275,7 @@
+
@@ -1335,13 +1320,6 @@
-
-
-
-
-
-
-
@@ -1406,16 +1384,23 @@
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
diff --git a/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java b/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java
index 957ae797f7c..2414813221d 100644
--- a/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java
+++ b/translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java
@@ -4,6 +4,7 @@ import com.google.dart.compiler.backend.js.ast.JsExpression;
import com.google.dart.compiler.backend.js.ast.JsName;
import com.google.dart.compiler.util.AstUtil;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.k2js.translate.context.TranslationContext;
@@ -47,7 +48,6 @@ public class ReferenceTranslator extends AbstractTranslator {
this.shouldQualify = shouldQualify;
}
- //TODO: refactor
@NotNull
public JsExpression translate() {
if (!context().isDeclared(referencedDescriptor)) {
@@ -57,6 +57,11 @@ public class ReferenceTranslator extends AbstractTranslator {
JsName referencedName = context().getNameForDescriptor(referencedDescriptor);
JsExpression implicitReceiver = getImplicitReceiver(context(), referencedDescriptor);
+ return generateReference(referencedName, implicitReceiver);
+ }
+
+ @NotNull
+ private JsExpression generateReference(@NotNull JsName referencedName, @Nullable JsExpression implicitReceiver) {
if (shouldQualify && implicitReceiver != null) {
return AstUtil.qualified(referencedName, implicitReceiver);
} else {