Commit Graph

24453 Commits

Author SHA1 Message Date
Dmitry Petrov 9bf0211152 KT-8408 Prohibit Array<T>::class for non-reified T 2015-07-30 12:18:29 +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
Andrey Breslav 0b30758987 Specification for annotation options (initial version).
target, retention, repeatable, documented. 'annotation' is an annotation declared in kotlin.annotation.
'target' is also an annotation with vararg argument. All others are 'annotation' properties.
2015-07-30 12:00:27 +03:00
Dmitry Jemerov 6d1ccc22ab reduce vertical whitespace in rendered KDoc comments 2015-07-30 10:38:16 +02:00
Dmitry Jemerov b483713f2c Render code blocks in KDoc 2015-07-30 10:38:15 +02:00
Dmitry Jemerov 909d094896 Fixed rendering of line breaks and apostrophes in KDoc
#KT-8531 Fixed
 #KT-8392 Fixed
2015-07-30 10:38:14 +02:00
Natalia Ukhorskaya ff0a064908 Debugger: Implement SourcePositionHighlighter to highlight lambda expressions during debug 2015-07-30 10:00:27 +03:00
Natalia Ukhorskaya ad6611b930 J2K: If last expression in Method Call is Lambda add it outside the parenthesis 2015-07-30 10:00:26 +03:00
Natalia Ukhorskaya 40d2fd7994 J2K: Do not skip any unknown expression 2015-07-30 10:00:26 +03:00
Natalia Ukhorskaya 28f0866467 J2K: Convert Java8 lambdas properly
#KT-7149 Fixed
2015-07-30 10:00:26 +03:00
Natalia Ukhorskaya 8759601ef6 J2K: extract base class for Parameter 2015-07-30 10:00:25 +03:00
Natalia Ukhorskaya f713e66484 Minor: move methods 2015-07-30 10:00:25 +03:00
Natalia Ukhorskaya 3ab53eb5e3 Minor: change parameters order 2015-07-30 10:00:24 +03:00
Natalia Ukhorskaya c86b25b1dc Make j2k depends on idea-core instead of idea-full 2015-07-30 10:00:24 +03:00
Natalia Ukhorskaya 22ee063269 Add platformStatic annotation to main method from java
#KT-8219 Fixed
2015-07-30 10:00:24 +03:00
Natalia Ukhorskaya b54da25108 J2K: do not convert doc comments on WebDemo
#KT-7968 Fixed
2015-07-30 10:00:23 +03:00
Alexander Udalov ae277a0ad7 Delete RemovableSlice and MutableSlicedMap.remove 2015-07-29 23:44:25 +03:00
Alexander Udalov 96ded4d5d2 Simplify slices: remove SliceWithOpposite, defaultValue, etc. 2015-07-29 23:44:24 +03:00
Alexander Udalov 9a0e322c51 Minor refactoring in Kotlin binary class resolution 2015-07-29 23:44:23 +03:00
Alexander Udalov 0d9b60dcbc Fix "Class name must not be root" assertion + inline some utilities
Fix EA-60649, EA-65875; do not lookup classes with an empty name.
No test added since no steps to reproduce are known
2015-07-29 23:44:22 +03:00
Alexander Udalov 98b057f495 Don't look for classes with empty or special name in deserialized scope
Fix EA-59962, EA-64281, EA-65698. No new tests added because the only repro
reported as KT-8187 now fails with another (much more understandable though)
exception

 #KT-8187 Open
2015-07-29 23:44:21 +03:00
Alexander Udalov d0e21c53d4 Minor, pull 'name' up to KPropertyImpl 2015-07-29 23:44:20 +03:00
Alexander Udalov a93484b457 Fix callable reference to member of generic class 2015-07-29 23:44:19 +03:00
Alexander Udalov 49a8c7a947 Drop BindingContext.ANNOTATION_DESCRIPTOR_TO_PSI_ELEMENT
Use AnnotationDescriptor.getSource() instead
2015-07-29 23:44:19 +03:00
Alexander Udalov d0562b7b90 Add SourceElement to AnnotationDescriptor
Use KotlinSourceElement in the compiler for annotations resolved from PSI,
introduce ReflectAnnotationSource for reflection
2015-07-29 23:44:18 +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 95be8b11f5 Don't write JetValueParameter to the bytecode
The class itself can't be deleted at this point because it's used in the old
bytecode and tools (e.g. proguard) will complain if they can't find it in the
new runtime
2015-07-29 21:36:39 +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
Alexander Udalov 50dbda1e1a Introduce KClass.members, make properties/extensionProperties extensions
To avoid significant growth of KClass and KPackage interfaces
2015-07-29 21:36:36 +03:00
Alexander Udalov 2492977274 Additional tests on reflection for Java methods 2015-07-29 21:36:35 +03:00
Alexander Udalov 5962b79126 Support introspection of parameter names and indices in reflection 2015-07-29 21:36:34 +03:00
Alexander Udalov 87c70aa2ae Make Class<*>.kotlinPackage nullable 2015-07-29 21:36:33 +03:00
Pavel V. Talanov 0513994749 Minor: remove "? extends" when injecting iterable into java class 2015-07-29 17:09:41 +03:00