Commit Graph

4062 Commits

Author SHA1 Message Date
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
Valentin Kipyatkov e8dc9ede31 Implemented HiddenDeclaration annotation (doc-comment to be added!) 2015-08-29 10:54:59 +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 9882e86ecb Don't render contents of enum entry classes in .txt tests, regenerate tests
They are irrelevant because cannot be accessed from the outside anyway
2015-08-28 21:11:06 +03:00
Alexander Udalov 29abf94327 Prohibit clone() for enum classes
#KT-8972 Fixed
2015-08-28 21:11:02 +03:00
Alexander Udalov 89f3cfc704 Support parameter names for Java 8 classes in reflection
Also support specifying additional options to javac in codegen tests, which was
needed to compile Java sources with the "-parameters" option
2015-08-28 21:11:01 +03:00
Denis Zharkov e8f91e596c Adjust test data after fixes about generic nullability 2015-08-28 18:50:26 +03:00
Denis Zharkov 5e09a0c2c9 Add some test cases after review 2015-08-28 18:50:25 +03:00
Denis Zharkov b471767e03 Refine smart cast check for type parameters 2015-08-28 18:50:25 +03:00
Denis Zharkov aad977d204 Properly check whether nullability of receiver argument fits to parameter's nullability
It's should behave like we check isSubtype(receiverType, parameterType) + use nullability info from smart cast

 #KT-1090 Fixed
2015-08-28 18:50:25 +03:00
Denis Zharkov 6ecfa6e985 Refine subtyping check: pay attention to corresponding supertype nullability
F: Any, T : F? => !isSubtype(T, Any)

It helps to identify upper bounds violation like in KT-7455

 #KT-7455 Fixed
 #KT-2924 Fixed
 #KT-3015 Fixed
2015-08-28 18:50:25 +03:00
Denis Zharkov a906be6dd7 Prohibit using null as a value of generic type
#KT-7350 Fixed
 #KT-7736 Fixed
 #KT-7485 Fixed
2015-08-28 18:50:25 +03:00
Yan Zhulanow 0c87639514 Fix annotation list parsing: @identifier:[a b c] 2015-08-27 18:16:06 +03:00
Stanislav Erokhin d92e71861e Changed JetScope to LexicalScope in ClassDescriptorWithResolutionScopes and DeclarationScopeProvider 2015-08-27 12:01:13 +03:00
Stanislav Erokhin 2a0159f23b Created JetScope.memberScopeAsFileScope() 2015-08-27 12:01:11 +03:00
Stanislav Erokhin 9a435e332f Fix InnerClassesScopeWrapper - remove properties and functions from this scope. 2015-08-27 12:01:07 +03:00
Alexander Udalov 56e12787a8 Fix exception on overridding var-property with a val constructor parameter
#KT-3810 Fixed
2015-08-27 10:23:49 +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
Stanislav Erokhin abb18b7bb9 KT-8861 Package name vs property with wrong receiver
#KT-8861 Fixed
2015-08-25 20:43:52 +03:00
Dmitry Jemerov 4743a69d76 rename platformName annotation to jvmName 2015-08-25 15:40:46 +02:00
Alexander Udalov 7dcb690254 Additional tests on reflection calls 2015-08-24 01:29:58 +03:00
Alexander Udalov ccb58d8601 Minor, add some tests on get/set/name/instanceof for properties w/o reflection 2015-08-24 01:29:58 +03:00
Alexander Udalov df76695e72 Somewhat improve 'incomplete hierarchy' diagnostic message 2015-08-24 01:29:57 +03:00
Alexander Udalov 9095fa2844 Make PropertyMetadataImpl a data class
To allow property delegates to use property metadata as a key in the hash map,
and to improve debugging experience
2015-08-24 01:29:57 +03:00
Dmitry Jemerov 341f09afd3 rename platformStatic to jvmStatic 2015-08-21 16:59:05 +02:00
Stanislav Erokhin 2ee8f1c454 Change outer scope for nested class and object -- removed implicit outer class receiver.
#KT-5362 Fixed
#KT-8814 Fixed
2015-08-18 21:26:42 +03:00
Evgeny Gerashchenko 50dbf080f7 Test for KT-2082 Missing 'Unused expression' warning
#KT-2082 obsolete
2015-08-15 12:29:41 +02:00
Valentin Kipyatkov 468919f5d9 Fixed codegen crash on use of protected synthetic extension property 2015-08-12 18:17:09 +03:00
Ilya Ryzhenkov a717afd9db Fix NPE in checkLValue when selector is absent. Add test for incomplete syntax. 2015-08-12 17:08:16 +03:00
Dmitry Petrov b59bf6227f unqualified super: should be able to invoke methods of Any without extra hassle
when Any is an implicit immediate superclass
2015-08-12 12:14:14 +03:00
Valentin Kipyatkov e3bca3010c Fixed infinite recursion 2015-08-11 13:21:57 +03:00
Valentin Kipyatkov 7f42c8b482 No report of wrong class literal for unresolved 2015-08-11 13:21:57 +03:00
Valentin Kipyatkov ceae7eda39 Fixed test data 2015-08-11 13:21:56 +03:00
Mikhail Glukhikh 3f14e74b08 Drop old enum syntax. Comma / semicolon are now a syntactic part of enum entry.
Comma must present now between enum entries, semicolon between last entry & first member, constructor calls must be without colons / specifiers.
A swarm of tests fixed accordingly.
2015-08-11 10:38:10 +03:00
Mikhail Glukhikh b2653ad1e9 Deprecated enum syntax removed: most compiler tests 2015-08-10 16:24:12 +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 9f2feb1d27 Set failOnError = true by default in kotlinc Ant task as in javac
#KT-8742 Fixed
2015-08-06 22:38:41 +03:00