diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureAnnotator.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureAnnotator.java index 9d88e2f8254..707b824cece 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureAnnotator.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureAnnotator.java @@ -42,7 +42,7 @@ public class ClosureAnnotator { private final Map classNamesForAnonymousClasses = new HashMap(); private final Map classNamesForClassDescriptor = new HashMap(); private final Map anonymousSubclassesCount = new HashMap(); - private final Map classesForFunctions = new HashMap(); + private final Map classesForFunctions = new HashMap(); private final Map enclosing = new HashMap(); private final MultiMap namespaceName2Files = MultiMap.create(); @@ -86,6 +86,27 @@ public class ClosureAnnotator { return classDescriptor; } + @NotNull + public ClassDescriptor classDescriptorForScrpitDescriptor(@NotNull ScriptDescriptor scriptDescriptor) { + ClassDescriptorImpl classDescriptor = classesForFunctions.get(scriptDescriptor); + if (classDescriptor == null) { + classDescriptor = new ClassDescriptorImpl( + scriptDescriptor, + Collections.emptyList(), + Name.special("