From b39d34ca8d27bc3c33a96e1ed80f39175b47d758 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 11 Nov 2014 19:57:33 +0300 Subject: [PATCH] Prepend zeros to SAM wrapper hash code To make its length always 8 characters as is already done for package parts. This fixes some test on incremental compilation because it relies that hashes are eight characters long --- .../jetbrains/jet/codegen/SamWrapperCodegen.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java index 97eba79450e..0aa2b5313e1 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java @@ -171,11 +171,14 @@ public class SamWrapperCodegen { private FqName getWrapperName(@NotNull JetFile containingFile) { FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(containingFile.getPackageFqName()); JavaClassDescriptor descriptor = samType.getJavaClassDescriptor(); - String shortName = packageClassFqName.shortName().asString() + "$sam$" + descriptor.getName().asString() + "$" + - Integer.toHexString( - PackagePartClassUtils.getPathHashCode(containingFile.getVirtualFile()) * 31 + - DescriptorUtils.getFqNameSafe(descriptor).hashCode() - ); + int hash = PackagePartClassUtils.getPathHashCode(containingFile.getVirtualFile()) * 31 + + DescriptorUtils.getFqNameSafe(descriptor).hashCode(); + String shortName = String.format( + "%s$sam$%s$%08x", + packageClassFqName.shortName().asString(), + descriptor.getName().asString(), + hash + ); return packageClassFqName.parent().child(Name.identifier(shortName)); } }