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 7220eba9aec..a54b07d2b52 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -217,7 +217,7 @@ public interface Errors { DiagnosticFactory2 DATA_CLASS_OVERRIDE_CONFLICT = DiagnosticFactory2.create(ERROR); - DiagnosticFactory0 CANNOT_INFER_VISIBILITY = DiagnosticFactory0.create(ERROR, DECLARATION); + DiagnosticFactory1 CANNOT_INFER_VISIBILITY = DiagnosticFactory1.create(ERROR, DECLARATION); DiagnosticFactory2 OVERRIDING_FINAL_MEMBER = DiagnosticFactory2.create(ERROR, OVERRIDE_MODIFIER); 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 5edc371a331..027c19ed869 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 @@ -152,7 +152,7 @@ public class DefaultErrorMessages { MAP.put(CANNOT_OVERRIDE_INVISIBLE_MEMBER, "''{0}'' has no access to ''{1}'', so it cannot override it", FQ_NAMES_IN_TYPES, FQ_NAMES_IN_TYPES); - MAP.put(CANNOT_INFER_VISIBILITY, "Cannot infer visibility. Please specify it explicitly"); + MAP.put(CANNOT_INFER_VISIBILITY, "Cannot infer visibility for ''{0}''. Please specify it explicitly", COMPACT); MAP.put(ENUM_ENTRY_SHOULD_BE_INITIALIZED, "Missing delegation specifier ''{0}''", NAME); MAP.put(ENUM_ENTRY_ILLEGAL_TYPE, "The type constructor of enum entry should be ''{0}''", NAME); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java index 74a3bdfdf31..ae8e8f743b7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java @@ -190,7 +190,7 @@ public class OverrideResolver { //noinspection ConstantConditions PsiElement element = BindingContextUtils.descriptorToDeclaration(trace.getBindingContext(), reportOn); if (element instanceof JetDeclaration) { - trace.report(CANNOT_INFER_VISIBILITY.on((JetDeclaration) element)); + trace.report(CANNOT_INFER_VISIBILITY.on((JetDeclaration) element, descriptor)); } return Unit.VALUE; } diff --git a/idea/testData/diagnosticMessage/cannotInferVisibility.kt b/idea/testData/diagnosticMessage/cannotInferVisibility.kt new file mode 100644 index 00000000000..9c492cfa864 --- /dev/null +++ b/idea/testData/diagnosticMessage/cannotInferVisibility.kt @@ -0,0 +1,12 @@ +// !DIAGNOSTICS_NUMBER: 1 +// !DIAGNOSTICS: CANNOT_INFER_VISIBILITY + +trait T { + internal val foo: String +} + +trait U { + protected val foo: String +} + +trait V : T, U diff --git a/idea/testData/diagnosticMessage/cannotInferVisibility1.txt b/idea/testData/diagnosticMessage/cannotInferVisibility1.txt new file mode 100644 index 00000000000..05920f8ccda --- /dev/null +++ b/idea/testData/diagnosticMessage/cannotInferVisibility1.txt @@ -0,0 +1,2 @@ + +Cannot infer visibility for 'val foo: kotlin.String'. Please specify it explicitly \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/highlighter/DiagnosticMessageTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/highlighter/DiagnosticMessageTestGenerated.java index fb2309f084c..34a4a00e599 100644 --- a/idea/tests/org/jetbrains/jet/plugin/highlighter/DiagnosticMessageTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/highlighter/DiagnosticMessageTestGenerated.java @@ -41,6 +41,11 @@ public class DiagnosticMessageTestGenerated extends AbstractDiagnosticMessageTes doTest("idea/testData/diagnosticMessage/assignedButNeverAccessedVariable.kt"); } + @TestMetadata("cannotInferVisibility.kt") + public void testCannotInferVisibility() throws Exception { + doTest("idea/testData/diagnosticMessage/cannotInferVisibility.kt"); + } + @TestMetadata("cannotOverrideInvisibleMember.kt") public void testCannotOverrideInvisibleMember() throws Exception { doTest("idea/testData/diagnosticMessage/cannotOverrideInvisibleMember.kt");