Commit Graph

64 Commits

Author SHA1 Message Date
Vyacheslav Gerasimov cb3a8d87d0 Android Extensions: Correctly handle namespaces in layout xml
#KT-19451 Fixed Target versions 1.1.5
2017-08-23 13:18:34 +03:00
Pavel V. Talanov 6424b6760f Remove StorageComponentContainerContributor::onContainerComposed
Rename addDeclarations -> registerModuleComponents
Use it to provide SamWithReceiverResolver extensions instead

Post construction on container composition can be achieved
    but manually inserting injections where it seems appropriate
    is bug prone
This fixes a bug where SamWithReceiverPlugin extension was not registered
    for some containers in IDE which led to incorrect highlighting in IDE
Add IDE test for applying SamWithReceiver plugin

 #KT-18062 Fixed
2017-08-18 19:11:25 +03:00
Yan Zhulanow 5ff014f89d Parcelable, minor: Change error message 2017-08-02 03:35:12 +03:00
Yan Zhulanow c1600c9841 Report errors from compiler plugins as compiler PLUGIN_ERRORs (KT-19311) 2017-08-02 03:35:10 +03:00
Yan Zhulanow bf2bc1fdc7 Android Extensions: Support smart-casted receivers (KT-18545) 2017-08-02 03:21:13 +03:00
Yan Zhulanow ea1068a822 Parcelable, minor: Rename MagicParcel to Parcelize 2017-07-26 20:19:32 +03:00
Yan Zhulanow f29cf07fa4 Android Extensions, minor: Fix test 2017-07-26 20:19:32 +03:00
Yan Zhulanow 5a1a4bd8bd Android Extensions: Add global cache flag in compiler plugin 2017-07-26 20:19:26 +03:00
Yan Zhulanow 84eff43b49 Parcelable: Support Android Extensions experimental flag 2017-07-26 20:19:25 +03:00
Yan Zhulanow 38449caaed Parcelable: Fixes after review 2017-07-26 20:19:23 +03:00
Yan Zhulanow d0e4b236a7 Parcelable: Support SortedSet, NavigableSet, SortedMap, NavigableMap 2017-07-26 20:19:22 +03:00
Yan Zhulanow cf607a0f14 Parcelable: Report error on unsupported parameter types, add @RawValue annotation support 2017-07-26 20:19:21 +03:00
Yan Zhulanow 4200629347 Parcelable: Support CharSequence, IBinder/IInterface, objects, enums. Serialize Parcelable efficiently if possible 2017-07-26 20:19:20 +03:00
Yan Zhulanow 19eb30b3ae Parcelable: Add test for clinit merging 2017-07-26 20:19:19 +03:00
Yan Zhulanow 3062e72282 Parcelable: Support Parcelizer interface in order to be able to customize serialization 2017-07-26 20:19:18 +03:00
Yan Zhulanow aa5f9ee3ec Parcelable: Correctly handle writeToParcel() overriding, report errors on custom writeToParcel() and CREATOR 2017-07-26 20:19:18 +03:00
Yan Zhulanow 96c9bcd820 Parcelable: Allow custom describeContents() implementation 2017-07-26 20:19:17 +03:00
Yan Zhulanow 4197380621 Parcelable: Add declaration checker 2017-07-26 20:19:16 +03:00
Yan Zhulanow c23bca6afe Parcelable: Add Parcelable functionality to Android Extensions plugin 2017-07-26 20:19:15 +03:00
Mikhail Glukhikh 7fb78a0372 Code cleanup: replace chained null-checks with safe-calls 2017-07-26 15:18:22 +03:00
Alexander Udalov cc7ed2ba54 Change map key type in AnnotationDescriptor.getAllValueArguments
Turns out, only the parameter's name is needed at all usages of this
method. Such a map is both easier to use (no need to call
ValueParameterDescriptor.getName) and easier to construct (no need to
resolve annotation class, its constructor, its parameters). In this
commit, only usages have changed but the implementations are still using
the old logic, this is going to be refactored in subsequent commits
2017-07-20 13:25:39 +03:00
Yan Zhulanow 4851a83a83 Android Extensions: put new functionality under the flag 2017-07-18 18:10:30 +03:00
Yan Zhulanow b303fa9caa Android Extensions: Fixes after review 2017-07-18 18:10:27 +03:00
Yan Zhulanow 7b238e0b21 Android Extensions: Add SparseArray implementation for the View cache (KT-18250) 2017-07-18 18:10:26 +03:00
Yan Zhulanow 423a09e46a Android Extensions: Support LayoutContainer in code generation 2017-07-18 18:10:23 +03:00
Yan Zhulanow a69f9729e0 Android Extensions: Use Activity and Fragment supertypes in INVOKE_VIRTUAL calls instead of the user implementation class names 2017-07-18 18:10:22 +03:00
Yan Zhulanow d4b4bc71ee Android Extensions: Support @ContainerOptions in compiler plugin 2017-07-18 18:10:21 +03:00
Yan Zhulanow 1a1db5a6f1 Android Extensions: Support cache in custom Views 2017-07-18 18:10:19 +03:00
Yan Zhulanow c9cd1a4d75 Minor: Android Extensions compiler plugin refactoring 2017-07-18 18:10:18 +03:00
Yan Zhulanow f7786a42ab Android Extensions: Show warning on a dot-call of a reference which is missing in some configurations (KT-18012)
When more than one layout configuration is available, a particular resource (view or fragment) may be absent in some of them.
We should show a warning on such resource reference calls as the call may lead to NPE.
2017-07-18 18:08:32 +03:00
Alexander Udalov 7febd846e8 Export 'intellij-core' in module 'frontend'
Remove intellij-core from dependencies of modules which already depend
on frontend or any module that exports frontend (such as frontend.java)
2017-06-06 14:29:26 +03:00
Alexander Udalov cbaa676c3d Move some declarations between 'descriptors' and 'deserialization'
- Move the following from 'deserialization' to 'descriptors':
  NotFoundClasses.kt
  AdditionalClassPartsProvider.kt
  ClassDescriptorFactory.kt
  PlatformDependentDeclarationFilter.kt
  findClassInModule.kt
- Move the following form 'descriptors' to 'deserialization':
  BuiltInSerializerProtocol.kt
  builtInsPackageFragmentProvider.kt
- Extract a marker interface from BuiltInsPackageFragment and move its
  implementation to 'deserialization'
- Change the type of parameters in PlatformDependentDeclarationFilter
  and AdditionalClassPartsProvider to ClassDescriptor

This will help in getting rid of the circular dependency of
'descriptors' <-> 'deserialization'
2017-06-06 14:29:18 +03:00
Yan Zhulanow cba523958e Android Extensions: Support Dialog classes (KT-16957) 2017-03-22 22:03:22 +03:00
Mikhail Glukhikh 045a23ae10 Cleanup: apply "Convert lambda to reference" 2017-03-15 17:36:02 +03:00
Mikhail Glukhikh b121bf8802 Cleanup: fix some compiler warnings (mostly deprecations, javaClass) 2017-03-15 17:35:31 +03:00
Dmitry Petrov a087ea559f Eliminate redundant CHECKCAST instructions
CHECKCAST is redundant if the corresponding static type exactly matches the target type.
CHECKCAST instructions to-be-reified should not be eliminated.

KT-14811 Unnecessary checkcast generated in parameterized functions
KT-14963 unnecessary checkcast java/lang/Object
2017-03-13 09:04:31 +03:00
Yan Zhulanow feb5397f6f AllOpen, NoArg: Refactoring, support presets in order to hold special annotations for Spring and JPA in one place 2017-02-08 17:36:19 +03:00
Alexander Udalov f1cd2ee6fd Introduce PropertyDescriptor.isDelegated, write new flag to metadata
#KT-8384 In Progress
2017-01-23 12:25:34 +03:00
Stanislav Erokhin 59efedf610 Rename platform to header. 2016-12-13 18:00:00 +03:00
Roman Elizarov 8affb2726f Pluggable Synthetic Objects 2016-12-12 18:43:26 +03:00
Alexey Andreev ba2443bcb3 Add external property to class and property descriptors 2016-12-08 15:41:38 +03:00
Alexander Udalov ce9691cd2b Support platform/impl modifiers for properties
Do not allow platform properties to have backing fields, initializers, be
delegated, lateinit or const, or have accessors with bodies
2016-11-25 20:50:18 +03:00
Vyacheslav Gerasimov 663d999ac4 Fixed testOnDestroyFragment 2016-11-23 23:30:28 +03:00
Vyacheslav Gerasimov da87efed6b Added ACC_SYNTHETIC flag to generated by kotlin Android extensions onDestroyView method
#KT-14610 Fixed
2016-11-23 18:28:43 +03:00
Alexander Udalov 6ba32ed624 Refactor CallChecker and subclasses
Encapsulate everything that is needed in checkers into CallCheckerContext. Pass
an instance of this context instead of BasicCallResolutionContext to checkers.

Also pass an instance of the element to report errors on: this is useful
because before this, every checker had its own way of determining where should
the error be reported on. Some of them, for example, were not doing anything if
Call#calleeExpression returned null, which is wrong, see operatorCall.kt

 #KT-12875 Open
2016-06-29 19:20:00 +03:00
Mikhael Bogdanov db5d9940df Added 'isInline' implementation to property accessor descriptors 2016-06-24 17:05:48 +03:00
Yan Zhulanow 530ab42de6 Android Extensions: Fix KT-10969 (NullPointerException when finding view in Fragment if getView() is null)
(cherry picked from commit 80f5852)
2016-06-24 15:10:19 +03:00
Denis Zharkov 1b82e43d76 Add LanguageFeatureSettings parameter to single method in checkers interfaces
This parameter will be used further for target-dependent checks

Also introduce SimpleDeclarationChecker/SimpleCallChecker sub-interfaces (more weak ones)
Implementing them instead of base checkers is more convenient in most cases
2016-06-09 17:57:15 +03:00
Stanislav Erokhin f41c8dc045 Refactoring. Removed several usages of asSimpleType 2016-06-09 12:58:00 +03:00
Stanislav Erokhin 957bae18be Refactoring. Move flexible type creation to KotlinTypeFactory. 2016-06-09 12:57:44 +03:00