Exclude annotation properties in 'explicit visibility' api mode check
#KT-37432 fixed
This commit is contained in:
+2
@@ -77,6 +77,7 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
|
|||||||
* 2. Properties of data classes in public API
|
* 2. Properties of data classes in public API
|
||||||
* 3. Overrides of public API. Effectively, this means 'no report on overrides at all'
|
* 3. Overrides of public API. Effectively, this means 'no report on overrides at all'
|
||||||
* 4. Getters and setters (because getters can't change visibility and setter-only explicit visibility looks ugly)
|
* 4. Getters and setters (because getters can't change visibility and setter-only explicit visibility looks ugly)
|
||||||
|
* 5. Properties of annotations in public API
|
||||||
*
|
*
|
||||||
* Do we need something like @PublicApiFile to disable (or invert) this inspection per-file?
|
* Do we need something like @PublicApiFile to disable (or invert) this inspection per-file?
|
||||||
*/
|
*/
|
||||||
@@ -85,6 +86,7 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
|
|||||||
/* 2. */ if (descriptor is PropertyDescriptor && (descriptor.containingDeclaration as? ClassDescriptor)?.isData == true) return true
|
/* 2. */ if (descriptor is PropertyDescriptor && (descriptor.containingDeclaration as? ClassDescriptor)?.isData == true) return true
|
||||||
/* 3. */ if ((descriptor as? CallableDescriptor)?.overriddenDescriptors?.isNotEmpty() == true) return true
|
/* 3. */ if ((descriptor as? CallableDescriptor)?.overriddenDescriptors?.isNotEmpty() == true) return true
|
||||||
/* 4. */ if (descriptor is PropertyAccessorDescriptor) return true
|
/* 4. */ if (descriptor is PropertyAccessorDescriptor) return true
|
||||||
|
/* 5. */ if (descriptor is PropertyDescriptor && (descriptor.containingDeclaration as? ClassDescriptor)?.kind == ClassKind.ANNOTATION_CLASS) return true
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
)
|
)
|
||||||
public annotation class B
|
public annotation class B
|
||||||
|
|
||||||
|
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>annotation class C<!>(val a: String)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Foo1 KDoc
|
* Foo1 KDoc
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -13,4 +13,8 @@ public class Bar3 {
|
|||||||
* Nested object KDoc
|
* Nested object KDoc
|
||||||
*/
|
*/
|
||||||
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>object NestedObject<!> {}
|
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>object NestedObject<!> {}
|
||||||
|
}
|
||||||
|
|
||||||
|
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>data class FooData2<!>(val i: Int, val s: String) {
|
||||||
|
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>object NestedObject<!> {}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user