From 930217c8778d34155b3aeaa44ada418183319691 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 17 May 2013 13:46:15 +0400 Subject: [PATCH] Interner fixed: looks item up in parent first --- .../jet/descriptors/serialization/DescriptorSerializer.java | 2 +- .../org/jetbrains/jet/descriptors/serialization/Interner.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorSerializer.java b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorSerializer.java index 26d400c915a..2b61bfdf345 100644 --- a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorSerializer.java +++ b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorSerializer.java @@ -110,7 +110,7 @@ public class DescriptorSerializer { //TODO builder.addAnnotations() - DescriptorSerializer local = this;//createChildSerializer(); + DescriptorSerializer local = createChildSerializer(); for (TypeParameterDescriptor typeParameterDescriptor : descriptor.getTypeParameters()) { builder.addTypeParameters(local.typeParameter(typeParameterDescriptor)); diff --git a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/Interner.java b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/Interner.java index 6c7816c4bbf..b50a560aeb2 100644 --- a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/Interner.java +++ b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/Interner.java @@ -52,6 +52,9 @@ public final class Interner { public int intern(@NotNull T obj) { assert parent == null || parent.all.size() == firstIndex : "Parent changed in parallel with child: indexes will be wrong"; + if (parent != null && parent.interned.contains(obj)) { + return parent.intern(obj); + } if (interned.contains(obj)) { return interned.get(obj); }