diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AbstractClassBuilder.java b/compiler/backend/src/org/jetbrains/jet/codegen/AbstractClassBuilder.java index 36784d3f688..d582ef2cba1 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AbstractClassBuilder.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AbstractClassBuilder.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.*; public abstract class AbstractClassBuilder implements ClassBuilder { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index a21aef15732..9a5f4c39e2e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -51,7 +51,7 @@ import java.util.Map; import java.util.Set; import static org.jetbrains.jet.codegen.JvmCodegenUtil.*; -import static org.jetbrains.jet.codegen.JvmDeclarationOrigin.NO_ORIGIN; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.*; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.JAVA_STRING_TYPE; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.getType; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilder.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilder.java index a00012c1bc0..d2bf6a15920 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilder.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilder.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.AnnotationVisitor; import org.jetbrains.org.objectweb.asm.ClassVisitor; import org.jetbrains.org.objectweb.asm.FieldVisitor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactories.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactories.java index 0abd639d6dc..208251696ed 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactories.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactories.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.ClassWriter; import org.jetbrains.org.objectweb.asm.util.TraceClassVisitor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactory.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactory.java index b62dcc24dd5..1e1ec9e7fc6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactory.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassBuilderFactory.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; public interface ClassBuilderFactory { @NotNull diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java index 1500e819193..b26393e66ae 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java @@ -28,6 +28,7 @@ import org.jetbrains.jet.OutputFile; import org.jetbrains.jet.OutputFileCollection; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.org.objectweb.asm.Type; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 826dfb3df80..795d71ff483 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -45,7 +45,7 @@ import java.util.Collections; import java.util.List; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmCodegenUtil.isConst; import static org.jetbrains.jet.codegen.binding.CodegenBinding.*; import static org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.KotlinSyntheticClass; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/DelegatingClassBuilder.java b/compiler/backend/src/org/jetbrains/jet/codegen/DelegatingClassBuilder.java index 5b314f2f585..da07efa4c1e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/DelegatingClassBuilder.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/DelegatingClassBuilder.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.codegen; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.AnnotationVisitor; import org.jetbrains.org.objectweb.asm.ClassVisitor; import org.jetbrains.org.objectweb.asm.FieldVisitor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index b7b7ba14d76..ee3f6086d85 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -67,7 +67,7 @@ import org.jetbrains.org.objectweb.asm.commons.Method; import java.util.*; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmCodegenUtil.*; import static org.jetbrains.jet.codegen.binding.CodegenBinding.*; import static org.jetbrains.jet.lang.resolve.BindingContext.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index 0b6f447606e..2c3f74b8ed4 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -42,6 +42,7 @@ import org.jetbrains.jet.lang.resolve.calls.CallResolverUtil; import org.jetbrains.jet.lang.resolve.constants.ArrayValue; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.JavaClassValue; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterKind; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterSignature; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; @@ -63,7 +64,6 @@ import java.util.List; import java.util.Set; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmSerializationBindings.*; import static org.jetbrains.jet.codegen.binding.CodegenBinding.isLocalNamedFun; import static org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor.Kind.DECLARATION; @@ -73,6 +73,7 @@ import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isFunctionLiteral; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isTrait; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE; import static org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.OLD_JET_VALUE_PARAMETER_ANNOTATION; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.org.objectweb.asm.Opcodes.*; public class FunctionCodegen extends ParentCodegenAware { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 28783323514..4a3c0ac56e3 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -66,10 +66,10 @@ import org.jetbrains.org.objectweb.asm.commons.Method; import java.util.*; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.codegen.CodegenPackage.DelegationToTraitImpl; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.DelegationToTraitImpl; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmCodegenUtil.*; -import static org.jetbrains.jet.codegen.JvmDeclarationOrigin.NO_ORIGIN; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; import static org.jetbrains.jet.codegen.binding.CodegenBinding.*; import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.createNameResolver; import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java index fe61ea30e68..4d0b918d22e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/MemberCodegen.java @@ -50,9 +50,9 @@ import java.util.List; import static org.jetbrains.jet.codegen.AsmUtil.boxType; import static org.jetbrains.jet.codegen.AsmUtil.isPrimitive; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; -import static org.jetbrains.jet.codegen.CodegenPackage.TraitImpl; -import static org.jetbrains.jet.codegen.JvmDeclarationOrigin.NO_ORIGIN; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.TraitImpl; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; import static org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor.Kind.SYNTHESIZED; import static org.jetbrains.jet.lang.resolve.BindingContext.VARIABLE; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java index 642f40f153e..c46ae090f6b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java @@ -60,9 +60,9 @@ import org.jetbrains.org.objectweb.asm.Type; import java.util.*; import static org.jetbrains.jet.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses; -import static org.jetbrains.jet.codegen.CodegenPackage.*; import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.createNameResolver; import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.*; import static org.jetbrains.org.objectweb.asm.Opcodes.*; public class PackageCodegen { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java index fbc964b00c6..1dc03a34674 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java @@ -44,7 +44,7 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.org.objectweb.asm.commons.Method; import static org.jetbrains.jet.codegen.AsmUtil.*; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.codegen.JvmCodegenUtil.getParentBodyCodegen; import static org.jetbrains.jet.codegen.JvmCodegenUtil.isInterface; import static org.jetbrains.jet.codegen.JvmSerializationBindings.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java index 6d090d8a2c2..82e54bdb209 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java @@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.types.JetType; import static org.jetbrains.jet.codegen.AsmUtil.NO_FLAG_PACKAGE_PRIVATE; import static org.jetbrains.jet.codegen.AsmUtil.writeKotlinSyntheticClassAnnotation; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE; import static org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames.KotlinSyntheticClass; import static org.jetbrains.org.objectweb.asm.Opcodes.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java index 132d71d71a5..5c17c81e801 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java @@ -37,8 +37,8 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import java.util.Collections; import java.util.List; -import static org.jetbrains.jet.codegen.CodegenPackage.OtherOrigin; -import static org.jetbrains.jet.codegen.JvmDeclarationOrigin.NO_ORIGIN; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.DiagnosticsPackage.OtherOrigin; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; import static org.jetbrains.jet.codegen.binding.CodegenBinding.*; import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE; import static org.jetbrains.org.objectweb.asm.Opcodes.*; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SignatureCollectingClassBuilderFactory.kt b/compiler/backend/src/org/jetbrains/jet/codegen/SignatureCollectingClassBuilderFactory.kt index a78fa1172a8..abe23fbc8be 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SignatureCollectingClassBuilderFactory.kt +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SignatureCollectingClassBuilderFactory.kt @@ -17,24 +17,20 @@ package org.jetbrains.jet.codegen import com.intellij.psi.PsiElement -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.org.objectweb.asm.FieldVisitor import org.jetbrains.org.objectweb.asm.MethodVisitor import com.intellij.util.containers.MultiMap - -public data class RawSignature(val name: String, val desc: String, val field: MemberKind) +import org.jetbrains.jet.lang.resolve.java.diagnostics.ConflictingJvmDeclarationsData +import org.jetbrains.jet.lang.resolve.java.diagnostics.MemberKind +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin +import org.jetbrains.jet.lang.resolve.java.diagnostics.RawSignature public abstract class SignatureCollectingClassBuilderFactory( private val delegate: ClassBuilderFactory ) : ClassBuilderFactory by delegate { - protected abstract fun handleClashingSignatures( - classInternalName: String?, - classOrigin: JvmDeclarationOrigin, - signature: RawSignature, - origins: Collection - ) + protected abstract fun handleClashingSignatures(data: ConflictingJvmDeclarationsData) override fun newClassBuilder(origin: JvmDeclarationOrigin): SignatureCollectingClassBuilder { return SignatureCollectingClassBuilder(origin, delegate.newClassBuilder(origin)) @@ -73,12 +69,12 @@ public abstract class SignatureCollectingClassBuilderFactory( override fun done() { for ((signature, elementsAndDescriptors) in signatures.entrySet()!!) { if (elementsAndDescriptors.size == 1) continue // no clash - handleClashingSignatures( + handleClashingSignatures(ConflictingJvmDeclarationsData( classInternalName, classCreatedFor, signature, elementsAndDescriptors - ) + )) } super.done() } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/AnonymousObjectTransformer.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/AnonymousObjectTransformer.java index 412aa92d9f3..30d82f4abc8 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/AnonymousObjectTransformer.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/AnonymousObjectTransformer.java @@ -34,7 +34,7 @@ import org.jetbrains.org.objectweb.asm.tree.VarInsnNode; import java.io.IOException; import java.util.*; -import static org.jetbrains.jet.codegen.JvmDeclarationOrigin.NO_ORIGIN; +import static org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin.NO_ORIGIN; public class AnonymousObjectTransformer { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/RemappingClassBuilder.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/RemappingClassBuilder.java index 32556b5c2f3..01a0d2afcc6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/RemappingClassBuilder.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/RemappingClassBuilder.java @@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.codegen.ClassBuilder; import org.jetbrains.jet.codegen.DelegatingClassBuilder; -import org.jetbrains.jet.codegen.JvmDeclarationOrigin; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.AnnotationVisitor; import org.jetbrains.org.objectweb.asm.ClassVisitor; import org.jetbrains.org.objectweb.asm.FieldVisitor; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java index c7d7d3f7311..f94058a82ea 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java @@ -33,7 +33,9 @@ import org.jetbrains.jet.lang.reflect.ReflectionTypes; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace; +import org.jetbrains.jet.lang.resolve.java.diagnostics.ConflictingJvmDeclarationsData; import org.jetbrains.jet.lang.resolve.java.diagnostics.ErrorsJvm; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; @@ -288,17 +290,14 @@ public class GenerationState { @Override protected void handleClashingSignatures( - @Nullable String classInternalName, - @NotNull JvmDeclarationOrigin classOrigin, - @NotNull RawSignature signature, - @NotNull Collection origins + @NotNull ConflictingJvmDeclarationsData data ) { Collection elements = new LinkedHashSet(); - for (JvmDeclarationOrigin origin : origins) { + for (JvmDeclarationOrigin origin : data.getSignatureOrigins()) { PsiElement element = origin.getElement(); if (element == null) { - element = classOrigin.getElement(); + element = data.getClassOrigin().getElement(); } if (element != null) { elements.add(element); @@ -306,7 +305,7 @@ public class GenerationState { } for (PsiElement element : elements) { - diagnostics.report(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS.on(element, signature.getName() + signature.getDesc())); + diagnostics.report(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS.on(element, data)); } } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ConflictingJvmDeclarationsData.kt b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ConflictingJvmDeclarationsData.kt new file mode 100644 index 00000000000..d5bfd5cfcda --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ConflictingJvmDeclarationsData.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java.diagnostics + +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin + +public class ConflictingJvmDeclarationsData( + public val classInternalName: String?, + public val classOrigin: JvmDeclarationOrigin, + public val signature: RawSignature, + public val signatureOrigins: Collection +) \ No newline at end of file diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java index 4396fde2632..519c26215f3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java @@ -19,17 +19,24 @@ package org.jetbrains.jet.lang.resolve.java.diagnostics; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages; import org.jetbrains.jet.lang.diagnostics.rendering.DiagnosticFactoryToRendererMap; - -import static org.jetbrains.jet.lang.diagnostics.rendering.Renderers.STRING; +import org.jetbrains.jet.renderer.Renderer; public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension { - public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); + private static final Renderer CONFLICTING_JVM_DECLARATIONS_DATA = new Renderer() { + @NotNull + @Override + public String render(@NotNull ConflictingJvmDeclarationsData element) { + return element.getSignature().getName() + element.getSignature().getDesc(); + } + }; + public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); static { - MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: ''{0}''", STRING); + MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: ''{0}''", CONFLICTING_JVM_DECLARATIONS_DATA); } + @NotNull @Override public DiagnosticFactoryToRendererMap getMap() { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java index 2400ecb9964..54be92a099b 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java @@ -24,7 +24,7 @@ import static org.jetbrains.jet.lang.diagnostics.PositioningStrategies.DECLARATI import static org.jetbrains.jet.lang.diagnostics.Severity.ERROR; public interface ErrorsJvm { - DiagnosticFactory1 CONFLICTING_JVM_DECLARATIONS = DiagnosticFactory1.create(ERROR, DECLARATION_OR_DEFAULT); + DiagnosticFactory1 CONFLICTING_JVM_DECLARATIONS = DiagnosticFactory1.create(ERROR, DECLARATION_OR_DEFAULT); @SuppressWarnings("UnusedDeclaration") Object _initializer = new Object() { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JvmDeclarationOrigin.kt b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/JvmDeclarationOrigin.kt similarity index 91% rename from compiler/backend/src/org/jetbrains/jet/codegen/JvmDeclarationOrigin.kt rename to compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/JvmDeclarationOrigin.kt index 6e122149ef6..c928cdfd281 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JvmDeclarationOrigin.kt +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/JvmDeclarationOrigin.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.jet.codegen +package org.jetbrains.jet.lang.resolve.java.diagnostics import com.intellij.psi.PsiElement import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor @@ -24,10 +24,12 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor import org.jetbrains.jet.lang.psi.JetClassOrObject import org.jetbrains.jet.lang.psi.JetDeclaration import org.jetbrains.jet.lang.descriptors.FunctionDescriptor -import org.jetbrains.jet.codegen.JvmDeclarationOriginKind.* +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOriginKind.* public enum class MemberKind { FIELD; METHOD } +public data class RawSignature(val name: String, val desc: String, val kind: MemberKind) + public enum class JvmDeclarationOriginKind { OTHER PACKAGE_FACADE diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightClassBuilderFactory.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightClassBuilderFactory.java index b9d0e3716ae..3f101068e7a 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightClassBuilderFactory.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightClassBuilderFactory.java @@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.codegen.ClassBuilder; import org.jetbrains.jet.codegen.ClassBuilderFactory; import org.jetbrains.jet.codegen.ClassBuilderMode; -import org.jetbrains.jet.codegen.JvmDeclarationOrigin; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; /*package*/ class KotlinLightClassBuilderFactory implements ClassBuilderFactory { private final Stack stubStack; diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/StubClassBuilder.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/StubClassBuilder.java index a6cb3cce5c1..f93c5f5cd6a 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/StubClassBuilder.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/StubClassBuilder.java @@ -24,7 +24,7 @@ import com.intellij.psi.stubs.StubElement; import com.intellij.util.containers.Stack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.codegen.JvmDeclarationOrigin; +import org.jetbrains.jet.lang.resolve.java.diagnostics.JvmDeclarationOrigin; import org.jetbrains.org.objectweb.asm.ClassVisitor; import org.jetbrains.org.objectweb.asm.FieldVisitor; import org.jetbrains.org.objectweb.asm.MethodVisitor;