From 38333d6cea70c3aea85a365f4ceee618fa3512a5 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 28 May 2014 17:59:11 +0400 Subject: [PATCH] CONFLICTING_PLATFORM_DECLARATIONS moved to a JVM-specific class --- .../jet/codegen/state/GenerationState.java | 4 +- ...s.rendering.DefaultErrorMessages$Extension | 1 + .../diagnostics/DefaultErrorMessagesJvm.java | 38 +++++++++++++++++++ .../resolve/java/diagnostics/ErrorsJvm.java | 35 +++++++++++++++++ .../jet/lang/diagnostics/Errors.java | 8 +++- .../rendering/DefaultErrorMessages.java | 32 ++++++++++++++-- .../DispatchingDiagnosticRenderer.java | 8 ++-- .../classFunctionOverriddenByProperty.kt | 2 +- .../classPropertyOverriddenByFunction.kt | 2 +- .../traitFunctionOverriddenByProperty.kt | 2 +- .../traitPropertyOverriddenByFunction.kt | 2 +- .../erasure/collections.kt | 4 +- .../erasure/delegateToTwoTraits.kt | 2 +- .../erasure/delegationAndOwnMethod.kt | 2 +- .../erasure/genericType.kt | 4 +- .../erasure/kotlinAndJavaCollections.kt | 4 +- .../erasure/nullableType.kt | 4 +- .../erasure/typeMappedToJava.kt | 4 +- .../erasure/typeParameter.kt | 4 +- .../erasure/typeParameterWithBound.kt | 4 +- .../erasure/typeParameterWithTwoBounds.kt | 4 +- .../typeParameterWithTwoBoundsInWhere.kt | 4 +- .../functionAndProperty/class.kt | 4 +- .../functionAndProperty/classObject.kt | 4 +- .../extensionFunctionAndNormalFunction.kt | 4 +- .../extensionPropertyAndFunction.kt | 4 +- .../functionAndProperty/functionAndSetter.kt | 4 +- .../functionAndProperty/functionAndVar.kt | 4 +- .../functionAndProperty/localClass.kt | 4 +- .../functionAndProperty/nestedClass.kt | 4 +- .../functionAndProperty/object.kt | 4 +- .../functionAndProperty/objectExpression.kt | 4 +- .../functionAndProperty/topLevel.kt | 4 +- .../topLevelDifferentFiles.kt | 4 +- .../functionAndProperty/topLevelGetter.kt | 4 +- .../functionAndProperty/trait.kt | 4 +- .../componentInheritedFromTrait.kt | 2 +- .../specialNames/defaults.kt | 4 +- .../specialNames/delegationBy.kt | 2 +- .../specialNames/innerClassField.kt | 4 +- .../traitImpl/oneTrait.kt | 2 +- .../traitImpl/twoTraits.kt | 2 +- .../plugin/highlighter/IdeErrorMessages.java | 3 +- 43 files changed, 178 insertions(+), 71 deletions(-) create mode 100644 compiler/frontend.java/src/META-INF/services/org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages$Extension create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java 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 eba09832331..c7d7d3f7311 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/GenerationState.java @@ -27,13 +27,13 @@ import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; import org.jetbrains.jet.lang.diagnostics.DiagnosticHolder; -import org.jetbrains.jet.lang.diagnostics.Errors; import org.jetbrains.jet.lang.psi.JetClassOrObject; import org.jetbrains.jet.lang.psi.JetFile; 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.ErrorsJvm; import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; @@ -306,7 +306,7 @@ public class GenerationState { } for (PsiElement element : elements) { - diagnostics.report(Errors.CONFLICTING_PLATFORM_DECLARATIONS.on(element, signature.getName() + signature.getDesc())); + diagnostics.report(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS.on(element, signature.getName() + signature.getDesc())); } } } diff --git a/compiler/frontend.java/src/META-INF/services/org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages$Extension b/compiler/frontend.java/src/META-INF/services/org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages$Extension new file mode 100644 index 00000000000..8f141822f61 --- /dev/null +++ b/compiler/frontend.java/src/META-INF/services/org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages$Extension @@ -0,0 +1 @@ +org.jetbrains.jet.lang.resolve.java.diagnostics.DefaultErrorMessagesJvm \ 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 new file mode 100644 index 00000000000..4396fde2632 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/DefaultErrorMessagesJvm.java @@ -0,0 +1,38 @@ +/* + * 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.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; + +public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension { + + public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); + + static { + MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: ''{0}''", STRING); + } + + @NotNull + @Override + public DiagnosticFactoryToRendererMap getMap() { + return MAP; + } +} 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 new file mode 100644 index 00000000000..2400ecb9964 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/diagnostics/ErrorsJvm.java @@ -0,0 +1,35 @@ +/* + * 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 com.intellij.psi.PsiElement; +import org.jetbrains.jet.lang.diagnostics.DiagnosticFactory1; +import org.jetbrains.jet.lang.diagnostics.Errors; + +import static org.jetbrains.jet.lang.diagnostics.PositioningStrategies.DECLARATION_OR_DEFAULT; +import static org.jetbrains.jet.lang.diagnostics.Severity.ERROR; + +public interface ErrorsJvm { + DiagnosticFactory1 CONFLICTING_JVM_DECLARATIONS = DiagnosticFactory1.create(ERROR, DECLARATION_OR_DEFAULT); + + @SuppressWarnings("UnusedDeclaration") + Object _initializer = new Object() { + { + Errors.Initializer.initializeFactoryNames(ErrorsJvm.class); + } + }; +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index b6e91d53c3e..731e625e138 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableSet; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiNameIdentifierOwner; import com.intellij.psi.impl.source.tree.LeafPsiElement; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.calls.inference.InferenceErrorData; @@ -203,7 +204,6 @@ public interface Errors { DiagnosticFactory0 PUBLIC_MEMBER_SHOULD_SPECIFY_TYPE = DiagnosticFactory0.create(ERROR, NAMED_ELEMENT); DiagnosticFactory2 CONFLICTING_OVERLOADS = DiagnosticFactory2.create(ERROR, DECLARATION); - DiagnosticFactory1 CONFLICTING_PLATFORM_DECLARATIONS = DiagnosticFactory1.create(ERROR, DECLARATION_OR_DEFAULT); DiagnosticFactory0 NON_FINAL_MEMBER_IN_FINAL_CLASS = DiagnosticFactory0.create(WARNING, modifierSetPosition( JetTokens.OPEN_KEYWORD)); @@ -610,7 +610,11 @@ public interface Errors { class Initializer { static { - for (Field field : Errors.class.getFields()) { + initializeFactoryNames(Errors.class); + } + + public static void initializeFactoryNames(@NotNull Class aClass) { + for (Field field : aClass.getFields()) { if (Modifier.isStatic(field.getModifiers())) { try { Object value = field.get(null); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java index b57e024328e..89a27e8c37a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DefaultErrorMessages.java @@ -16,6 +16,9 @@ package org.jetbrains.jet.lang.diagnostics.rendering; +import com.google.common.collect.ImmutableList; +import kotlin.Function1; +import kotlin.KotlinPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.DiagnosticFactory; @@ -31,16 +34,40 @@ import org.jetbrains.jet.renderer.Renderer; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Collection; +import java.util.List; +import java.util.ServiceLoader; import static org.jetbrains.jet.lang.diagnostics.Errors.*; import static org.jetbrains.jet.lang.diagnostics.rendering.Renderers.*; import static org.jetbrains.jet.renderer.DescriptorRenderer.*; public class DefaultErrorMessages { - public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); - public static final DiagnosticRenderer RENDERER = new DispatchingDiagnosticRenderer(MAP); + + public interface Extension { + @NotNull + DiagnosticFactoryToRendererMap getMap(); + } + + private static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); + public static final List MAPS = ImmutableList.builder() + .addAll( + KotlinPackage.map( + ServiceLoader.load(Extension.class, DefaultErrorMessages.class.getClassLoader()), + new Function1() { + @Override + public DiagnosticFactoryToRendererMap invoke(Extension extension) { + return extension.getMap(); + } + } + ) + ) + .add(MAP) + .build(); + + public static final DiagnosticRenderer RENDERER = new DispatchingDiagnosticRenderer(MAPS); static { + MAP.put(UNRESOLVED_REFERENCE, "Unresolved reference: {0}", ELEMENT_TEXT); MAP.put(INVISIBLE_REFERENCE, "Cannot access ''{0}'': it is ''{1}'' in ''{2}''", NAME, TO_STRING, NAME); @@ -392,7 +419,6 @@ public class DefaultErrorMessages { RENDER_CLASS_OR_OBJECT, FQ_NAMES_IN_TYPES); MAP.put(CONFLICTING_OVERLOADS, "''{0}'' is already defined in {1}", COMPACT_WITH_MODIFIERS, STRING); - MAP.put(CONFLICTING_PLATFORM_DECLARATIONS, "Platform declaration clash: ''{0}''", STRING); MAP.put(FUNCTION_EXPECTED, "Expression ''{0}''{1} cannot be invoked as a function. The function 'invoke()' is not found", ELEMENT_TEXT, new Renderer() { @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DispatchingDiagnosticRenderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DispatchingDiagnosticRenderer.java index 50707d9fd99..65da39fbe3c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DispatchingDiagnosticRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DispatchingDiagnosticRenderer.java @@ -19,10 +19,12 @@ package org.jetbrains.jet.lang.diagnostics.rendering; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.diagnostics.Diagnostic; -public class DispatchingDiagnosticRenderer implements DiagnosticRenderer { - private final DiagnosticFactoryToRendererMap[] maps; +import java.util.List; - public DispatchingDiagnosticRenderer(DiagnosticFactoryToRendererMap... maps) { +public class DispatchingDiagnosticRenderer implements DiagnosticRenderer { + private final List maps; + + public DispatchingDiagnosticRenderer(List maps) { this.maps = maps; } diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt index 344341da471..29bb4c197c8 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classFunctionOverriddenByProperty.kt @@ -4,5 +4,5 @@ open class B { class C : B() { val x: Int - get() = 1 + get() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classPropertyOverriddenByFunction.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classPropertyOverriddenByFunction.kt index 1806871ed45..8c79e89d4ba 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classPropertyOverriddenByFunction.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/classPropertyOverriddenByFunction.kt @@ -4,5 +4,5 @@ open class B { } class C : B() { - fun getX() = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt index 216a14f7e42..be5b8557a77 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitFunctionOverriddenByProperty.kt @@ -4,5 +4,5 @@ trait T { class C : T { val x: Int - get() = 1 + get() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitPropertyOverriddenByFunction.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitPropertyOverriddenByFunction.kt index 8e4707b30d4..64c0136faa5 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitPropertyOverriddenByFunction.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/accidentalOverrides/traitPropertyOverriddenByFunction.kt @@ -4,5 +4,5 @@ trait T { } class C : T { - fun getX() = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/collections.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/collections.kt index 71cc6802e58..e299e8accaf 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/collections.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/collections.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -fun foo(s: List) {} -fun foo(s: MutableList) {} \ No newline at end of file +fun foo(s: List) {} +fun foo(s: MutableList) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegateToTwoTraits.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegateToTwoTraits.kt index 7b491375dcd..a8d94480511 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegateToTwoTraits.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegateToTwoTraits.kt @@ -8,5 +8,5 @@ trait Bar { fun foo(l: List) } -class Baz(f: Foo, b: Bar): Foo by f, Bar by b { +class Baz(f: Foo, b: Bar): Foo by f, Bar by b { } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegationAndOwnMethod.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegationAndOwnMethod.kt index ac1677514d5..4e1f075bda7 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegationAndOwnMethod.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/delegationAndOwnMethod.kt @@ -5,5 +5,5 @@ trait Foo { } class Bar(f: Foo): Foo by f { - fun foo(l: List) {} + fun foo(l: List) {} } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/genericType.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/genericType.kt index 6402be1593b..4666b7d13d3 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/genericType.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/genericType.kt @@ -2,5 +2,5 @@ class G -fun foo(x: G): G {null!!} -fun foo(x: G): G {null!!} \ No newline at end of file +fun foo(x: G): G {null!!} +fun foo(x: G): G {null!!} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/kotlinAndJavaCollections.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/kotlinAndJavaCollections.kt index 7497e2c22b5..397a3f868b9 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/kotlinAndJavaCollections.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/kotlinAndJavaCollections.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN -fun foo(s: List) {} -fun foo(s: java.util.List) {} \ No newline at end of file +fun foo(s: List) {} +fun foo(s: java.util.List) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/nullableType.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/nullableType.kt index f825dc6a474..971d990c904 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/nullableType.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/nullableType.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -fun foo(x: String) {} -fun foo(x: String?) {} \ No newline at end of file +fun foo(x: String) {} +fun foo(x: String?) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeMappedToJava.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeMappedToJava.kt index 6d6431a9e7a..e9420cadc60 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeMappedToJava.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeMappedToJava.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN -fun foo(s: java.lang.String) {} -fun foo(s: String) {} \ No newline at end of file +fun foo(s: java.lang.String) {} +fun foo(s: String) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameter.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameter.kt index 4d00b21ee43..2d39c8d4a9b 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameter.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameter.kt @@ -1,4 +1,4 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -fun foo(x: T): T {null!!} -fun foo(x: Any): Any {null!!} \ No newline at end of file +fun foo(x: T): T {null!!} +fun foo(x: Any): Any {null!!} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithBound.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithBound.kt index 9916d29df23..cc1d3d204dc 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithBound.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithBound.kt @@ -2,5 +2,5 @@ trait Foo -fun foo(x: T): T {null!!} -fun foo(x: Foo): Foo {null!!} \ No newline at end of file +fun foo(x: T): T {null!!} +fun foo(x: Foo): Foo {null!!} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBounds.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBounds.kt index c43bd5f0d42..4ea26ecea81 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBounds.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBounds.kt @@ -3,6 +3,6 @@ trait Foo trait Bar -fun foo(x: T): T where T: Bar {null!!} -fun foo(x: Foo): Foo {null!!} +fun foo(x: T): T where T: Bar {null!!} +fun foo(x: Foo): Foo {null!!} fun foo(x: Bar): Bar {null!!} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBoundsInWhere.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBoundsInWhere.kt index 855f63c13bb..9b6fef49036 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBoundsInWhere.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/typeParameterWithTwoBoundsInWhere.kt @@ -3,6 +3,6 @@ trait Foo trait Bar -fun foo(x: T): T where T: Foo, T: Bar {null!!} -fun foo(x: Foo): Foo {null!!} +fun foo(x: T): T where T: Foo, T: Bar {null!!} +fun foo(x: Foo): Foo {null!!} fun foo(x: Bar): Bar {null!!} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/class.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/class.kt index 88365771e6c..87a989d6184 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/class.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/class.kt @@ -1,4 +1,4 @@ class C { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/classObject.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/classObject.kt index 5c3649e6348..02e5e85df17 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/classObject.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/classObject.kt @@ -1,6 +1,6 @@ class C { class object { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionFunctionAndNormalFunction.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionFunctionAndNormalFunction.kt index bd68c0d4b74..8de127f438a 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionFunctionAndNormalFunction.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionFunctionAndNormalFunction.kt @@ -1,6 +1,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class C { - fun foo(x: Any) {} - fun Any.foo() {} + fun foo(x: Any) {} + fun Any.foo() {} } diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt index ba07515e61f..eec16d6f66a 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/extensionPropertyAndFunction.kt @@ -1,7 +1,7 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class C { - fun getX(t: Any) = 1 + fun getX(t: Any) = 1 val Any.x: Int - get() = 1 + get() = 1 } diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndSetter.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndSetter.kt index eb11234c3f9..f1eb3528012 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndSetter.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndSetter.kt @@ -1,7 +1,7 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class C { - fun setX(x: Int) {} + fun setX(x: Int) {} - var x: Int = 1 + var x: Int = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndVar.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndVar.kt index ce798380d62..65fe42c20bf 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndVar.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/functionAndVar.kt @@ -1,8 +1,8 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class C { - fun setX(x: Int) {} + fun setX(x: Int) {} var x: Int = 1 - set(v) {} + set(v) {} } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/localClass.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/localClass.kt index 9dcaed95eba..8bc6f35ce07 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/localClass.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/localClass.kt @@ -1,6 +1,6 @@ fun foo() { class C { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/nestedClass.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/nestedClass.kt index 0cc1fbd0388..42626e2a0b4 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/nestedClass.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/nestedClass.kt @@ -1,6 +1,6 @@ class B { class C { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/object.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/object.kt index 7bed7f4e05a..78ca971afb9 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/object.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/object.kt @@ -1,4 +1,4 @@ object C { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/objectExpression.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/objectExpression.kt index 64c01b7da3f..d58ab0edf12 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/objectExpression.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/objectExpression.kt @@ -1,5 +1,5 @@ fun foo() = object { - val x = 1 - fun getX() = 1 + val x = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevel.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevel.kt index 1ff79768575..98820d88018 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevel.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevel.kt @@ -1,2 +1,2 @@ -val x = 1 -fun getX() = 1 \ No newline at end of file +val x = 1 +fun getX() = 1 \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelDifferentFiles.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelDifferentFiles.kt index cfe3263739b..b0c6420a9c5 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelDifferentFiles.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelDifferentFiles.kt @@ -1,5 +1,5 @@ // FILE: a.kt -val x = 1 +val x = 1 // FILE: b.kt -fun getX() = 1 \ No newline at end of file +fun getX() = 1 \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt index c697f5fbb47..8a2aced6a29 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/topLevelGetter.kt @@ -1,3 +1,3 @@ val x: Int - get() = 1 -fun getX() = 1 \ No newline at end of file + get() = 1 +fun getX() = 1 \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/trait.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/trait.kt index 55ab42329e6..b121dc589a9 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/trait.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/functionAndProperty/trait.kt @@ -1,5 +1,5 @@ trait T { val x: Int - get() = 1 - fun getX() = 1 + get() = 1 + fun getX() = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/componentInheritedFromTrait.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/componentInheritedFromTrait.kt index 97a4df2f9f8..6f56e731a16 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/componentInheritedFromTrait.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/componentInheritedFromTrait.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER data class C(val c: Int) { - fun `copy$default`(c: C, x: Int, m: Int) = 1 + fun `copy$default`(c: C, x: Int, m: Int) = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/defaults.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/defaults.kt index e466848001d..80d9e05b14c 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/defaults.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/defaults.kt @@ -1,6 +1,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -class C { - fun `a$default`(c: C, x: Int, m: Int) {} +class C { + fun `a$default`(c: C, x: Int, m: Int) {} fun a(x: Int = 1) {} } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt index 1578fb68f0b..10bc56cc3f6 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/delegationBy.kt @@ -1,5 +1,5 @@ trait Foo class Bar(f: Foo) : Foo by f { - val `$delegate_0`: Foo? = null + val `$delegate_0`: Foo? = null } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt index 831eb4c7ee1..2b8f91b2fa1 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/specialNames/innerClassField.kt @@ -1,7 +1,7 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER class C { - inner class D { - val `this$0`: C? = null + inner class D { + val `this$0`: C? = null } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/oneTrait.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/oneTrait.kt index 3ca8556c082..f8bb39a3159 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/oneTrait.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/oneTrait.kt @@ -3,5 +3,5 @@ trait T { } class C : T { - val x = 1 + val x = 1 } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/twoTraits.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/twoTraits.kt index e277212ad58..8d7b75be4bd 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/twoTraits.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/traitImpl/twoTraits.kt @@ -7,5 +7,5 @@ trait T2 { get() = 1 } -class C : T1, T2 { +class C : T1, T2 { } \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java index 9a593b41233..cb7bf924153 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/IdeErrorMessages.java @@ -16,6 +16,7 @@ package org.jetbrains.jet.plugin.highlighter; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.rendering.DefaultErrorMessages; import org.jetbrains.jet.lang.diagnostics.rendering.DiagnosticFactoryToRendererMap; @@ -36,7 +37,7 @@ import static org.jetbrains.jet.plugin.highlighter.IdeRenderers.*; */ public class IdeErrorMessages { public static final DiagnosticFactoryToRendererMap MAP = new DiagnosticFactoryToRendererMap(); - public static final DiagnosticRenderer RENDERER = new DispatchingDiagnosticRenderer(MAP, DefaultErrorMessages.MAP); + public static final DiagnosticRenderer RENDERER = new DispatchingDiagnosticRenderer(ContainerUtil.concat(true, DefaultErrorMessages.MAPS, MAP)); static { MAP.put(TYPE_MISMATCH, "Type mismatch.
Required:{0}
Found:{1}
",