From 2c2e212d0ad191f5a56c4564d725f1f4c69182e4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 2 Dec 2013 16:21:00 +0400 Subject: [PATCH] Don't allow to call constructors of singletons This fixes testKt2014 --- .../resolve/calls/tasks/CallableDescriptorCollectors.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java index 32aad6db26e..78230ecbf2f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/CallableDescriptorCollectors.java @@ -72,9 +72,13 @@ public class CallableDescriptorCollectors { private static void addConstructors(JetScope scope, Name name, Collection functions) { ClassifierDescriptor classifier = scope.getClassifier(name); - if (classifier instanceof ClassDescriptor && !ErrorUtils.isError(classifier)) { - functions.addAll(((ClassDescriptor) classifier).getConstructors()); + if (!(classifier instanceof ClassDescriptor) || ErrorUtils.isError(classifier)) return; + ClassDescriptor classDescriptor = (ClassDescriptor) classifier; + if (classDescriptor.getKind().isSingleton()) { + // Constructors of singletons shouldn't be callable from the code + return; } + functions.addAll(classDescriptor.getConstructors()); } @Override