Zalim Bashorov
41449c107e
Location.NOWHERE -> UsageLocation.NO_LOCATION
2015-07-21 22:27:25 +03:00
Zalim Bashorov
0f92036353
Add location parameter to JetScope::getFunctions
2015-07-21 22:27:25 +03:00
Dmitry Jemerov
a73df901ae
code cleanup: frontend.java module
2015-07-21 16:20:55 +02: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
Denis Zharkov
53edb83a56
Minor. More strict precondition for SAM adapter creation
...
Descriptor should be initialized before creating SAM adapter
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
e0e7044032
Synthetic properties: fixed completion and inspection for generic class
...
+ fixed KT-8539 No completion of generic extension function for <*> type arguments
#KT-8539 Fixed
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
Valentin Kipyatkov
08ac0ae7a0
Renamed classes
2015-07-21 08:32:49 +03:00
Ilya Ryzhenkov
84236992cb
Replace Injected properties with constructor parameters when it doesn't cause cycles
2015-07-20 20:58:19 +03:00
Ilya Ryzhenkov
76b9ac0f63
FileScopeProviderImpl dependencies
2015-07-20 20:58:18 +03:00
Pavel V. Talanov
2896ec67ba
Support synthetic java properties in REPL
...
Use brand new iterable injection
2015-07-16 18:05:44 +03:00
Valentin Kipyatkov
867b0b5075
Renamed class
2015-07-16 13:49:22 +03:00
Pavel V. Talanov
a740b60134
Temporary workaround until iterable injection is supported in di
...
Synthetic accessors won't work in REPL until this is fixed
2015-07-16 13:49:21 +03:00
Valentin Kipyatkov
d743924be9
Changed signatures
2015-07-16 13:49:21 +03:00
Valentin Kipyatkov
8f3650ebdb
Minor
2015-07-16 13:49:21 +03:00
Valentin Kipyatkov
f5e7483d19
Renames
2015-07-16 13:49:21 +03:00
Valentin Kipyatkov
28e9fbf9b8
Correct synthetic extensions for methods like "getURL"
2015-07-16 13:49:18 +03:00
Valentin Kipyatkov
22e631dda3
Naming with "is" supported for synthetic extensions
2015-07-16 13:49:18 +03:00
Valentin Kipyatkov
42678bc79a
Minor optimization
2015-07-16 13:49:17 +03:00
Valentin Kipyatkov
962bef6584
Moved methods
2015-07-16 13:49:17 +03:00
Valentin Kipyatkov
a08fe96a8b
Renamed methods
2015-07-16 13:49:16 +03:00
Valentin Kipyatkov
63614c5892
Initial implementation of renaming extension property usages on getter or setter rename
2015-07-16 13:49:16 +03:00
Valentin Kipyatkov
13f0d3ca23
Initial implementation of usage search for get/set methods in form of synthetic extension
2015-07-16 13:49:16 +03:00
Valentin Kipyatkov
2ec6f50402
Set method should not accept vararg
2015-07-16 13:49:15 +03:00
Valentin Kipyatkov
82f1eafa0b
No synthetic properties of type Unit
2015-07-16 13:49:15 +03:00
Valentin Kipyatkov
a014f5c8db
No synthetic properties with incorrect names
2015-07-16 13:49:15 +03:00
Valentin Kipyatkov
9b3cbc6f25
Fixed completion for safe call
2015-07-16 13:49:14 +03:00
Valentin Kipyatkov
48b163758f
Fixed caching
2015-07-16 13:49:14 +03:00
Valentin Kipyatkov
8bde9b098a
Code refactoring
2015-07-16 13:49:13 +03:00
Valentin Kipyatkov
17442617bb
Synthetic extensions suggested in completion
2015-07-16 13:49:13 +03:00
Valentin Kipyatkov
2e351f3e4d
Initial implementation of synthetic extensions resolve
2015-07-16 13:49:13 +03:00
Pavel V. Talanov
c313887641
Split CompileTimeConstant into two entities
...
1. ConstantValue
* just holds some value and its type
* implementations for concrete constants
2. CompileTimeConstant
* is only produced by ConstantExpressionEvaluator
* has additional flags (canBeUsedInAnnotation etc)
* has two implementations TypedCompileTimeConstant containing a constant value
and IntegerValueConstant which does not have exact type
* can be converted to ConstantValue
Adjustt usages to use ConstantValue if flags are not needed
Add tests for some uncovered cases
2015-07-16 02:28:05 +03:00
Pavel V. Talanov
5dc5d77e60
Inject builtins in constants
2015-07-15 21:09:52 +03:00
Pavel V. Talanov
ea1a85e78c
Introduce CompileTimeConstantFactory
2015-07-15 21:09:40 +03:00
Pavel V. Talanov
b0a4520710
Refactor compile constants to reduce boolean parameter hell
2015-07-15 20:57:02 +03:00
Denis Zharkov
d19cb747be
Emit not-null assertions for enhanced types
2015-07-15 10:01:14 +03:00
Mikhail Glukhikh
5126f01452
kotlin.annotation package with annotations "target" and "annotation" and enums AnnotationTarget and AnnotationRetention introduced.
...
Targets for existing built-in annotations.
Access to annotation package from packageFragmentProvider.
Documentation for all classes in the package.
2015-07-14 16:24:45 +03:00
Alexander Udalov
636b63a8c5
Make "reflection not found" a warning, provide a quick fix
...
Reporting the warning on each "::", as ReflectionNotFoundInspection did, is not
correct anymore, because for example name/get/set on properties works perfectly
without kotlin-reflect.jar in the classpath. So instead we report the warning
on calls to functions from reflection interfaces. This is not perfect either
because it's wrong in projects with custom implementations of reflection
interfaces, but this case is so rare that the users can suppress the warning
there anyway
#KT-7176 Fixed
2015-07-10 20:10:11 +03:00
Alexander Udalov
048a9b686e
Generate separate anonymous class for each property reference
...
Each property reference obtained by the '::' operator now causes back-end to
generate an anonymous subclass of the corresponding KProperty class, with the
customized behavior. This fixes a number of issues:
- get/set/name of property references now works without kotlin-reflect.jar in
the classpath
- get/set/name methods are now overridden with statically-generated property
access instead of the default KPropertyImpl's behavior of using Java
reflection, which should be a lot faster
- references to private/protected properties now work without the need to set
'accessible' flag, because corresponding synthetic accessors are generated at
compile-time near the target property
#KT-6870 Fixed
#KT-6873 Fixed
#KT-7033 Fixed
2015-07-10 20:10:09 +03:00
Alexander Udalov
30794060a9
Simplify property hierarchy in reflection
...
Leave only 3*2 = 6 classes: KProperty0, KProperty1, KProperty2 and their
mutable analogs, depending on the number of receivers a property takes
2015-07-10 20:10:09 +03:00