Introduce KAnnotatedElement and val annotations: List<Annotation>

This commit is contained in:
Alexander Udalov
2015-07-24 03:09:36 +03:00
parent d1e67805fc
commit 2eb5201575
21 changed files with 246 additions and 6 deletions
@@ -0,0 +1,29 @@
/*
* Copyright 2010-2015 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 kotlin.reflect
/**
* Represents an annotated element and allows to obtain its annotations.
* See the [Kotlin language documentation](http://kotlinlang.org/docs/reference/annotations.html)
* for more information.
*/
public interface KAnnotatedElement {
/**
* Annotations which are present on this element.
*/
public val annotations: List<Annotation>
}
@@ -21,7 +21,7 @@ package kotlin.reflect
*
* @param R return type of the callable.
*/
public interface KCallable<out R> {
public interface KCallable<out R> : KAnnotatedElement {
/**
* The name of this callable as it was declared in the source code.
* If the callable has no name, a special invented name is created.
+1 -1
View File
@@ -24,7 +24,7 @@ package kotlin.reflect
*
* @param T the type of the class.
*/
public interface KClass<T> : KDeclarationContainer {
public interface KClass<T> : KDeclarationContainer, KAnnotatedElement {
/**
* The simple name of the class as it was declared in the source code,
* or `null` if the class has no name (if, for example, it is an anonymous object literal).
@@ -20,7 +20,7 @@ package kotlin.reflect
* Represents a parameter passed to a function or a property getter/setter,
* including `this` and extension receiver parameters.
*/
public interface KParameter {
public interface KParameter : KAnnotatedElement {
/**
* 0-based index of this parameter in the parameter list of its containing callable.
*/