Commit Graph

2960 Commits

Author SHA1 Message Date
Alexander Udalov 70adb0f4e2 Temporarily prohibit non-local returns for some stdlib functions
Make InlineUtil work with FQ names, not descriptors

 #KT-5496 Fixed
 #KT-5497 Fixed
2014-07-19 02:13:27 +04:00
Alexander Udalov 540b87a1dc Support object array annotation arguments in deserialization 2014-07-19 02:13:26 +04:00
Alexander Udalov d5681540ec Fix NoSuchMethodError for data classes with private parameters
Introduced in a07909bb52
2014-07-19 02:13:26 +04:00
Alexander Udalov 65c21561a4 Fix super constructor calls of anonymous objects and local classes
If a class inherits from another class which captures something (outer class
instance, receiver parameter, local variables, etc.), the constructor of the
former class should contain all the parameters of the super constructor as its
own parameters, so that it could make a proper super call. All such parameters
are now replicated in the derived constructor with kind = SUPER_CALL_PARAM,
except an instance of the outer class (kind = OUTER), which can be taken from
the derived's own OUTER when it has one, to prevent multiple passing of the
same argument.

Previously it worked only when inheriting from inner classes via a special hack
(ConstructorFrameMap).

Also reuse recently introduced ArgumentGenerator to automatically take care of
default and vararg arguments of super constructor

 #KT-3581 Fixed
 #KT-5342 Fixed
 #KT-5343 Fixed
2014-07-18 16:26:46 +04:00
Alexander Udalov a07909bb52 Don't generate unnecessary accessors for private class properties 2014-07-17 19:18:05 +04:00
Alexander Udalov 4bdf7e3426 Use direct field access to trivial class properties
#KT-3845 Fixed
2014-07-17 19:18:05 +04:00
Denis Zharkov 0b2b8ba816 Fixed KT-5493: NPE fix 2014-07-17 18:43:44 +04:00
Denis Zharkov 0e683b0b99 Added "optimize" flag to settings everywhere 2014-07-15 21:34:32 +04:00
Denis Zharkov 0f5e29df9b tests added 2014-07-15 21:26:53 +04:00
Pavel V. Talanov 7269e383cf Rewrite JetPsiFactory to kotlin, make project a property
Instead of passing to every function
All static methods are now member functions
2014-07-15 16:41:12 +04:00
Alexey Sedunov d636d362b7 Pseudocode: Generate proper instructions for when conditions. Eliminate unnecessary magics 2014-07-11 19:13:46 +04:00
Alexey Sedunov 0a8fa404bf Pseudocode: Generate additional returns for implicit return values (lambdas, functions with expression bodies) 2014-07-11 19:13:26 +04:00
Alexey Sedunov 1c75a5f642 Pseudocode: Generate instructions for superclass constructor calls. Consume value of delegate expression in the by-clause 2014-07-11 19:13:21 +04:00
Alexey Sedunov 02342fce5d Pseudocode: Store lazily computed value usage map in the pseudocode 2014-07-11 19:13:18 +04:00
Evgeny Gerashchenko 708816f09c Fixed generating method calls from same module when inlining. 2014-07-11 14:54:12 +04:00
Alexander Udalov 947c9fb1bf Minor, rename "inner" -> "nested" in tests 2014-07-10 20:30:45 +04:00
Evgeny Gerashchenko c4573b8c5a Got rid of ModuleDescription intermediate entity. 2014-07-10 15:05:19 +04:00
Evgeny Gerashchenko 86d2565700 Added test for KT-4827 UOE at PackageType.throwException()
#KT-4827 obsolete
 #EA-53605 obsolete
2014-07-10 15:05:18 +04:00
Pavel V. Talanov 16aefae602 Move descriptorToDeclaration utilities family to a separate util class DescriptorToSourceUtils 2014-07-09 19:07:26 +04:00
Pavel V. Talanov d988256831 Refactor: Remove context parameter from BindingContextUtils.descriptorToDeclaration utilities family 2014-07-09 18:19:36 +04:00
Pavel V. Talanov 59e43020c3 Initial version of storing SourceElements in descriptors
Introduce SourceElement, JavaSourceElementFactory, DeclarationDescriptorWithSource
Implement getSource() for eager, lazy and java descriptors
2014-07-09 18:19:34 +04:00
Andrey Breslav e3b1639edf KT-5425 Kotlin plugin crashes when project uses RxJava 17.0 or older
#KT-5425 Fixed
2014-07-09 16:10:41 +04:00
Michael Bogdanov 6ddeb85c00 Added checking for ONLY_LOCAL_RETURN in actual parameter of inline function 2014-07-09 09:46:28 +04:00
Svetlana Isakova 62cb0d0baf Added util 'getParentResolvedCall', 'strict' parameter 2014-07-08 14:57:41 +04:00
Svetlana Isakova cec01237d0 Added test for labeled delegated expression 2014-07-08 14:57:40 +04:00
Svetlana Isakova 53ee30992b Record resolved call on call (not on element) 2014-07-08 14:57:38 +04:00
Svetlana Isakova 72e9822d99 All RESOLVED_CALL getters replaced with util methods
JetElement.getResolvedCall(BindingContext)
  JetElement.getResolvedCallForSure(BindingContext)
2014-07-08 14:57:37 +04:00
Svetlana Isakova ae8757f6b8 Added tests on resolved call for 'this' 2014-07-08 14:48:20 +04:00
Svetlana Isakova 48511206ad Mark required call with 'caret' in abstract resolved calls test 2014-07-08 14:48:19 +04:00
Svetlana Isakova 29ab166e1b Refactoring: AbstractResolvedCallsTest
Render resolved call to a separate file
2014-07-08 14:48:19 +04:00
Svetlana Isakova b2c2e1811c Check 'isDirty' for resolved calls replaced with check 'hasUnresolvedArguments' for call
Don't report 'cannotCompleteResolve' error if some arguments are unresolved (like 'ambiguity')
2014-07-08 14:48:19 +04:00
Svetlana Isakova a3e306b820 Update recorded type for argument in parentheses correctly 2014-07-08 14:48:18 +04:00
Svetlana Isakova 857aa76cff Added tests for argument mapping 2014-07-08 14:48:17 +04:00
Svetlana Isakova 02f5293b3d Added CallCompleter component
Regenerated injectors
2014-07-08 14:48:15 +04:00
Alexander Udalov e502d8dcc6 Remove JetScopeAdapter 2014-07-07 18:15:32 +04:00
Alexander Udalov b9fd52739f Move around some descriptor implementations
- mutable class, mutable package fragment and their dependencies go to module
  'frontend'
- ModuleDescriptorImpl and PackageFragmentDescriptorImpl are moved to the
  package "impl" in their module
2014-07-07 18:15:31 +04:00
Evgeny Gerashchenko 6501066274 Added hacky checks for accessing compiled functions from our module via package part instead of facade.
#KT-4590 fixed
2014-07-07 17:41:34 +04:00
Michael Bogdanov 6b34035455 Avoid exceptions in test setUp cause tearDown would not be invoked 2014-07-07 10:51:47 +04:00
Michael Bogdanov da01a11137 New diagnostic for non-local return annotation 2014-07-07 10:51:46 +04:00
Michael Bogdanov 8092717da4 Support non local return generation, support non local return inlining 2014-07-07 10:51:46 +04:00
Mikhael Bogdanov 02c6bdeaa3 Inline test data structure changed 2014-07-07 10:51:46 +04:00
Andrey Breslav 06d060d5de KT-4295 Wrong diagnostic about "weaken access privilege" when override properties in constructor
#KT-4295 Fixed
2014-07-05 17:47:00 +04:00
Pavel V. Talanov 0a43c38bae Change AnalyzerFacade#createSetup to accept a list of synthetic files and a scope for physical source files
Make DeclarationProviderFactory a project service
2014-07-03 20:46:50 +04:00
Pavel V. Talanov 245919d691 Use module to resolve annotation classes in AnnotationDescriptorLoader 2014-07-03 20:46:36 +04:00
Pavel V. Talanov 7ee7047753 Deserializer: use module to search for dependencies in TypeDeserializer 2014-07-03 20:46:33 +04:00
Andrey Breslav 6422bafb7a More tests for synchronized() {} 2014-07-03 18:39:57 +04:00
Andrey Breslav 90690e0711 KT-4825 Implement "synchronized" properly via monitorenter/monitorexit
#KT-4825 Fixed
2014-07-02 22:05:45 +04:00
Alexander Udalov c0fc5cfb53 Disallow named arguments for SAM adapters
SAM adapters are Java functions, and named arguments are not allowed for Java
functions

 #KT-5022 Fixed
2014-07-02 20:35:31 +04:00
Alexander Udalov bc8bce7ca1 Provide "toString" for reflection objects 2014-07-02 01:55:55 +04:00
Alexander Udalov c5d92cc03e Provide "equals" and "hashCode" for reflection objects 2014-07-02 01:55:55 +04:00