Yan Zhulanow
3624c4e5dc
Use target priorities to split annotations to different descriptors
2015-08-31 15:33:05 +03:00
Alexander Udalov
fb09c91714
Minor, rename PlatformStatic* -> JvmStatic* in reflection
2015-08-29 18:42:09 +03:00
Alexander Udalov
a1097f7081
Add val KClass.staticProperties: Collection<KProperty0<*>>
...
To get static fields from Java classes
2015-08-29 18:37:41 +03:00
Alexander Udalov
593937d302
Support KCallable.callBy with map of parameters to arguments
...
callBy is able to handle optional parameters.
#KT-8827 Fixed
2015-08-29 18:37:40 +03:00
Alexander Udalov
0d62680f63
Support KParameter.isOptional
...
#KT-8825 Fixed
2015-08-29 18:37:39 +03:00
Alexander Udalov
fd97383f8a
Fix mapping of jvmStatic functions
...
#KT-8800 Fixed
2015-08-29 18:37:38 +03:00
Alexander Udalov
9a8cf23ed4
Support KClass.companionObject and companionObjectInstance
...
#KT-7636 Fixed
2015-08-29 18:37:32 +03:00
Alexander Udalov
94d45f35d4
Support KClass.nestedClasses
2015-08-29 17:59:45 +03:00
Alexander Udalov
7c28a2e732
Support KClass.defaultType
2015-08-28 21:22:11 +03:00
Alexander Udalov
ea8fe56704
Include property type to KProperty.toString
2015-08-28 21:11:31 +03:00
Alexander Udalov
d36ef90dd6
Provide equals/hashCode/toString for KParameter implementation
...
Two KParameter instances are equal iff their backing descriptors are equal and
their callables are equal
2015-08-28 21:11:30 +03:00
Alexander Udalov
d4825cf4f0
Support KParameter.kind: instance, extension receiver, or value
2015-08-28 21:11:22 +03:00
Alexander Udalov
a73d02418d
Introduce additional API for introspecting functions
...
memberFunctions, declaredMemberFunctions, staticFunctions, etc.
#KT-8797 Fixed
2015-08-28 21:11:21 +03:00
Alexander Udalov
ebe4a8ec89
Provide equals/hashCode/toString for KType implementation
2015-08-28 21:11:20 +03:00
Alexander Udalov
30967baca8
Minor, rename extension property to avoid name clash
2015-08-28 21:11:00 +03:00
Denis Zharkov
4a3fbcc16e
Make project compilable after fixes about generic nullability
2015-08-28 18:50:26 +03:00
Alexander Udalov
8d9618348d
Move .java and .kotlin extension properties to kotlin.jvm
...
Delete the old ones in package kotlin.reflect.jvm because otherwise the code
using those functions will become red in a lot less meaningful way (overload
resolution ambiguity) than if they're deleted (unresolved import)
Based on the work originally done by @dnpetrov
#KT-8380 Fixed
2015-08-27 08:19:50 +03:00
Alexander Udalov
9f7cb752db
Minor, rename KCallableContainerImpl -> KDeclarationContainerImpl
...
Also rename DeclarationContainerImpl -> ClassBasedDeclarationContainer and make
non-public
2015-08-24 01:29:57 +03:00
Dmitry Jemerov
341f09afd3
rename platformStatic to jvmStatic
2015-08-21 16:59:05 +02:00
Zalim Bashorov
bcacef7bb9
Move all NoLookupLocation instances to the one place to make them more discoverable and close constructor
2015-08-18 12:34:17 +03:00
Zalim Bashorov
0ca9c6fd40
Introduce NoLookupLocation and some new constants to classify LookupLocation.NO_LOCATION usages
2015-08-18 12:21:30 +03:00
Alexander Udalov
0d0ccfef8c
Refactor and simplify FunctionCaller
2015-08-07 00:55:44 +03:00
Alexander Udalov
d3e39812cb
Support mapping of KType to j.l.reflect.Type
2015-08-07 00:55:35 +03:00
Alexander Udalov
49b689f883
Do not allow to assign null to a non-null property via reflection
...
This was already working for accessor-based properties because the assertions
were already generated into corresponding accessors, but for fields we must
manually check the value against null
2015-08-07 00:55:33 +03:00
Alexander Udalov
3091f2af3b
Report argument number mismatch nicely on wrong 'call()' invocation
...
The default Java reflection message in such case is not very helpful: "wrong
number of arguments"
2015-08-07 00:55:32 +03:00
Alexander Udalov
9c522b4d49
Refactor property calls in reflection, fix some corner cases
...
- compute a FunctionCaller instance for getter and setter so that "call" only
delegates to that FunctionCaller's "call", in the same way it's done in
KFunctionImpl
- use RuntimeTypeMapper.mapPropertySignature to get the exact origin and
signature of a property and its accessors. This makes unwrapFakeOverride call
unnecessary and also fixes some cases like private Java fields
- temporarily drop custom range checks, will be re-added soon
2015-08-07 00:55:30 +03:00
Alexander Udalov
a91729e041
Fix isAccessible for property accessors
2015-08-07 00:55:30 +03:00
Alexander Udalov
6878453d44
Support KClass.objectInstance for objects and companion objects
2015-08-03 23:33:21 +03:00
Alexander Udalov
2eb5201575
Introduce KAnnotatedElement and val annotations: List<Annotation>
2015-08-03 23:32:23 +03:00
Alexander Udalov
a0cc313156
Support class reference expression for reified type parameters
...
Also make KClass::java an intrinsic property.
Based on the work by @dnpetrov
#KT-6976 Fixed
2015-07-30 12:18:28 +03:00
Alexander Udalov
628bb774fd
Support class reference expressions without kotlin-reflect.jar in classpath
...
Currently not much you can do with them, but in the future '.java' extension
property will allow to get the Class instance from it.
Also introduce codegen tests with stdlib but without reflection in the
classpath.
Based on the work by @dnpetrov
2015-07-30 12:18:28 +03:00
Alexander Udalov
d0e21c53d4
Minor, pull 'name' up to KPropertyImpl
2015-07-29 23:44:20 +03:00
Alexander Udalov
ef4a5e78ed
Catch IllegalAccessException in KFunction.call
...
Rename IllegalPropertyAccessException -> IllegalCallableAccessException
2015-07-29 21:36:51 +03:00
Alexander Udalov
262099c899
Fix KFunction.javaMethod for property accessors
2015-07-29 21:36:50 +03:00
Alexander Udalov
9c4ba711b8
Rename and implement KProperty.accessible -> KCallable.isAccessible
2015-07-29 21:36:49 +03:00
Alexander Udalov
8f0885ca03
Rename KClass.properties and extensionProperties: prepend 'member'
...
To better emphasize the fact that all returned properties require an instance
of the class they are declared in. Another issue was that
'Some::class.extensionProperties' was sometimes incorrectly perceived as
"get all extension properties available on the class Some"
2015-07-29 21:36:47 +03:00
Alexander Udalov
6b24cfa3e4
Deprecate val Field.kotlin due to poor name in favor of kotlinProperty
2015-07-29 21:36:47 +03:00
Alexander Udalov
7fc499df46
Support KClass.primaryConstructor
2015-07-29 21:36:46 +03:00
Alexander Udalov
699a801ce9
Add KCallable.returnType
2015-07-29 21:36:45 +03:00
Alexander Udalov
be77a2feee
Fix KCallable.call for equals/hashCode/toString
...
Other built-in functions should be supported in the same way one day
2015-07-29 21:36:44 +03:00
Alexander Udalov
681c45ef61
Refactor KFunctionImpl internals, get rid of unwrapFakeOverride
2015-07-29 21:36:44 +03:00
Alexander Udalov
4c0caad79a
Refactor RuntimeTypeMapper, introduce JVM signature classes
...
Currently only used to obtain the string identical to the one which would be
produced by JetTypeMapper.mapSignature, but soon will be used to obtain
corresponding reflection objects from classes
2015-07-29 21:36:43 +03:00
Alexander Udalov
e079b8f425
Support KCallable.call
...
#KT-2187 Fixed
2015-07-29 21:36:42 +03:00
Alexander Udalov
ffe32e0b6d
Simplify RuntimeTypeMapper, use Java reflection to get erased types
2015-07-29 21:36:42 +03:00
Alexander Udalov
936bede8b1
Support mapping between Kotlin functions and JVM methods/constructors
2015-07-29 21:36:41 +03:00
Alexander Udalov
93656c93c1
Support KPackage.members, functions and properties
2015-07-29 21:36:40 +03:00
Alexander Udalov
6ab1c6bfb3
Add KParameter.type, KType, KType.isMarkedNullable
2015-07-29 21:36:38 +03:00
Alexander Udalov
b0db9c5b03
Fix reflection on enhanced Java methods, call getOriginal()
...
Also use the provided mechanism for binding overrides instead of a custom for
loop, because it also binds corresponding value parameters
2015-07-29 21:36:38 +03:00
Alexander Udalov
81ef1c19d8
Support KClass.constructors in reflection
2015-07-29 21:36:37 +03:00
Alexander Udalov
da5cffdb60
Support KClass.functions and declaredFunctions
2015-07-29 21:36:36 +03:00