Denis Zharkov
6b92f67eac
Load raw types as platform with specific bounds
...
Raw(A<T_i>) = (A<UP(T_i)>..A<*>)
Raw types have specific scopes that behaves like JVM signature erasure
2015-07-31 17:33:21 +03:00
Denis Zharkov
0fba28a8f0
Do not retrieve parent of FQname for root
...
#KT-8642 Fixed
2015-07-31 17:33:20 +03:00
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
Alexander Udalov
a93484b457
Fix callable reference to member of generic class
2015-07-29 23:44:19 +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
7fc499df46
Support KClass.primaryConstructor
2015-07-29 21:36:46 +03:00
Alexander Udalov
e079b8f425
Support KCallable.call
...
#KT-2187 Fixed
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
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
Mikhail Glukhikh
41500c916b
java Retention + Repeatable = kotlin.annotation.annotation (but java Repeatable is still intact), a few tests
2015-07-29 16:28:36 +03:00
Mikhail Glukhikh
10ba9c7264
Repeatable test renamed
2015-07-29 16:28:33 +03:00
Mikhail Glukhikh
a072550931
Class is an annotation iff it is annotated by kotlin.annotation.annotation, or is kotlin.annotation.annotation itself.
...
JetClassOrObject.isAnnotation() is no more in use during resolve. Additional test.
2015-07-29 16:28:26 +03:00
Mikhail Glukhikh
dbf6da89b7
java.lang.annotation.Repeatable is deprecated + test in a new group: diagnostic tests with Java 8.
2015-07-28 19:03:55 +03:00
Mikhail Glukhikh
a86857fbb5
Java Deprecated is mapped in accordance with Java Target / Retention, some diagnostic changed
2015-07-28 17:13:37 +03:00
Mikhail Glukhikh
d6406d8d4a
Annotation repetition checking with a pair of tests, some old tests changes
2015-07-28 17:13:32 +03:00
Mikhail Glukhikh
8beafe90a0
Retention / target for some standard annotations
2015-07-28 17:13:29 +03:00
Dmitry Petrov
a64f1a86c0
Fix KT-8608: Compiler crashes with assertion Restore stack is unavailable
...
- fix SAVE_STACK_BEFORE_TRY insertion:
TRYCATCHBLOCK LA, LB, LC
LA
NOP
try_body
LB
...
LC
handler_body
should be transformed into:
LA
{SAVE_STACK_BEFORE_TRY}
LA' // new TCB start label
NOP
try_body
LB
...
LC
handler_body
with all TCBs start labels remapped
- properly wrap exceptions from MandatoryMethodTransformer
#KT-8608 Fixed
2015-07-27 10:40:14 +03:00
Ilya Gorbunov
8892192e9c
Generate openRange tests for compiler.
...
#KT-4665
2015-07-24 04:13:53 +03:00
Mikhail Glukhikh
11f87e6ca1
No more java Target / Retention loaded. Render java Retention / Target. Related test changes.
2015-07-22 19:00:39 +03:00
Mikhail Glukhikh
c2480d1183
Java to Kotlin annotation retention mapping + new test + JvmLoader test adaptation
2015-07-22 19:00:26 +03:00
Pavel V. Talanov
4e0d2bc23c
CompileTimeConstantUtils: use getConstant instead of evaluate
...
Hacky way to avoid passing builtins into this code
2015-07-21 20:52:43 +03:00
Pavel V. Talanov
add8387141
Fix some problems with jsCode function
...
1. Fix a bug in frontend when passing non-String constant led to exception
2. Fix a bug in backend when passing non-JetStringTeplate string constant led to exception
3. Avoid recomputing constant argument in backend
2015-07-21 20:52:42 +03:00
Dmitry Petrov
6437a4bdc6
Support overload ambiguity resolution for callable references by expected type.
...
Resolve callable references taking into account expected callable types.
This affects call resolution procedure (resolve 'foo' in for 'foo(::bar)') similar to the approach used for function literals:
* During "shape arguments" phase of call resolution, callable references are resolved in independent context without expected type. If the callable reference is ambiguous, its shape type is a function placeholder type without parameter types and return type information. Otherwise, it is a reflection type for the resolved function or property. Upper-level call is resolved without taking into account ambiguous callable references.
* During "complete call" phase of call resolution, resolve callable reference arguments to actual descriptors (if possible), and update constraint system for the given call accordingly.
#KT-6982 Fixed
#KT-5780 Fixed
2015-07-21 18:33:15 +03:00
Mikhail Glukhikh
94a00540be
Targeting / retention for a set of standard annotations, some inapplicable annotation checks replaced with target check, some fixed tests
2015-07-21 15:36:53 +03:00
Mikhail Glukhikh
9e7a67fabf
Warning about java.lang.annotation.Target annotation usage
2015-07-21 15:20:37 +03:00
Mikhail Glukhikh
1309c1f95f
Annotation mapper is introduced to map java annotation targets to kotlin targets + a set of new / fixed tests
2015-07-21 15:20:31 +03:00
Denis Zharkov
3ec00114c0
Check type of elvis with expected type info
...
#KT-6713
2015-07-21 15:16:06 +03:00
Denis Zharkov
58e7923218
Use substituted return type for SAM adapeter of constructor
...
#KT-7282 Fixed
2015-07-21 15:16:06 +03:00
Denis Zharkov
97af85da9c
Change default upper bound of Java type parameters to Any!
...
#KT-7672 Fixed
2015-07-21 15:16:05 +03:00
Valentin Kipyatkov
4ec26de2a8
Changes on code review
2015-07-21 08:32:51 +03:00
Valentin Kipyatkov
31b7c33fa8
No need to scan base classes
2015-07-21 08:32:51 +03:00
Valentin Kipyatkov
1c52f8a524
Fixed synthetic properties for method inherited from two bases
2015-07-21 08:32:51 +03:00
Valentin Kipyatkov
612c009f6b
Synthetic properties: correct behaviour for method hierarchies
2015-07-21 08:32:51 +03:00
Valentin Kipyatkov
367e294452
No synthetic properties in java class for methods inherited from Kotlin
2015-07-21 08:32:50 +03:00
Valentin Kipyatkov
d2fb7381ce
Tested one more case
2015-07-21 08:32:50 +03:00
Valentin Kipyatkov
4a8adacedd
Changed policy for properties from methods like "getURL()""
2015-07-21 08:32:50 +03:00
Valentin Kipyatkov
23cfe88b71
KT-8530 Synthetic properties doesn't work with smart casts
...
#KT-8530 Fixed
2015-07-21 08:32:50 +03:00
Valentin Kipyatkov
b6027a0efe
Changed synthetic properties naming for getters starting with "is"
2015-07-21 08:32:49 +03:00