Pavel V. Talanov
a3f51fabce
Comments for review
2017-07-24 18:00:02 +03:00
Kirill Rakhman
4c7ddbe397
"Use destructuring declaration" should not be available for top-level and class properties ( #1205 )
...
Fixes #KT-19167
2017-07-24 14:33:46 +02:00
Dmitry Petrov
f558b4238c
Use counter loop in intrinsic array constructors
...
#KT-19149 Fixed Target versions 1.1.5
2017-07-24 10:17:30 +03:00
Dmitry Petrov
c9d9a8220d
Minor: use IntrinsicMethods.INTRINSICS_CLASS_NAME where appropriate
2017-07-24 10:15:27 +03:00
Dmitry Petrov
fda89e9c72
Add test for KT-19128
...
It looks like the problem was caused by incorrect merging of
StrictBasicValues and was fixed by commit
904c7f9c64 .
#KT-19128 Fixed
2017-07-24 10:15:27 +03:00
Dmitry Petrov
d0c8af5621
Keep track of second receiver type in CallReceiver
...
#KT-17725 Fixed Target versions 1.1.5
2017-07-24 10:15:27 +03:00
Dmitry Petrov
3f34a97880
Minor: extract CallReceiver to a top-level class, move code around
2017-07-24 10:15:27 +03:00
Simon Ogorodnik
f079ed949c
KT-19015: Enable multiarg completion for non-first argument
...
#KT-19015 fixed
2017-07-24 00:00:11 +03:00
Ilya Gorbunov
ec5c15f190
test-dagger-maven-example: kotlin version comes as a parameter
2017-07-21 20:15:34 +03:00
Ilya Gorbunov
d8ea3ddcc8
Cleanup poms of projects migrated to gradle
2017-07-21 20:15:34 +03:00
Alexander Udalov
f69e96b240
Fix IAE at protoDifferenceUtils.kt on new metadata field
...
The class_local_variable/package_local_variable JVM extensions were
added in 616d575fb6
#KT-19155 Fixed
2017-07-21 20:11:43 +03:00
Nikolay Krasko
b6bd3e15c5
Fix outdated highlighting for Kotlin injected fragments (KT-18842)
...
Do not use cached value for injection in non-dispatch threads and throw
PCE if value isn't ready. Otherwise outdated value may be stored in
highlighting.
#KT-18842 Fixed
2017-07-21 19:57:21 +03:00
Alexander Udalov
7f8e7c66f5
Suppress FNFE in .kotlin_metadata index
...
Similarly to VirtualFileKotlinClass.create.
This could happen for example when some files are removed from
kotlin-stdlib-common
2017-07-21 19:03:15 +03:00
Alexander Udalov
ebdf5aa223
Discriminate header classes in favor of non-header type aliases
...
In the test case, the problem was that Foo.a's type was resolved to the
_class A_, which was written to metadata on JVM instead of the class
AImpl with typealias A as an abbreviation. This metadata was incorrect
because there's no class A from the JVM compiler's point of view; that's
why the error "cannot access class A" was reported
#KT-19151 Fixed
2017-07-21 19:03:15 +03:00
Mikhail Glukhikh
6ee94dae6f
Code cleanup: KotlinSafeDeleteProcessor
2017-07-21 18:59:13 +03:00
Mikhail Glukhikh
d05a525d8d
Search for KtTypeAlias in safe delete processor
...
Related to KT-16046
2017-07-21 18:59:07 +03:00
Mikhail Glukhikh
dd0cf8219e
Add type aliases into UnusedSymbolInspection / safe delete
...
So #KT-16046 Fixed
2017-07-21 18:59:01 +03:00
Mikhail Glukhikh
951e8cd91a
Code cleanup: unnecessary local variable applied
2017-07-21 18:58:48 +03:00
Mikhail Glukhikh
202fb19cf6
If-then to safe access: more correct receiver calculation
...
So #KT-18928 Fixed
2017-07-21 18:58:33 +03:00
Mikhail Glukhikh
31bb1cc0f9
Invoke back setting "show inline dialog for local variables"
...
So #KT-19130 Fixed
2017-07-21 18:58:27 +03:00
Kirill Rakhman
a7084ceb9b
Fix some type hints related issues ( #1204 )
...
* Type hints shouldn't appear for negative literals
Fixes #KT-18974
* Make type hints work for destructuring declarations
Fixes #KT-18444
* Hide type hints for generic constructor calls if type arguments are explicitly specified
Fixes #KT-19167
2017-07-21 16:31:46 +02:00
Nikolay Krasko
f4038f7109
Fix slow typing because of counting injected fragments (KT-18842)
...
- cache result of kotlin injection on modification tracker
- never count injection in dispatch thread, use cached result instead
- compute injection with write action priority, reuse cache if unfinished
#KT-18842 Fixed
2017-07-21 15:41:06 +03:00
Nikolay Krasko
436b637282
Refactoring: show using ProcessCancelException in method name
2017-07-21 15:41:06 +03:00
Nikolay Krasko
fbe16f7b91
Refactoring: delete unused CachedValueProperty class
2017-07-21 15:41:06 +03:00
Mikhail Glukhikh
1cb6128f2f
Minor: J2K test fix
2017-07-21 12:21:04 +03:00
Dmitry Petrov
bf3e896464
Update 'this' extension receiver when there's a smart cast
...
If 'this' (implicit or explicit) was used as an extension receiver,
and the corresponding call required a smart-cast,
this information was effectively lost in "old" resolution & inference,
but is required by "old" JVM BE to generate proper CHECKCASTs.
2017-07-21 08:58:52 +03:00
Dmitry Petrov
c9d54d7110
Generate proper error candidates for type aliases
...
#KT-17745 Fixed Target versions 1.1.5
2017-07-21 08:58:12 +03:00
Dmitry Petrov
b4d8337ca5
Ignore test for 'primitive Char == object' in JS (KT-19081)
2017-07-21 08:52:29 +03:00
Dmitry Petrov
709a7e201f
Simplify code for specialized BranchedValues
2017-07-21 08:52:29 +03:00
Dmitry Petrov
e1a55e8dec
Prefer compact bytecode for primitive/object comparisons with Boolean
...
'java.lang.Boolean#valueOf' doesn't allocate new objects
(it uses pre-allocated singletons for 'true' and 'false').
2017-07-21 08:52:29 +03:00
Dmitry Petrov
8e9c0294fe
Do not box primitives for 'primitive == object'
...
NB user-defined 'equals' can violate contract for 'Object#equals', e.g.,
it can be asymmetric.
Thus we can't avoid boxing for 'object == primitive'.
2017-07-21 08:52:29 +03:00
Dmitry Petrov
fa42f202fa
Avoid boxing on 'primitive == boxed' when possible
...
Similar to 'boxed == primitive' case, different bytecode due to
evaluation order.
2017-07-21 08:52:29 +03:00
Dmitry Petrov
e440de3494
Minor: GeneratePrimitiveVsObjectEqualityTestData
2017-07-21 08:52:29 +03:00
Dmitry Petrov
98ee83f4a3
Minor: move condition for boxed==primitive to corresponding isApplicable
2017-07-21 08:52:29 +03:00
Dmitry Petrov
4cba600268
Minor: some more evaluation order tests for 'boxed == primitive'
2017-07-21 08:52:29 +03:00
Dmitry Petrov
81609e4c6f
Generate complex equality comparison only when RHS can have side effects
...
In "short" version, LHS is always evaluated before RHS,
and RHS may be not evaluated if LHS is null.
So, it makes sense to use "short" version in cases when RHS can't have
side effects (because of more compact bytecode and more opportunities
for code elimination).
2017-07-21 08:52:29 +03:00
Dmitry Petrov
8aacddb9f0
Avoid primitive boxing for 'boxed == primitive' if possible
...
This makes sense for non-floating-point primitive type
(boolean, char, byte, short, int, long):
floating-point types use specialized versions of 'areEqual'.
2017-07-21 08:52:29 +03:00
Dmitry Petrov
275c758da1
Cleanup and move code around in BranchedValue
...
- Cleanup inspections
- Move optimized boxed-vs-primitive comparisons to a separate file
2017-07-21 08:52:29 +03:00
Dmitry Petrov
051ac44759
Verify bytecode after mandatory transformations and after optimizations
2017-07-21 08:52:29 +03:00
Simon Ogorodnik
7ed1669050
KT-19011: Fix import optimizing when extension functional type is used
...
It should check is extension functional type imported from companion
is actually called on companion instance
#KT-19011 fixed
2017-07-21 03:08:06 +03:00
Dimach
65e603c1ed
KT-13552: Fix J2K to generate else block while converting switch
...
#KT-13552 fixed
2017-07-20 23:35:11 +03:00
Mikhail Glukhikh
44790eccaf
Use "unnecessary variable" inspection in J2K
...
Unused variables are no more treated as unnecessary
Related to KT-15958
2017-07-20 17:48:27 +03:00
Mikhail Glukhikh
39f1ef390e
Do not report "redundant Unit" for generic calls coerced to Unit
...
So #KT-18999 Fixed
2017-07-20 17:48:20 +03:00
Mikhail Glukhikh
c554bfa20d
Move: RemoveSetterParameterTypeInspection to inspections package
2017-07-20 17:48:14 +03:00
Mikhail Glukhikh
e154e4cf75
Move: RedundantUnitReturnTypeInspection to inspections package
2017-07-20 17:48:07 +03:00
Simon Ogorodnik
8f78446bff
Minor: Clarify code for KT-18786: Fix J2K to move properties to top
2017-07-20 16:04:07 +03:00
Dmitry Jemerov
9213c4a1ab
EA-104855 - (1.1.4) NPE: KotlinCommonBlockKt.isFirstParameter
2017-07-20 12:50:12 +02:00
Dmitry Jemerov
fbcc519098
Fix tests affected by annotation wrapping changes
2017-07-20 12:32:48 +02:00
Alexander Udalov
5128b8a409
Add default implementation for Annotations.findAnnotation
2017-07-20 13:27:34 +03:00
Alexander Udalov
def3f73fdd
Use AnnotationDescriptor.fqName instead of type
...
Also use the annotationClass extension property instead of
TypeUtils.getClassDescriptor(annotation.type)
2017-07-20 13:26:13 +03:00
Alexander Udalov
541b9dab52
Introduce optimized BuiltInAnnotationDescriptor for built-in annotations
...
It's built on a FQ name and avoids resolution of the annotation class
descriptor as much as possible
2017-07-20 13:26:13 +03:00
Alexander Udalov
f39106f75c
Do not use parameter descriptors in AnnotationDescriptorImpl
2017-07-20 13:26:13 +03:00
Alexander Udalov
eb205f620c
Do not use parameter descriptors in most annotation implementations
...
Except AnnotationDescriptorImpl, which is refactored in the subsequent
commit.
Note that we no longer check the presence of parameters with the
corresponding names in the annotation class in
LazyJavaAnnotationDescriptor, this is why test data changed
2017-07-20 13:25:39 +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
Alexander Udalov
41ea0e8ef8
Introduce AnnotationDescriptor.fqName
...
Could be used instead of ".annotationClass.fqName" to avoid the unneeded
resolution of the annotation class descriptor
2017-07-20 13:25:38 +03:00
Alexander Udalov
1d64b61a8f
J2K AnnotationDescriptor, refactor implementations
2017-07-20 13:25:38 +03:00
Alexander Udalov
7ec67505c5
Optimize Annotations.isEmpty in some implementations
2017-07-20 13:25:38 +03:00
Alexander Udalov
9ee4b39e1b
Provide default implementation for Annotations.findExternalAnnotation
2017-07-20 13:25:38 +03:00
Alexander Udalov
5636318eb4
Optimize DeserializedAnnotations in terms of memory traffic
...
Do not wrap every annotation object into an AnnotationWithTarget
2017-07-20 13:25:38 +03:00
Alexander Udalov
21197b53aa
Do not load annotations on value parameter if there are none
...
Also fix an error in the doc in descriptors.proto
2017-07-20 13:25:38 +03:00
Alexander Udalov
c197db9c69
Remove some unnecessary lazy computations in LazyJavaClassDescriptor
2017-07-20 13:25:38 +03:00
Mikhail Glukhikh
bdc44ff4cf
Unnecessary variable: do not start inlining in write action
...
So #KT-19110 Fixed
(cherry picked from commit 6325fb1 )
2017-07-20 12:39:52 +03:00
Ilya Chernikov
e38aaf3e07
Fix xmx setting for the daemon in tests
2017-07-20 10:54:05 +02:00
Ilya Chernikov
17a189a24b
Improve logging and exception handling in the daemon
2017-07-20 10:54:05 +02:00
Denis Zharkov
904c7f9c64
Fix nullable variables spilling in coroutines
...
See the last comment in testData for clarification
#KT-18983 Fixed
2017-07-20 10:53:32 +03:00
Denis Zharkov
90e894b171
Use known jvm binary class for package part if possible
2017-07-20 10:53:09 +03:00
Denis Zharkov
99a10d8d63
Minor. Rename compactIfPossible -> compact
...
As ArrayList can always be compacted
2017-07-20 10:53:09 +03:00
Denis Zharkov
f454858bbb
Optimize memory footprint for case of empty annotations in types
...
It seems that most of the simple types don't have any annotations,
so for that case it's worth removing the field from SimpleTypeImpl
Also introduce a NotNullSimpleType being used when replacing nullability
2017-07-20 10:53:09 +03:00
Denis Zharkov
f8a12a0ec3
Optimize JavaTypeResolver by avoiding using some language features
...
It's quite a hot point and using local functions with default
parameters seem to affect negatively to overall performance
(at least some of compiler benchmark have shown it)
2017-07-20 10:53:09 +03:00
Denis Zharkov
d7cee95d95
Call compactIfPossible where it's possible in BinaryJava*
...
It helps to avoid retaining a lot of redundant empty SmartList's
instances
2017-07-20 10:53:09 +03:00
Denis Zharkov
e2ce285ec3
Reduce memory footprint after functions substitution
...
Do not recreate new instances if descriptors' parts remain
effectively the same
2017-07-20 10:53:09 +03:00
Denis Zharkov
4a73fbb70a
Reduce memory footprint of TypeSubstitutor
...
Avoid creating new instances if types remain unchanged
2017-07-20 10:53:09 +03:00
Denis Zharkov
4385ce8828
Reduce memory footprint for basic case of flexible types
...
The case is when we have a simple type constructor
(not array nor collection) and type is not raw:
A<T1, >..A<T1>?
Actually these types are almost equal besides of nullability,
but we create and resolve two different simple types,
they have different arguments' lists, etc.
The idea is to add NullableSimpleType subclass with delegate
to another simple type
It should help a lot both with common cases and with corner ones:
flexibles types in spark for Function22 having exponential size
because of its flexibility
#KT-14375 Fixed
#KT-14323 Fixed
2017-07-20 10:53:09 +03:00
Denis Zharkov
59f2ba98a6
Avoid creating SimpleType instances for default type
2017-07-20 10:53:09 +03:00
Denis Zharkov
8576054788
Use SmartList instead of SmartSet for overridden descriptors
...
SmartSet was used because it was the only lightweight collection
available in core, but now there is org.jetbrains.kotlin.utils.SmartList
2017-07-20 10:53:09 +03:00
Denis Zharkov
729f20ed81
Reduce memory size retained by LookupTrackerImpl
...
By default SmartList is used there for storing values of a multimap,
so a lot of duplicated items is stored there (file names are being
duplicated).
Even although there is a separate interner for these values,
retained memory size has been reduced for 30M when compiling `idea`
module in Kotlin project
2017-07-20 10:53:09 +03:00
Denis Zharkov
c7e6f200da
Use SmartList for storing annotations in binary classes
...
Looks like in the most cases there are <= 1 annotations
in real declarations
2017-07-20 10:53:09 +03:00
Simon Ogorodnik
36ab31f2f7
Minor: fix test after merge
2017-07-20 02:30:34 +03:00
Toshiaki Kameyama
fe599463ac
KT-18978 Intention Move to class body generates incorrect code for vararg val/var ( #1188 )
...
Intention Move to class body generates incorrect code for vararg val/var #KT-18978 Fixed
2017-07-20 01:29:56 +03:00
Dimach
a59021a25e
KT-18786: J2K should move all properties to top of class
...
#KT-18786 fixed
2017-07-20 01:15:15 +03:00
Simon Ogorodnik
ccfcfd8721
Add benchmark for local completion and improve benchmarking
2017-07-19 21:18:58 +03:00
Dmitry Jemerov
4df6db141c
Advance source stub version which wasn't advanced in 5d87276cf
...
#KT-19113 Fixed
2017-07-19 18:52:29 +02:00
Dmitry Petrov
891799c853
Generate 'Deprecated' annotation on invisible companion object field
...
Design decision: if the field for a companion object should have
non-public visibility, generate it with @Deprecated annotation in
language version 1.2.
TODO: generate it with proper visibility in 1.3 and later.
KT-11567 Companion object INSTANCE field more visible than companion object class itself
2017-07-19 17:38:17 +03:00
Dmitry Jemerov
951392005b
Add options for wrapping local variable and property annotations
...
#KT-14950 Fixed
2017-07-19 15:03:00 +02:00
Dmitry Jemerov
050ff03b07
Implement wrapping options for enum constants
...
#KT-14126 Fixed
2017-07-19 15:02:59 +02:00
Dmitry Jemerov
7555bb6c3c
Support formatting of 'where' clauses
...
#KT-14083 Fixed
2017-07-19 15:02:58 +02:00
Dmitry Jemerov
325e950bfe
Reformat expression body property accessors
...
#KT-17394 Fixed
2017-07-19 15:02:52 +02:00
Dmitry Jemerov
4db8639bf8
Consistent name for option controlling spaces around ..
2017-07-19 15:02:50 +02:00
Dmitry Jemerov
31840fa328
Fix GradleLanguageFeatureQuickFixTest on Windows
2017-07-19 13:56:00 +02:00
Toshiaki Kameyama
366b9d1d79
KT-12195 Quickfix @JvmStatic on main() method in an object ( #1192 )
...
* Quickfix @JvmStatic on main() method in an object #KT-12195 Fixed
* Fixed #KT-12195
2017-07-19 13:37:12 +02:00
Toshiaki Kameyama
a8da79a130
KT-12504 Intention to make open class with only private constructors sealed ( #1193 )
...
* Intention to make open class with only private constructors sealed #KT-12504 Fixed
* Fixed #KT-12504
2017-07-19 13:36:36 +02:00
Nikolay Krasko
dd2a87dbf7
Rewrite test class to make it work on Windows
...
Stop using dummy file and assert result with assertEqualsToFile().
Previous version didn't work on Windows because of `\r`.
2017-07-19 13:25:17 +03:00
Nikolay Krasko
4e76975a52
Force OOB in accessors for properties without explicit type (KT-19062)
...
#KT-19062 Fixed
2017-07-19 12:45:06 +03:00
Nikolay Krasko
bcbff98382
Check OOB stays the same for string in super type constructor call
2017-07-19 12:45:06 +03:00
Pavel V. Talanov
41276c950b
Update CodegenTestCase after rebasing on latest changes
2017-07-19 12:29:27 +03:00
Pavel V. Talanov
5faad493b4
Catch and report exceptions from DependenciesResolver
2017-07-19 12:29:25 +03:00
Pavel V. Talanov
eb5be038fa
ScriptDependenciesUpdater: compute script contents synchronously
2017-07-19 12:29:22 +03:00
Pavel V. Talanov
9eb8cec5cf
ScriptDependenciesUpdater: set job to null after processing result
...
Fix inconsistency introduced after extracting ScriptDependenciesUpdater
2017-07-19 12:29:20 +03:00
Pavel V. Talanov
537b1689b7
DependenciesCache: remove ad-hoc ScriptDependencies comparison
2017-07-19 12:29:17 +03:00
Pavel V. Talanov
b1ac451959
Make sure template classpath is always among script dependencies
2017-07-19 12:29:15 +03:00
Pavel V. Talanov
f84cc7fb5b
Offload legacy dependency resolver work to a separate thread pool
...
This is mainly to improve experience for kdsl users before gradle migrates to new API
2017-07-19 12:29:12 +03:00
Pavel V. Talanov
bc399444ab
Fix creating DependenciesResolver with default arguments
2017-07-19 12:29:09 +03:00
Pavel V. Talanov
7aee51fd77
Refactor ScriptDependenciesUpdater: improve readability a bit
2017-07-19 12:29:07 +03:00
Pavel V. Talanov
c0e08c61ee
Minor: extract ScriptContentLoader::getEnvironment
2017-07-19 12:29:04 +03:00
Pavel V. Talanov
42629d6f8d
ScriptDependenciesUpdater: use Job explicitly instead of futures
...
Cancel jobs without interrupting
2017-07-19 12:29:02 +03:00
Pavel V. Talanov
999c3c5e76
Rename services related to script dependencies
...
KotlinScriptConfigurationManager -> ScriptDependenciesManager
KotlinScriptExternalImportsProvider -> ScriptDependenciesProvider
2017-07-19 12:28:59 +03:00
Pavel V. Talanov
96db16a988
ScriptDependenciesUpdater, minor: improve isLastSentRequestCheck
2017-07-19 12:28:56 +03:00
Pavel V. Talanov
aacb9a437a
Rename: dependenciesClasspath -> templateClasspath
...
Clearer distinction from additionalResolverClasspath
2017-07-19 12:28:54 +03:00
Pavel V. Talanov
96d8f685e9
Refactor KotlinScriptConfigurationManager: extract parts
...
Introduce ScriptDependenciesUpdater, DependenciesCache and ScriptContentLoader
2017-07-19 12:28:51 +03:00
Pavel V. Talanov
1b42095dc1
Support @AcceptedAnnotations for different kinds of resolvers
2017-07-19 12:28:49 +03:00
Pavel V. Talanov
1c412b4068
AsyncDependenciesResolver: provide implementation for sync resolve
2017-07-19 12:28:46 +03:00
Pavel V. Talanov
008c27d547
Compiler build depends on kotlinx-coroutines-core
2017-07-19 12:28:43 +03:00
Pavel V. Talanov
ee70a64e1c
Minor, template providers: don't create classloader for empty classpath
2017-07-19 12:28:41 +03:00
Pavel V. Talanov
beb28a1c7d
Gradle Kotlin DSL uses compiler-embdeddable jar when loading resolver
2017-07-19 12:28:38 +03:00
Pavel V. Talanov
5c18ab750b
GradleScriptTemplateProvider: avoid duplicating template loading code
2017-07-19 12:28:36 +03:00
Pavel V. Talanov
6c3ce7adc1
ScriptTemplatesProvider: refactor dependency loading
...
Change dependenciesClasspath is of type List<File>
Add additionalResolverClasspath
2017-07-19 12:28:33 +03:00
Pavel V. Talanov
a77cd0ab09
Catch errors when instantiating script templates
...
If we throw from this code IDE becomes unusable
#KT-18945 Fixed
2017-07-19 12:28:31 +03:00
Pavel V. Talanov
8ac17400ae
ScriptDependenciesFileAttribute: fix TODOs
2017-07-19 12:28:28 +03:00
Pavel V. Talanov
75220e145b
Minor: suppress deprecation warning
2017-07-19 12:28:26 +03:00
Pavel V. Talanov
cf57e5a7a1
Script templates: search for parameterless constructor of resolver
2017-07-19 12:28:23 +03:00
Pavel V. Talanov
10e14103b6
Propagate reports from script dependency resolver
...
Compiler: show as compiler messages
IDE: annotate code in a separate highlighting pass
2017-07-19 12:28:20 +03:00
Pavel V. Talanov
96c2a589c0
Support legacy resolver interface
2017-07-19 12:28:18 +03:00
Pavel V. Talanov
65dba3615c
Update project code to use new script.runtime APIs
2017-07-19 12:28:15 +03:00
Pavel V. Talanov
375b058a28
Add coroutines-jdk8 to project
2017-07-19 12:28:13 +03:00
Pavel V. Talanov
1012a24afc
Refactor: move KotlinScriptExternalImportsProviderImpl to 'cli' module
2017-07-19 12:28:10 +03:00
Pavel V. Talanov
b6a7d831bf
Script IDE API: remove <TF: Any>
2017-07-19 12:28:08 +03:00
Pavel V. Talanov
581176fa90
AbstractScriptConfigurationTest: adapt to changes in API
2017-07-19 12:28:05 +03:00
Pavel V. Talanov
788eaf8a18
Refactor getting dependencies for script files API
...
Deprecate KotlinScriptDefinition#getDependenciesFor
Expose dependencyResolver as a property
KotlinScriptExternalImportsProvider is the component clients should be asking for dependencies
2017-07-19 12:28:02 +03:00
Pavel V. Talanov
ff391628de
KSCM: fix wrong update on null return from Template.getDependenciesFor
2017-07-19 12:28:00 +03:00
Pavel V. Talanov
1834721880
KSCM: persist script dependencies between idea launches
2017-07-19 12:27:55 +03:00
Pavel V. Talanov
930d502b12
KSCM: rework async requests
2017-07-19 12:27:53 +03:00
Pavel V. Talanov
3c511f3f40
KSCM: temporary workaround gradle returning results in unstable order
2017-07-19 12:27:50 +03:00
Pavel V. Talanov
fb0e0e3767
Introduce ScriptDependenciesFileAttribute to persist script dependencies
2017-07-19 12:27:48 +03:00
Pavel V. Talanov
a2aeda7b2c
Support async script dependency updates for annotation based templates
...
Do not try to cache dependencies for every script on startup
Schedule cache updates upon request as opposed to updating them synchronously
2017-07-19 12:27:45 +03:00
Pavel V. Talanov
b7fc909821
Split compiler and ide specific parts of script dependency caching
...
Move all caching logic to ide specific KotlinScriptConfigurationManager
Clean up apis
Remove logging when updating caches
2017-07-19 12:27:43 +03:00
Anton Bannykh
e43a145614
fixup: updated EXPECTED_REACHABLE_NODES
2017-07-19 12:24:09 +03:00
Anton Bannykh
6ed7eaf546
JS tests: changes to kotlin.test + the way compiler tests are generated.
2017-07-19 12:24:09 +03:00
Alexey Sedunov
eda747c0bf
Minor: Fix tests
2017-07-19 11:34:30 +03:00
Roman Elizarov
f2b5f37b22
Support inline suspend functions built with compiler version less than 1.1.4/1.2-M1
...
The error message is removed and is replaced with a code that adapts
inline suspend functions produced by the old compiler with the
suspension markers that new compiler expects.
2017-07-19 08:59:55 +03:00
Roman Elizarov
9f0810f723
Pull implementations up from AbstractCoroutineContextElemenet
...
Fixes KT-18671
2017-07-19 08:59:43 +03:00
Alexander Udalov
c9b14c5a45
Reduce classpath for class loader in CodegenTestCase
...
There's no point in adding JDK (mock or full) roots to it, as well as
stdlib/reflect/test (they are loaded by the parent class loader, created
in ForTestCompileRuntime)
2017-07-18 20:10:07 +03:00
Alexander Udalov
743278d456
Fix ReplInterpreter on Java 9
2017-07-18 20:10:05 +03:00
Alexander Udalov
aa53fa7e15
Fix execution of simple .kts scripts on Java 9
2017-07-18 20:10:05 +03:00
Alexander Udalov
bc2c958a2e
Remove unused class GenericRepl
2017-07-18 20:10:05 +03:00
Alexander Udalov
36001ff931
Do not allow to access compiler internals in .kts scripts
...
Set parent class loader to null explicitly instead of the system class
loader
2017-07-18 20:10:05 +03:00
Alexander Udalov
d1603c4329
Minor, move deserializeToDescriptor to package kotlin.reflect.jvm.internal
...
To prevent binary-compatibility-validator from reporting it as a public
API; that happens because the signature is different after the
gradle-shadow-plugin is applied
2017-07-18 20:09:24 +03:00
Yan Zhulanow
00225b3de3
Use compiling evaluator only if there is non-inline lambda or a loop in the bytecode
2017-07-18 18:22:30 +03:00
Yan Zhulanow
a6925e0d0f
Minor: Fixes after review
2017-07-18 18:22:29 +03:00
Yan Zhulanow
904b693571
Pass byte array more efficiently
...
Filling byte[] values is especially slow on Android (>3000ms to fill a byte[3000] on emulator).
2017-07-18 18:22:28 +03:00
Yan Zhulanow
069579fd79
Debugger: Disable code interpreting by default in evaluator
...
Provide the compiled bytecode to debugger instead of interpreting the expression by default.
This significantly increases evaluation speed in numerous cases, e.g. `(1..10000).map { it.toString() }.count()`.
Leave interpreter mode as a fallback.
Android does not provide decent in-memory class loading support.
Moreover, we need to run dex on the compiled classes, and it required significant time.
So for now compiling evaluator for Android is available only in Android O, and only if there're any local classes or non-inline lambdas (evaluator didn't work for them before so we may consider this change as an improvement).
2017-07-18 18:22:28 +03:00
Yan Zhulanow
4851a83a83
Android Extensions: put new functionality under the flag
2017-07-18 18:10:30 +03:00
Yan Zhulanow
77eafb9716
Kapt: Map kaptGenerateStubsKotlin task classpath properly, ensure the destination for compileKotlin isn't in it (KT-18799)
2017-07-18 18:10:29 +03:00
Yan Zhulanow
83f9835e00
Android Exensions: Add kotlin-android-extensions-runtime dependency automatically in Gradle plugin
2017-07-18 18:10:28 +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
fbfd51e97e
Minor: Group plugin modules
2017-07-18 18:10:25 +03:00
Yan Zhulanow
820f914d35
Remove obsolete kapt2 implementation
2017-07-18 18:10:24 +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
6e1dd08fbb
Android Extensions: Add runtime library with LayoutContainer and its options
2017-07-18 18:10:20 +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
0494862ce5
Minor: Move Android Extensions compiler plugin tests to some other package
2017-07-18 18:10:17 +03:00
Yan Zhulanow
303b246a49
Minor: Move AndroidExtensionsReportSubmitter to other KAE files
2017-07-18 18:10:16 +03:00
Yan Zhulanow
e037cafe18
Use descriptor modality in IDE inspections/intentions
...
This fixes KT-18160, KT-18194, KT-18195, KT-18197 ~
2017-07-18 18:10:15 +03:00
Yan Zhulanow
942fa7719a
Android Extensions: Add synthetic property highlighting
2017-07-18 18:08:33 +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
Yan Zhulanow
f4acf404ca
Android Extensions: Support Android variants and library dependencies (KT-14086, KT-16934)
2017-07-18 18:08:31 +03:00
Yan Zhulanow
8e9a62d553
Kapt: Add gradle warnings for Android projects
...
1. When the old kapt (aka kapt1) is used
2. (for Android projects) When Kotlin plugin is applied but annotationProcessor (Java-only) dependencies are found
2017-07-18 18:08:29 +03:00
Toshiaki Kameyama
865f9d4c7e
Wrong caption "Change to property access" for Quick Fix to convert class instantiation to object reference #KT-13870 Fixed ( #1189 )
2017-07-18 15:47:43 +02:00
Mikhail Glukhikh
987c7f5be8
Add "unnecessary local variable" inspection #KT-15958 Fixed
2017-07-18 16:37:47 +03:00
Dmitry Neverov
9d06a80519
Do not report "property can be private" on JvmField properties
...
So #KT-18970 Fixed
2017-07-18 15:48:10 +03:00
Nikolay Krasko
5281602381
Don't ignore filters in smart step over for inline calls
2017-07-18 14:39:55 +03:00
Nikolay Krasko
f664ffb06b
Check correspondent call on end token for better step over (KT-18949)
...
#KT-18949 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
d282f14eac
Don't add double linenumber when return expression is absent (KT-18949)
...
#KT-18949 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
a41c9d2476
Avoid state machine build for suspend function with single inline call
...
#KT-18949 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
ce4f923ba0
Replace return with nop to avoid merging line instructions (KT-18949)
...
Dex ignores subsequent line numbers for same instructions and interprets
instruction after inline as if they were inlined. This makes debugger
behaves as if there's nowhere to stop on line with breakpoint.
This also makes stepping through inline function consistent with
non-inline analog. In both context debugger now stops on '}'.
#KT-18949 Fixed
#KT-17120 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
fc685aa03f
Refactoring: extract common part to function
2017-07-18 14:39:54 +03:00
Nikolay Krasko
179ec84684
Refactoring: mark getTopmostElementAtOffset() as not-null
2017-07-18 14:39:54 +03:00
Mikhail Glukhikh
c0e1b3ef2d
CFG: fix label binding for last instruction of finally block
...
So #KT-18698 Fixed
2017-07-18 14:37:13 +03:00
Mikhail Glukhikh
ab0e734e7d
PseudocodeLabel: add slightly better exception diagnostics
2017-07-18 14:36:42 +03:00
Mikhail Glukhikh
9a5b5393f5
Code cleanup: CFG (several inspections applied)
2017-07-18 14:36:18 +03:00
Mikhail Glukhikh
43f9035d07
Minor test fix
2017-07-18 13:51:27 +03:00
Toshiaki Kameyama
f8cf0f2ab9
Misleading quick fix message for an 'open' modifier on an interface member #KT-18738 Fixed
2017-07-18 18:59:22 +09:00
Alexey Sedunov
d2dbc47454
Create from Usage: Remove extra space before type parameters list
...
#KT-16352 Fixed
2017-07-17 16:09:57 +03:00
Alexey Sedunov
e98af7bfc1
Create Class from Usage: Use type parameter bounds as supertypes
...
#KT-15242 Fixed
2017-07-17 16:09:55 +03:00
Alexey Sedunov
95769dc9d3
Create from Usage: Make property lateinit where possible
...
#KT-17651 Fixed
2017-07-17 16:09:54 +03:00
Alexey Sedunov
e9bf1d2ab8
Create from Usage: Add test for KT-17537
...
#KT-17537 Fixed
2017-07-17 16:09:53 +03:00
Alexey Sedunov
0365d3a3d6
Create from Usage: Do not create type parameter by constuctor reference
...
#KT-17353 Fixed
2017-07-17 16:09:52 +03:00
Alexey Sedunov
2e76a76088
Control Flow: Fix CFG usage info for double-colon expressions
...
#KT-12551 Fixed
#KT-17092 Fixed
2017-07-17 16:09:51 +03:00
Alexey Sedunov
216b28ec55
Implement Members: Do not generate 'header' keyword
...
#KT-18466 Fixed
2017-07-17 16:09:50 +03:00
Alexey Sedunov
26d6088c82
Create from Usage: Infer expected type for lambda body
...
#KT-18186 Fixed
2017-07-17 16:09:49 +03:00
Alexey Sedunov
b48feb257c
Create from Usage: Create data class property from destructuring entry
...
#KT-18540 Fixed
2017-07-17 16:09:48 +03:00
Simon Ogorodnik
a212a1bf72
Put all internal actions under Tools | Kotlin | Internal group
2017-07-17 16:03:10 +03:00
Simon Ogorodnik
4cdc3fdde9
KT-14606: Never compute decompiled text in BasicLookupElementFactory
...
#KT-14606 fixed
2017-07-17 16:03:07 +03:00
Simon Ogorodnik
6036c95511
Prevent KotlinDecompiledFileViewProvider from reading vfile when possible
2017-07-17 16:03:04 +03:00
Simon Ogorodnik
bc5872dd8f
Add completion benchmark to check completion speed
2017-07-17 16:03:02 +03:00
Nikolay Krasko
dfef1f4921
Add reference equality shortcut for equals() in light members
2017-07-17 14:50:59 +03:00
Nikolay Krasko
44ed903303
Implement equivalence of light members by origin when possible
...
Previous implementation worked through equality that used equality
of method stubs (see LightMemberOriginForCompiledMethod). But method
stubs for compiled element can be recreated when caches are outdated,
including weak reference cleaning (see ClsJavaStubByVirtualFileCache).
This could cause misbehave of find usages when java reference has an
outdated version of light element in resolution cache.
2017-07-17 14:50:59 +03:00
Toshiaki Kameyama
fda097fc3b
Correct "before" sample in description for intention Convert to enum class #KT-18722 Fixed ( #1196 )
2017-07-17 13:03:15 +02:00
Dmitry Jemerov
6baa8614e6
Fix JS tests in AbstractConfigureKotlinTest
2017-07-17 12:09:11 +02:00
Dmitry Jemerov
2c2b64d44a
AbstractConfigureKotlinTest: J2K
2017-07-17 12:09:10 +02:00
Dmitry Jemerov
4198a5c3ec
AbstractConfigureKotlinTest: rename to .kt
2017-07-17 12:09:09 +02:00
Dmitry Jemerov
0e6c9a96c7
Specify library kind when configuring library in tests
2017-07-17 12:09:04 +02:00
Dmitry Jemerov
060b8e0025
ConfigLibraryUtil: J2K
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
921db30c90
ConfigLibraryUtil: rename to .kt
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
0fa09adf17
Provide library kind for common libraries; get rid of autodetection
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
c7e85ea28f
Better encapsulate JS library detection
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
b8d453eec3
Set library kind when importing projects from Maven
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
608f5892f9
Set library kind when importing projects from Gradle
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
902fe1f5ce
Implement explicit library kind for JS libraries, don't autodetect
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
1367e6f303
Get library versions directly, not through LibraryPresentationProvider
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
2d1ac69986
JSLibraryStdDescription: J2K
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
5f3366d60b
JSLibraryStdDescription: J2K
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
c185730846
KotlinJsModuleConfigurator: J2K
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
ffb3e2fcbc
KotlinJsModuleConfigurator: rename to .kt
2017-07-17 11:58:57 +02:00
Dmitry Jemerov
1f6788ac31
Fix CodeConformanceTest on Windows
2017-07-17 11:57:03 +02:00
Nikolay Krasko
b3e9dfcea9
Minor: fix weak warnings and formatting in KotlinReferencesSearcher.kt
2017-07-17 12:25:06 +03:00
Nikolay Krasko
d93e0adc4f
Do not wrap to light elements if Kotlin search is requested (KT-19054)
...
#KT-19054 Fixed
2017-07-17 12:25:06 +03:00
Dmitry Petrov
8c7352e668
Generate constant "" for effectively empty string
2017-07-17 09:18:41 +03:00
Knize
389c7d03b7
KT-6676 Show enum ordinal in quickdoc ( #1165 )
...
KT-6676: Show enum ordinal in quickdoc
#KT-6676 fixed
2017-07-14 22:28:16 +03:00
Simon Ogorodnik
cc8933c82b
KT-17074: Make completion respect DslMarker's
...
#KT-17074 fixed
2017-07-14 21:06:43 +03:00
Alexander Udalov
3c04ca4397
Update KotlinVersion.CURRENT to 1.1.5
2017-07-14 21:03:06 +03:00
Alexander Udalov
2611c7de7e
Restore anonymous classes for local delegate metadatas in inline functions
...
The problem is that now that the local delegated property metadata is in
the $$delegatedProperties array of the containing class, the access to
it from code calling an inline function with a local delegated property
is illegal.
Currently it seems to be a lot of work to support this rather rare case
properly (see the comment in ExpressionCodegen.getVariableMetadataValue)
so we postpone it and return the old behavior of using the anonymous
KProperty subclass for metadata
2017-07-14 15:13:12 +03:00
Alexander Udalov
616d575fb6
Support reflection for local delegated properties
...
#KT-15222 Fixed
2017-07-14 15:13:12 +03:00
Alexander Udalov
c444c4d10b
Ignore $$delegatedProperties in light analysis mode tests
...
For tests with local delegated properties, this field is generated in
the full mode, but is not generated in the lite mode because local
variables are not analyzed properly in the lite mode
2017-07-14 15:04:05 +03:00
Alexander Udalov
db27a885f1
Rework property metadata generation for local delegated properties
...
Instead of generating an anonymous class for each delegated local
variable, store metadatas in the $$delegatedProperties array of the
containing class, as is done for member properties
2017-07-14 15:04:05 +03:00
Alexander Udalov
9344f7f42f
Remove unused and obsolete code in JVM backend
2017-07-14 15:04:05 +03:00
Alexander Udalov
728de91140
Refactor generation of metadata for delegated properties
...
In CodegenAnnotatingVisitor, store all delegated properties whose
metadata should be generated in each class (identified by ASM Type).
Use the stored information later, both in the $$delegatedProperties
array generation and in the access to it from property's accessor
methods, instead of an heuristical indexOfDelegatedProperty()
2017-07-14 15:04:04 +03:00
Alexander Udalov
b97589b33e
Remove CodegenBinding.LOCAL_VARIABLE_DELEGATE
...
Calculate this value at call sites explicitly instead
2017-07-14 15:04:04 +03:00
Alexander Udalov
66ea288be7
Minor, extract fakeDescriptorsForReferences.kt
2017-07-14 15:04:04 +03:00
Stanislav Erokhin
9e98c11114
[NI] Minor. Change return type substitute function to not null
2017-07-14 12:43:09 +03:00
Stanislav Erokhin
2602216039
[NI] Use NewTypeSubstitutor when create descriptor with fresh variables.
2017-07-14 12:43:09 +03:00
Stanislav Erokhin
652676dc71
[NI] Introduce transactions for constraint system.
...
This will be used for callable reference resolution.
2017-07-14 12:43:09 +03:00
Stanislav Erokhin
cb494c46d7
[NI] Add initial constraint to IncorporationConstraintPosition
2017-07-14 12:43:08 +03:00
Stanislav Erokhin
c767545d4c
Minor. Remove unused CandidateWithBoundDispatchReceiver#copy
2017-07-14 12:43:08 +03:00
Stanislav Erokhin
ac06060260
[NI] Minor. Drop unused CommonSupertypeCalculator
2017-07-14 12:43:08 +03:00
Stanislav Erokhin
0404fbc092
[NI] Minor. Rename LambdaAnalyzer to KotlinResolutionCallbacks
2017-07-14 12:43:08 +03:00
Dmitry Petrov
178e3e2c98
[NI] Update argument types on call completion using nested calls resolution
2017-07-14 12:43:07 +03:00
Dmitry Petrov
4448637727
[NI] Support calling abstract class constructor in delegating call
2017-07-14 12:43:07 +03:00
Dmitry Petrov
549e8ba668
[NI] Use ALWAYS_SUITABLE_RECEIVER when no receiver is available
...
(as in "old" resolution & inference)
This fixes issues with Java static members access.
2017-07-14 12:43:07 +03:00
Dmitry Petrov
2bdeef7970
[NI] Postprocess lambda result expressions on call completion
...
Should update type to denotable, e.g.,
IntegerValueType(x) to proper numeric type.
TODO extract common code into some ValueArgumentPostprocessor
2017-07-14 12:43:07 +03:00
Dmitry Petrov
1d6ed4ef8e
[NI] Update lambda result types.
...
When completing calls, update return types for functional descriptors
for lambdas using type inference results.
Add toString to some Call subclasses (for debugging purposes).
2017-07-14 12:43:06 +03:00
Dmitry Petrov
2bf252afe6
[NI] Introduce lambda result dependency edges
...
Given a lambda result type R_L with constraint R_L <: T,
for each constituent type variable V in T with variance matching
approximation direction for V, consider a dependency edge V -> R
(lambda-result-dependency).
E.g., given a constraint:
R <: Out<V>
where V is approximated down (to sub-type).
After R is fixed, we obtain constraint
Out<T> <: Out<V>
which is incorporated as
T <: V
which is a relevant constraint for V.
2017-07-14 12:43:06 +03:00
Dmitry Petrov
13e8720ddc
[NI] Keep track of fresh type variables created for particular call candidate
...
Otherwise we can't obtain inferred type arguments for the call,
which is required for reification.
2017-07-14 12:43:06 +03:00
Dmitry Petrov
eb7e9196b5
[NI] Fix some argument mapping problems
...
1. Value arguments for the resolved call are indexed with resulting
descriptor value parameters (which can be substituted).
2. Simple argument can be a single vararg element if the corresponding
value parameter is a vararg parameter.
3. Resulting descriptor should be approximated to super-type.
This doesn't affect type inference, but the JVM BE expects types with
proper classifiers.
2017-07-14 12:43:06 +03:00
Stanislav Erokhin
0c79949cf1
[NI] Implement NewTypeSubstitutor
2017-07-14 12:43:05 +03:00
Stanislav Erokhin
ff8a57dc26
[NI] Implement New CommonSuperTypeCalculation
2017-07-14 12:43:05 +03:00
Stanislav Erokhin
6aac67aa7e
[NI] Approximate captured types when set them into variable.
...
Also do not store type with captured type inside possible types.
It is hack for now, but without it captured types can flow to
resolution and exception will be thrown.
2017-07-14 12:43:05 +03:00
Stanislav Erokhin
397103f9d0
[NI] Fix smart cast for expression with captured input type.
2017-07-14 12:43:05 +03:00
Stanislav Erokhin
73cc1fdd9c
[NI] Resolve type variable to Nothing for TO_SUBTYPE direction.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
6e24b0f89d
[NI] Approximate captured types when we resolve type variable TO_SUPER.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
53caa84db9
[NI] Add constrains even we try add constraint like TypeVariable <: CapturedType from subtyping.
...
If such captured type has lower type, then from TypeVariable <: lowerType => TypeVariable <: CapturedType.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
657c332a1f
[NI] Do not run "or" branches for constraint subtyping.
...
We should never do that, because otherwise we can get unexpected result.
Example for input constraint: C(in String) <: T.
If we run usual subtyping algorithm, then we get 2 constraints:
C(in String) <: T and T <: String.
Of course such system has contradiction.
2017-07-14 12:43:04 +03:00
Stanislav Erokhin
0fadf0bf70
[NI] Approximate captured types before type variable fixation.
...
We prefer denotable types when we solve constraint system.
I.e. if for T we have not equality constraint with captured type we can approximate captured type to denotable type.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
b4bf534d29
[NI] Capture from supertypes of type parameter.
...
This works by accident in OI, so this should be supported by new inference.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
c4ddc7a3a6
[NI] Store stub resolved call to trace because some clients read this before all calls are completed.
...
This is bad idea, but this is how it works in old inference.
Now we just save old behaviour.
Future plan: fix checks where we get unfinished resolved calls.
2017-07-14 12:43:03 +03:00
Stanislav Erokhin
78f8d29a4c
[NI] Fix find maximally specific for NI.
2017-07-14 12:43:03 +03:00
Dmitry Petrov
d67b51e91a
[NI] Support wrong number of type arguments and integer constants.
...
- report WRONG_NUMBER_OF_TYPE_ARGUMENTS
- make integral types work again: IntegerValueType is represented as {Int & Byte & Short & Long} in the constraint system
2017-07-14 12:43:02 +03:00
Dmitry Petrov
f5c59b1343
[NI] Report special error message on constant expression type mismatch.
2017-07-14 12:43:02 +03:00
Dmitry Petrov
5afd3e72d6
[NI] Report diagnostic on abstract class instantiation.
2017-07-14 12:43:02 +03:00
Stanislav Erokhin
b012681a53
[NI] New inference -- initial commit.
2017-07-14 12:43:02 +03:00
Dmitry Petrov
036090be91
Support intersection type in TypeUtils.contains(...)
2017-07-14 12:43:01 +03:00
Stanislav Erokhin
e8501c7d54
Add method replaceType for ReceiverValue.
...
This method will used for capturing from expressions before call resolution.
2017-07-14 12:43:01 +03:00
Nikolay Krasko
1dcdb72a49
Process UastContext service absence (EA-100670)
2017-07-14 12:39:13 +03:00
Dmitry Jemerov
448dba3f78
License-related cleanup
2017-07-14 11:09:45 +02:00
Ilya Chernikov
84a812df19
Drop forced in-process compilation (as interface compatibility is resolved)
2017-07-13 15:45:34 +02:00
Dmitry Jemerov
9b37e76b14
Don't trigger update check when an in-memory file is modified
...
#KT-18954 Fixed
2017-07-13 12:50:15 +02:00
Mikhail Zarechenskiy
2d3ce89afc
Use only completed arguments of special call
2017-07-13 12:26:03 +03:00
Dmitry Petrov
a687dea898
Introduce special IrDeclarationOrigin's for for-loop variables
...
FOR_LOOP_ITERATOR
- temporary variable for for-loop iterator
FOR_LOOP_VARIABLE
- `x` in `for (x in xs)`
FOR_LOOP_IMPLICIT_VARIABLE
- temporary variable for for-loop with destructuring, e.g.:
for ((x, y) in xys)
=>
for (tmp in xys) {
val (x, y) = tmp
}
2017-07-13 10:59:51 +03:00
Andrius Semionovas
1cab0d09ab
KT-18979 Add val to proper place for 'Add val/var' intent
2017-07-13 01:20:24 +03:00
Alexander Udalov
f01de3a935
Minor, move lateinit tests into a subdirectory
2017-07-12 18:59:02 +03:00
Alexander Udalov
b2b492447f
Maven plugin: initial support for Java 9 modules
2017-07-12 18:58:36 +03:00
Alexander Udalov
848edc14cb
Maven plugin: fix warnings, update copyrights
2017-07-12 18:58:35 +03:00
Alexander Udalov
1d46070bd5
Minor, remove unneeded codegen test
...
This test is already present in compiler/testData/cli/jvm/
2017-07-12 18:58:35 +03:00
Mikhael Bogdanov
b2a7fb9534
Update ChangeLog.md for 1.1.4-EAP-11
2017-07-12 16:33:25 +02:00
Mikhael Bogdanov
b15cfeb0a0
Add 1.1.3-2 changes
2017-07-12 16:33:25 +02:00
Mikhael Bogdanov
ef003db020
Update ChangeLog.md for 1.1.3
2017-07-12 16:33:25 +02:00
baratynskiy
0b6ef5f291
Make idea-full exported in tests-common module because kapt3 tests use KotlinTestUtils.assertEqualsToFile which uses Editor defined in idea-full
2017-07-12 17:25:32 +03:00
baratynskiy
a288b8d318
Add jsr305.jar to intellij-core because guava-19.0 jar depends on Nullable defined in jsr305.jar
2017-07-12 17:25:32 +03:00
Anton Bannykh
0935ed41d4
JS: return exit code from the NodeJs kotlinc-js wrapper
2017-07-12 17:19:59 +03:00
Dmitry Petrov
da404de51e
Add comment regarding testData generation to RangeValues.kt
2017-07-12 16:23:36 +03:00
Dmitry Petrov
2849e19af5
Add test for indices.reversed()
2017-07-12 15:56:29 +03:00
Dmitry Petrov
6a673a03e4
Generate test data for in-expression tests, fix bug with indices
2017-07-12 15:56:29 +03:00
Igor Chevdar
890c6a9983
Regenerated box tests
2017-07-12 15:12:34 +03:00
Igor Chevdar
fd380f7545
Split up test on map access onto two tests: stdlib & compiler box test
2017-07-12 15:12:33 +03:00
Mikhail Zarechenskiy
14890890b1
Minor, get rid of unchecked cast
2017-07-12 14:37:27 +03:00
Mikhail Zarechenskiy
ee173077c0
Simplify diagnostic when there are wrong number of type arguments
...
#KT-12767 Fixed
2017-07-12 14:37:27 +03:00
Mikhail Zarechenskiy
e82c909f75
Use more specific status to report diagnostics
...
#KT-12737 Fixed
2017-07-12 14:37:26 +03:00
Mikhail Zarechenskiy
178bb900b4
Introduce inapplicable wrong receiver status to improve diagnostics
...
#KT-10754 Fixed
2017-07-12 14:37:26 +03:00
Mikhail Zarechenskiy
79ee8f452c
Add test for obsolete issue
...
#KT-12688 Obsolete
2017-07-12 14:37:26 +03:00
Toshiaki Kameyama
848f7423ee
Do not report "can be private" on properties of private class
...
So #KT-18822 Fixed
2017-07-12 10:35:10 +03:00
Dmitry Petrov
f4d63158cc
Take into account JvmName annotation when generating accessors
...
#KT-17444 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Dmitry Petrov
efb6756cbc
Initialize property metadata array before class body generation
...
Initialization of companion object members (e.g., delegate properties
using provideDelegate convention) can depend on property metadata array,
which in turn can be initialized before other class members.
#KT-18902 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Dmitry Petrov
8a9707c140
Generate proper initialization for possibly nullable SAM wrapper
...
#KT-18916 Fixed Target versions 1.1.5
2017-07-12 09:37:16 +03:00
Yan Zhulanow
b99007961f
NoArg: Do not invoke initializers by default. Require "invokeInitializers" option to be set explicitly (KT-18667, KT-18668)
2017-07-12 00:17:24 +03:00
Yan Zhulanow
a983137978
Kapt: Handle parameter with Java names clashing with Java keywords properly (KT-18377)
2017-07-12 00:17:23 +03:00
Alexey Tsvetkov
e56e3d78c8
Use ANSI escape codes only with CLI tools
...
Before this change jansi was used by the compiler,
unless "kotlin.colors.enabled" is not set to false.
This caused multiple issues in different build systems,
where newer or older version of jansi could crash the JVM
since it uses native code.
The following short term solutions were discussed:
* Set "kotlin.colors.enabled" to false where jansi is not needed
(basically in any build system).
* Set "kotlin.colors.enabled" to true where jansi is needed,
and use it only when the system property is set to true.
Escaped codes are only needed in CLI tools (kotlinc, REPL),
so the second solution is preferred (less places to set the property).
#KT-17031 fixed
#KT-18874 fixed
#KT-18927 fixed
2017-07-11 21:03:11 +03:00
Kirill Rakhman
cb19a86c44
Add "simplify if with constant" inspection #KT-17919 Fixed
2017-07-11 20:00:33 +03:00
Alexey Andreev
7634673213
Fix module re-importing when inlining functions in JS BE
...
When inliner reads function's body from other module, it performs
substitution _ -> moduleAlias. However, local alias can't be used
for this purpose, since call site can be in public inline function
itself, so the correct substitution would be -> _.$$imports$$.alias
2017-07-11 19:27:08 +03:00
Mikhail Glukhikh
cc4e55b829
Add groupPath/Name, change displayName for null checks -> safe call
...
Related to KT-14799
2017-07-11 19:25:38 +03:00
Dimach
7407083624
Add inspection to simplify successive null checks #KT-14799 Fixed
2017-07-11 18:47:26 +03:00
Ilya Chernikov
fc12f37105
Rolling back commits related to Unit -> Void? confersion in RMI interface
...
since it breaks the compatibility and doesn't actually help - the problem
with NoClassDef Unit is apparently elsewhere.
2017-07-11 15:06:38 +02:00
Ilya Chernikov
3da5ba4efe
Switch to the newer gradle plugin, fix jansi problem, in-process compiling in gradle parts
...
Switching to in-process to avoid compilation warnings caused by introduced
daemon interface changes.
Switching to the gradle plugin 1.1.3 causes jansi incompatibility in
in-process compilation mode, so disabling jansi usage to avoid it.
2017-07-11 15:06:37 +02:00
Mikhail Glukhikh
0ca5c0fcc6
Refactoring (clone remove) of LiftAssignmentOutOfTryFix
...
Related to KT-18830
2017-07-11 15:28:45 +03:00
Toshiaki Kameyama
8cc9330e63
Introduce "Lift return out of try" intention #KT-18830 Fixed
2017-07-11 15:14:30 +03:00
Toshiaki Kameyama
8f9b680fc6
Support generic type parameters in 'Specify return type explicitly'
...
So #KT-18074 Fixed
2017-07-11 14:39:22 +03:00
Toshiaki Kameyama
0af3c6542d
Correct "after" sample for intention "Convert to apply" #KT-18723 Fixed
2017-07-11 14:06:01 +03:00
Alexey Andreev
5a9adcca2d
Improve performance of JS tests
...
* Do not read protos for descriptors of stdlib and kotlin-tests
repeatedly
* Parse libraries lazily in inline, so that when no inline function
exist in a test, we won't parse huge kotlin.js file
* Speed-up source map parser
2017-07-11 11:06:52 +03:00
Dmitry Petrov
83ec8aa918
typealias expansion fixes
...
- Exception on dynamic type in typealias argument expansion
#KT-18858 Fixed Target versions 1.1.5
- Wrong report location for repeated annotations in typealias arguments
#KT-18940 Fixed Target versions 1.1.5
- Don't drop type annotations for dynamic type
#KT-18944 Fixed Target versions 1.1.5
2017-07-11 10:33:39 +03:00
Nikolay Krasko
a0f11f773b
Better diagnostic for error configuration in debugger tests
2017-07-10 15:32:42 +03:00
Nikolay Krasko
68e0727894
Force space between { and first enum entry (KT-18863)
...
#KT-18863 Fixed
2017-07-10 15:32:42 +03:00
Nikolay Krasko
7f8d6b3008
Don't move line and /**/ comments during reformat (KT-18805)
...
#KT-18805 Fixed
2017-07-10 15:32:42 +03:00
Mikhail Glukhikh
ebdadf30d8
Get rid of redundant toMap() calls in DelegatingDataFlowInfo
2017-07-10 14:51:52 +03:00
Mikhail Glukhikh
8c9ace7d40
Get rid of Guava in DelegatingDataFlowInfo (except Multimap things)
2017-07-10 14:35:01 +03:00
Mikhail Glukhikh
564cc27a1d
Get rid of Guava in CFA (except Multimap things)
2017-07-10 14:34:48 +03:00
Mikhail Glukhikh
dfe2c16bc7
More cleanup: lift return / assignment out
2017-07-10 12:59:58 +03:00
Alexander Udalov
9269de721e
JPS: use module path instead of classpath for modular projects
...
No test added because it would involve running javac 9 and because tests
run JavaBuilder in the same process, this would require either a new
module in our project with dependency on JDK 9 (which would require
everyone to install JDK 9), or complex code that runs javac in another
process
2017-07-10 12:48:21 +03:00
Alexander Udalov
03a6488464
Use module path instead of class path for stdlib on Java 9
...
Also report the "named does not read unnamed" error, which was not
possible previously because we wouldn't be able to read anything from
kotlin-stdlib (because it was added to the unnamed module by default)
2017-07-10 12:48:21 +03:00
Alexander Udalov
c94b21edd5
Remove obsolete code about runtime versions conflict
2017-07-10 12:48:21 +03:00
Alexander Udalov
4128064f87
Move JavaModuleGraph from 'frontend.java' to 'cli'
2017-07-10 12:48:21 +03:00
Alexander Udalov
5b8e58fe36
Implement module accessibility checks differently in compiler and IDE
...
Essentially, the logic that was previously in
JvmModuleAccessibilityChecker.diagnosticFor, is moved into a new
abstract method JavaModuleResolver.checkAccessibility, which is
implemented differently in the compiler and in the IDE. In the compiler,
we use our JavaModuleInfo and JavaModuleGraph, as previously. In the
IDE, we use intellij's PsiJavaModule and JavaModuleGraphUtil.
This fixes strange behavior in IDE where some modules could be observed
in an invalid state. The cause of that was the JavaModuleGraph instance
caching modules in IdeJavaModuleResolver, which is a project component.
Moreover, this will allow to report an error "named module does not read
unnamed module" in the compiler, and avoid reporting it in the IDE (see
the comment in IdeJavaModuleResolver about that)
2017-07-10 12:48:21 +03:00
Alexey Andreev
7edb352aeb
Copy stdlib-js source map during JPS build
2017-07-10 12:42:33 +03:00
Dmitry Petrov
0ce6bac7eb
Generate proper 'compareTo' calls for non-primitive 'a in x .. y'
...
When we have some custom implementation of Comparable, it's important
that we compare values exactly as 'lowBound <= a && a <= highBound'.
Make sure that evaluation order and compareTo calls match for
optimized and non-optimized case.
2017-07-10 10:51:26 +03:00
Dmitry Petrov
dd5bb78178
Minor: don't use StringBuilder#setLength(0) - absent in JS
2017-07-10 10:51:26 +03:00
Dmitry Petrov
0962aec456
Minor: don't use java.lang.Integer in common test
2017-07-10 10:51:26 +03:00
Dmitry Petrov
aa7db727ba
Fold I2L with ICONST_n when beneficial
...
ICONST_0; I2L -> LCONST_0
ICONST_1; I2L -> LCONST_1
2017-07-10 10:51:26 +03:00
Dmitry Petrov
ad80c3cd7f
If at least one of the range bounds is "pure", order doesn't matter
2017-07-10 10:51:26 +03:00
Dmitry Petrov
22e12dc139
Minor: use method names in bytecode text tests
2017-07-10 10:51:26 +03:00
Dmitry Petrov
905a16e1df
Maintain proper evaluation order for 'a in x .. y'
...
As of Kotlin 1.0 and 1.1, expression 'a in x .. y' is considered
equivalent to 'x.rangeTo(y).a', and should be evaluated in the following
order:
1. x
2. y
3. a
4. compare x with a
5. compare y with a (if needed)
2017-07-10 10:51:26 +03:00
Dmitry Petrov
fc3e9318d9
Handle DUPnXm instructions in PopBackwardPropagationTransformer
2017-07-10 10:51:26 +03:00
Dmitry Petrov
6a3ff5ca46
Add tests for intrinsified in/!in and mismatching range types
2017-07-10 10:51:26 +03:00
Dmitry Petrov
850e1b11fc
Minor: test modification after review
2017-07-10 10:51:26 +03:00
Dmitry Petrov
64f880ba71
Add test for in/!in in a custom object range
2017-07-10 10:51:26 +03:00
Dmitry Petrov
9d1901fc7c
Intrinsify some mismatching range/element combinations for in/in!
...
It's safe to upcast integer types to Long,
floating-point types to Double.
So we don't have to create a range instance for cases such as
fun testLongInInt(x: Long, a: Int, b: Int) =
x in a .. b
which is equivalent to
fun testLongInInt(x: Long, a: Int, b: Int) =
x in a.toLong() .. b.toLong()
2017-07-10 10:51:26 +03:00
Dmitry Petrov
d137b04b0a
Pull up logic for ComparisonGenerator selection
2017-07-10 10:51:26 +03:00
Dmitry Petrov
ea95f31f99
Simplify some basic instructions using peephole optimization
...
DUP_X1; POP = SWAP
p1_a; p1_b; SWAP = p1_b; p1_a
where p1_a, p1_b are instructions without side effects pushing value of
size 1 on stack.
E.g.: ACONST_NULL; ALOAD 0; SWAP = ALOAD 0; ACONST_NULL
NOP; NOP = NOP
2017-07-10 10:51:26 +03:00
Dmitry Petrov
224848163d
Use InContinuousRangeExpressionGenerator for primitive range intrinsics
2017-07-10 10:51:26 +03:00
Dmitry Petrov
c855b5c889
Extract SimpleBoundedValue class
2017-07-10 10:51:26 +03:00
Dmitry Petrov
a3409b46b0
Primitive number range literal as BoundedValue
2017-07-10 10:51:26 +03:00
Dmitry Petrov
b693b54a2c
Fix DUPn_Xm handling in PopBackwardPropagationTransformer
...
DUPn_Xm instructions implicitly depend on elements directly under stack
top (which are not "copied", but still required). We can't analyze them
precisely now, and should skip methods containing these instructions.
Fortunately, we didn't generate these instructions under POP before,
but with new range check code generation and constant conditions
elimination such combination of instructions becomes possible.
2017-07-10 10:51:26 +03:00
Dmitry Petrov
4480a9bdfb
Introduce BoundedValue as a generalization of (low..high) range
...
Provide BoundedValue-based implementation of InExpressionGenerator,
test it on range of comparable values.
Drop unneeded test (range of comparables is already tested by
ranges/contains/inComparableRanges.kt).
2017-07-10 10:51:26 +03:00
Dmitry Petrov
f4ea1a2f41
Minor: move RangeValue-related classes to proper packages
2017-07-10 10:51:26 +03:00
Dmitry Petrov
d19eb05382
Introduce AbstractForInProgressionLoopGenerator
...
AbstractForInProgressionLoopGenerator is a base class for
progression-based 'for' loop generators with progression step unknown
at compile time.
2017-07-10 10:51:26 +03:00
Dmitry Petrov
83ff1a2ef3
Minor: refactor ForInProgressionExpressionLoopGenerator initialization
2017-07-10 10:51:26 +03:00
Dmitry Petrov
6551fdc695
Add test for nullable primitive in range
2017-07-10 10:51:26 +03:00
Dmitry Petrov
db1dcc68ff
Minor: cleanup in ExpressionCodegen
2017-07-10 10:51:26 +03:00
Dmitry Petrov
614d90d6ef
Skip NOP instructions in fast pop backward propagation
2017-07-10 10:51:26 +03:00
Dmitry Petrov
36cbc0defd
Ensure that {Collection, CharSequence}.indices intrinsic works with 'in'
2017-07-10 10:51:26 +03:00
Dmitry Petrov
ec99fa2142
Ensure that 'in/!in x until y' intrinsic works
2017-07-10 10:51:26 +03:00
Dmitry Petrov
05cad83c79
Fix tests for in/in! with primitive range literals
...
- ClosedFloatingPointRange<T>
- IntRange, etc
- extensions in kotlin.ranges for ranges of Byte/Int/Short
2017-07-10 10:51:26 +03:00
Dmitry Petrov
5decf65d6a
Ensure that no range instance is created for 'x in array.indices'
2017-07-10 10:51:26 +03:00
Dmitry Petrov
4320b63922
Ensure that no boolean negation is generated for !in expression
...
#KT-18777 Fixed Target versions 1.1.4
2017-07-10 10:51:26 +03:00
Dmitry Petrov
b9c0ecf2b1
Ensure that ranges are not created for in-Comparable-range-literal
...
#KT-6247 Fixed Target versions 1.1.4
2017-07-10 10:51:26 +03:00
Dmitry Petrov
7175361c97
Ensure that BranchedValue for in/!in work well with boolean operations
2017-07-10 10:51:26 +03:00
Dmitry Petrov
a3cd4f415a
Add test for comparison used for primitives and Comparable
...
There's a subtle difference in behavior between comparing
primitive Float/Double (comparison follows IEEE standard)
and boxed Float/Double (comparison is a total order).
Make sure this corner case is preserved.
2017-07-10 10:51:26 +03:00
Dmitry Petrov
fd402cb76c
Provide intrinsic for in/in! expression with range of Comparable
2017-07-10 10:51:26 +03:00
Dmitry Petrov
bd2021411c
Don't use intrinsic 'in' generator for non-intrinsified 'in' expressions
2017-07-10 10:51:26 +03:00
Dmitry Petrov
a7071ae7af
Provide intrinsic generators for in/!in expression
...
TODO some tests should fail because range of comparables
(e.g., '"Alpha" .. "Omega"') is currently not implemented
2017-07-10 10:51:26 +03:00
Dmitry Petrov
e3320c53f5
Minor: AbstractForInRangeWithGivenBoundsLoopGenerator
2017-07-10 10:51:26 +03:00
Dmitry Petrov
e261b8edf8
Minor: extract high-level interface for ForLoopGenerator
2017-07-10 10:51:26 +03:00
Dmitry Petrov
c870eeac2e
RangeCodegenUtil: convert to Kotlin + cleanup
2017-07-10 10:51:26 +03:00
Dmitry Petrov
304e4e8dce
RangeCodegenUtil: .java -> .kt
2017-07-10 10:51:26 +03:00
Dmitry Petrov
6140f29818
Ranges: introduce RangeValue class
...
The overall idea is to unify intrinsics for 'for-in' loop generation
and for 'in'/'!in' expression generation.
2017-07-10 10:51:26 +03:00
Alexey Andreev
811da2e285
Compile stdlib-js with source map
2017-07-09 14:22:08 +03:00
Ilya Chernikov
25c731241b
Fix parallel daemon start test reporting
2017-07-08 18:16:29 +02:00
Ilya Chernikov
21eed9ee78
Get rid of kotlin.Unit usage in RMI interfaces
...
attempt to fight mysterous "Cannot instantiate kotlin.Unit" exception.
2017-07-08 18:16:29 +02:00
Ilya Chernikov
06d27a9efa
Fix failing tests on TC on Windows by falling back to standard launcher
...
...in one more case
Plus some minor test tweaks, diagnostics improvement and important comments
2017-07-08 18:16:28 +02:00
Ilya Chernikov
e4ed217a3b
Add missing explicit serialVersionUID to the REPL API classes
2017-07-08 18:16:27 +02:00
Ilya Chernikov
8542e878f7
Refactor daemon periodic check and shutdown logic
...
Cleaner logic and logging, improved stability during shutdown, reduced
overhead of the periodic checks, and regular calls, should also eliminate
dying daemons scenario on parallel execution (another attempt to do it).
2017-07-08 18:16:26 +02:00
Ilya Chernikov
2c35675fd6
Refactor daemon parallel start test to improve diagnostics
...
also add daemon info to the RPC
and remove redundant daemon stopping calls, that should speed up
tests execution
2017-07-08 18:16:26 +02:00
Ilya Chernikov
e2d2c5ff42
Refactor daemon startup for better logging and cleaner code
2017-07-08 18:16:25 +02:00
Ilya Chernikov
2ec2a08753
Implement advanced gradle script template selection in the provider, improve diagnostics
2017-07-08 18:16:24 +02:00
Ilya Chernikov
ebcac3dd01
Use renamed Gradle Kotlin DSL template in the provider when available
2017-07-08 18:16:24 +02:00
Pavel V. Talanov
bf09d91e80
script.runtime: restore old apis and mark as deprecated
...
Needed for compatibility (i.e. with old gradle kdsl versions)
2017-07-08 15:10:46 +03:00
Pavel V. Talanov
20be924bbb
script.runtime: update api
...
- Clean up some api inconsistencies
- Provide experimental async resolver to allow cleaner async updates of dependencies
2017-07-08 15:10:45 +03:00
Alexander Udalov
127cd1295e
Disable JSR-305 annotations by default, introduce CLI argument
...
No package annotations are going to be loaded, and
TypeQualifierDefault/TypeQualifierNickname are no longer recognized by
default. Use the CLI argument "-Xload-jsr305-annotations" to enable this
behavior back
#KT-10942
2017-07-07 22:08:50 +03:00
Mikhail Glukhikh
522f67fda0
Severity is softened for some style issues
2017-07-07 18:15:38 +03:00
Mikhail Glukhikh
a960fa78cb
Use expression body: add new line more accurately
2017-07-07 18:15:36 +03:00
Mikhail Glukhikh
b0fda5f451
Lift return out fix: do not suggest for labeled returns
2017-07-07 18:15:35 +03:00
Mikhail Glukhikh
41893736df
Cleanup: make single KtExpression.isElseIf
2017-07-07 18:15:34 +03:00
Mikhail Glukhikh
a6f0b7c7a4
Preferred style inspections: WEAK WARNING -> INFO
2017-07-07 18:15:33 +03:00
Mikhail Glukhikh
1d2017b0fc
Cleanup: apply "cascade if..." inspection (+ some others)
2017-07-07 18:15:32 +03:00
Mikhail Glukhikh
9c06739594
Cleanup: apply "lift out..." inspection (+ some others)
2017-07-07 18:15:30 +03:00
Mikhail Glukhikh
0c41ceea9d
"Cascade if" inspection: do not suggest for one-line if
2017-07-07 18:15:28 +03:00
Mikhail Glukhikh
0fe9030eba
"Cascade if" inspection: don't highlight for complex logical conditions
...
Related to KT-18615
2017-07-07 18:15:27 +03:00
Mikhail Glukhikh
8273eff1a1
Introduce "cascade if" inspection suggesting replacement with when
...
So #KT-18615 Fixed
2017-07-07 18:15:26 +03:00
Mikhail Glukhikh
1ddaee5b4a
"Lift return / assignment": don't highlight if other returns available
2017-07-07 18:15:24 +03:00
Mikhail Glukhikh
691b733c55
"Lift return / assignment": do not suggest for else arguments
2017-07-07 18:15:22 +03:00
Mikhail Glukhikh
042990dda1
"Lift return / assignment": do not suggest for too long expressions
2017-07-07 18:15:21 +03:00
Mikhail Glukhikh
398f92dc6f
Lift assignment out: do not suggest if other assignments available
...
So #KT-18709 Fixed
2017-07-07 18:15:20 +03:00
Mikhail Glukhikh
9c4dfa3343
Lift return out: do not suggest for lambda in return #KT-18711 Fixed
2017-07-07 18:15:18 +03:00
Mikhail Glukhikh
c0d10264bc
Lift assignment out: do not highlight for exactly one assignment
...
Related to KT-14900
2017-07-07 18:15:17 +03:00
Mikhail Glukhikh
1010ecca8c
Lift return out: do not report for zero returns
...
Also, do not highlight (but suggest fix) for exactly one return
Related to KT-14900
2017-07-07 18:15:16 +03:00
Mikhail Glukhikh
2deef48b84
Cleanup code: BranchedFoldingUtils
2017-07-07 18:15:15 +03:00
Mikhail Glukhikh
2d1abda9a1
Convert "lift return / assignment" intentions into a single inspection
...
Also includes minor test fix, related to KT-14900
2017-07-07 18:15:14 +03:00
Mikhail Glukhikh
8f33bd0768
Handle break / continue / throw in lift return / assignment intentions
...
So #KT-14900 Fixed
2017-07-07 18:15:09 +03:00
Mikhail Glukhikh
523cbc6723
Convert to expression body: insert new-line after = for long lines
2017-07-07 18:15:07 +03:00
Mikhail Glukhikh
d08b18f5f8
Introduce "use expression body" inspection #KT-16063 Fixed
...
Converted from the relevant intention
Reported cases: one-liners, whens
Also, more exact caret detection in local inspection tests
2017-07-07 18:15:06 +03:00
takahirom
fe9d3f16d3
KT-18501: Fix to find KDoc even if KDoc is in ModifierList
2017-07-07 18:12:19 +03:00
Dmitry Jemerov
4b92349031
Specify group for "Redundant 'Unit' return type" inspection
2017-07-07 16:53:42 +02:00
nd
33a93e5fc5
Inspection detecting redundant Unit return type ( #1144 )
2017-07-07 16:51:53 +02:00
Dmitry Jemerov
5f9a33564a
Implement option for wrapping method annotations
2017-07-07 16:48:31 +02:00
Dmitry Jemerov
a379a814ba
Implement option for wrapping class annotations
2017-07-07 16:48:31 +02:00
Dmitry Jemerov
6c62b60147
Implement option for wrapping parameter annotations
2017-07-07 16:48:31 +02:00
Dmitry Jemerov
be15ee3c03
Add "Wrap extends/implements list" option
2017-07-07 16:48:30 +02:00
Dmitry Jemerov
722cc521a9
Add "Blank lines before }" option
...
#KT-15504 Fixed
2017-07-07 16:48:30 +02:00
Dmitry Jemerov
5c8a90fe85
"Blank lines after class header" option supported
2017-07-07 16:48:30 +02:00
Dmitry Jemerov
6a96ade02c
Options for blank lines between 'when' branches
...
#KT-18607 Fixed
2017-07-07 16:48:29 +02:00
Dmitry Jemerov
8fe2858c6a
Option to use normal indent in chained calls
...
#KT-18605 Fixed
2017-07-07 16:48:29 +02:00
Simon Ogorodnik
d8bb0b1023
KT-16999: Fix duplicates in parameter info
...
Use ShadowedDeclarationFilter in Parameter Info
#KT-16999 fixed
2017-07-07 17:40:32 +03:00
nd
58e5c497d0
Intention to replace add/addAll on a mutable collection with += ( #1143 )
2017-07-07 16:34:20 +02:00
nd
fae8efdc7f
Handle unsafe implicit invoke on array access expression ( #1151 )
2017-07-07 16:29:11 +02:00
Dmitry Jemerov
8cc9195fae
Merge remote-tracking branch 'origin/master'
2017-07-07 13:26:59 +02:00
Dmitry Jemerov
9dc4183a16
Fix tests affected by the inspection behavior change
2017-07-07 13:25:59 +02:00
Mikhail Zarechenskiy
039729908d
Minor, remove field that never used
2017-07-07 14:20:03 +03:00
Mikhail Zarechenskiy
3fed4e6dc7
Improve diagnostic for unresolved reference when function expected
...
#KT-10657 Fixed
2017-07-07 14:20:02 +03:00
Mikhail Zarechenskiy
0ae45a2835
Add test for obsolete issue
...
#KT-6502 Obsolete
2017-07-07 14:20:01 +03:00
Mikhail Zarechenskiy
c853ac95ad
Improve diagnostic message for annotations with @receiver
...
#KT-14647 Fixed
2017-07-07 14:19:59 +03:00
Mikhail Zarechenskiy
f5cd8c7e4d
Relax name shadowing warning on parameter names
...
#KT-17611 Fixed
2017-07-07 14:19:57 +03:00
Mikhail Zarechenskiy
daa8521729
Avoid getting descriptors for collection literals from built-ins scope
...
#KT-18845 Fixed
2017-07-07 14:14:30 +03:00
Dmitry Jemerov
a12594fe27
Merge branch 'KT-18717' of https://github.com/nd/kotlin
2017-07-07 13:10:52 +02:00
Dmitry Jemerov
1de685949b
Merge branch 'KT-18797' of https://github.com/nd/kotlin
2017-07-07 13:02:02 +02:00
Alexey Andreev
2f74fd6f90
Don't exit with error status when node.js tests fail
2017-07-07 11:57:32 +03:00
Vyacheslav Gerasimov
4cef8728d7
Add layout file name in completion for Android Extension properties
...
#KT-11051 Fixed
2017-07-07 03:24:19 +03:00
Vyacheslav Gerasimov
f59859842a
Fix Android extensions import rename
...
#KT-17890 Fixed
2017-07-07 03:24:10 +03:00
Vyacheslav Gerasimov
ee53e81e8e
Fix Android resource reference folding
...
Properly fold qualified expressions and handle nested references
#KT-18429 Fixed
2017-07-07 03:24:03 +03:00
Vyacheslav Gerasimov
7c6ffff198
Refactor Kotlin Gradle configurator
2017-07-07 03:23:34 +03:00
Vyacheslav Gerasimov
9810c10f8b
Implement Add Kotlin library quickfix for GSK
2017-07-07 03:23:26 +03:00
Vyacheslav Gerasimov
2ec1a4311a
Implement Kotlin configurator for GSK
...
#KT-14965 Fixed
2017-07-07 03:23:17 +03:00
Vyacheslav Gerasimov
2116877991
J2K: rename KotlinAndroidGradleModuleConfigurator .java -> kt
2017-07-07 03:22:28 +03:00
Simon Ogorodnik
9f340b40c2
Minor: Add test to check inferred types shown correctly in parameter info
...
#KT-11858 Obsolete
2017-07-06 20:40:53 +03:00
Alexander Udalov
0f15413d47
Minor, do not output stack trace on invalid contents of build file
2017-07-06 17:03:25 +03:00
Alexander Udalov
55468735df
Rename -module argument to -Xbuild-file
...
To prevent confusion with Java 9 module-related arguments
#KT-18754 Fixed
2017-07-06 17:03:25 +03:00
Alexey Sedunov
6200d07808
Minor: Fix compilation
2017-07-06 14:42:24 +03:00
Alexander Udalov
0b399fe7bb
Ignore testAutomaticModuleNames on older Java 9 builds
2017-07-06 13:01:16 +03:00
Alexander Udalov
158afdea2b
Improve sorting of compiler messages in GroupingMessageCollector
...
Ensure that messages reported on a file but with no line information are
reported before diagnostics related to code. This fixes
Java9ModulesIntegrationTest.testSeveralModulesWithTheSameName on some
machines
2017-07-06 13:01:16 +03:00
Alexander Udalov
3808ecbd1e
Minor, return a set in JavaModuleGraph.getAllDependencies
...
To prevent duplicate roots to be added
2017-07-06 13:01:15 +03:00
Alexander Udalov
ec6e4f2469
Minor, take List instead of Iterable in convertClasspathRoots
...
To emphasize that the order is important
2017-07-06 13:01:15 +03:00
Alexander Udalov
0f06140a3d
Check 'Multi-Release' manifest attribute value for multi-release jars
...
See http://openjdk.java.net/jeps/238
2017-07-06 13:01:14 +03:00
Alexander Udalov
7ab018da7b
Use ASM 6 API to read class files in IDE
...
Otherwise ASM throws exceptions trying to read module-info.class
#KT-13072 Fixed
2017-07-06 13:01:13 +03:00
Alexander Udalov
51fb02b2d5
Report warning for several modules with same name on module path
2017-07-06 13:01:13 +03:00
Alexander Udalov
e8a8bdc58e
Add test on cyclicly dependent Java 9 modules
2017-07-06 13:01:12 +03:00
Alexander Udalov
9199023952
Improve automatic module handling in module graph construction
...
Add all automatic modules to roots if at least one automatic module is
added, as per
http://cr.openjdk.java.net/~mr/jigsaw/spec/api/java/lang/module/package-summary.html
2017-07-06 13:01:12 +03:00
Alexander Udalov
c428505d4d
Load automatic module names correctly
...
Load the Automatic-Module-Name manifest entry value if it's present (see
http://mail.openjdk.java.net/pipermail/jpms-spec-observers/2017-May/000877.html ),
otherwise sanitize the name of the .jar file, throwing out all chars
except alphanumeric, duplicate dots and a version qualifier
2017-07-06 12:50:05 +03:00
Alexander Udalov
612e64d8e3
Load module-info.class from multi-release jars' META-INF/versions/
2017-07-06 12:50:04 +03:00
Alexander Udalov
5b9ee88b52
Remove --add-opens options to workaround Java 9 visibility checks
...
These options are no longer needed because the problematic code in
intellij-core that was accessing these private APIs has been dealt with
in the 171 branch.
The remaining options in "Codegen Tests" run configurations are needed
because of reflection usage on JDK internals in KtUsefulTestCase
2017-07-06 12:50:04 +03:00
Alexander Udalov
40d4eeab4f
Do not try to load jrt file system from JDK version < 9
...
The FileSystems.newFileSystem call failed if the compiler was being run
on Java 9 with -jdk-home $JDK_16
2017-07-06 12:50:03 +03:00
Alexander Udalov
0f4684da67
Fix codegen tests on JDK 9 with jdkKind = FULL_JDK
2017-07-06 11:58:03 +03:00
Alexey Andreev
4bd9866975
Remove unnecessary overriding methods, fix compilation
2017-07-06 10:34:05 +03:00
Alexey Andreev
ca63717124
Multiple fixes of JS source maps
...
- elvis expression with complex RHS
- destructuring declarations
- decomposition of `var` statement (for example, in case of
inline destructuring functions)
- `is` LHS &&/|| inline fun RHS
- argument assignment to temporary var on inline call site
- assignment of `next()` result to temporary var in `for` expression
- rethrow statement in exception handler
2017-07-06 10:20:49 +03:00
Alexey Andreev
f873834529
Fix JS source maps for objects and enums
2017-07-06 10:20:49 +03:00
Alexey Andreev
d8fe7e55db
Fix JS source maps for lambdas with captured variables
2017-07-06 10:20:48 +03:00
Alexey Andreev
ec2a5bf0ee
Fix JS source map for char boxing and unboxing
2017-07-06 10:20:47 +03:00
Alexey Andreev
be7f3a787c
Fix JS source maps for when expression
2017-07-06 10:20:46 +03:00
Alexey Andreev
d613124cb1
Generate JS source maps for temporary vars declarations and definitions
2017-07-06 10:20:46 +03:00
Alexey Andreev
64f335380f
Provide more source map info about statements in JS tests
2017-07-06 10:20:45 +03:00
Alexey Andreev
fa95f78e78
Generate JS source map for if statement got from optional argument
2017-07-06 10:20:44 +03:00
Alexey Andreev
1e74325c52
Generated source map for JS function's closing curly bracket
2017-07-06 10:20:44 +03:00
Alexey Andreev
4e18ea2d04
Fix JS source map of decomposed conditional expression
2017-07-06 10:20:43 +03:00
Alexey Andreev
b5218915f8
Fix associativity of generated comma operator in JS BE
2017-07-06 10:20:42 +03:00
Alexey Andreev
2122f57f51
Don't merge locations in JS source map test cases
...
Don't merge locations of containing if/while/do..while/for
statements with locations of conditions
2017-07-06 10:20:42 +03:00
Alexey Andreev
dea73ebecf
Refactor generator of JS source map
...
- refactor pipeline for generation of source map
- generate "empty" mappings for nodes that impossible
to map to something reasonable
- generate more accurate locations in source maps for specific
JS AST nodes
- for binary operation nodes parser now returns location
of binary operator tokens instead of location of first operand
- change completely how source map remapper works
2017-07-06 10:20:41 +03:00
Nikolay Krasko
6a2f3d8065
Minor: remove let usage
2017-07-05 20:21:13 +03:00
Nikolay Krasko
72611d1337
Fix extract refactoring for android extensions declarations (KT-11048)
...
Allow any target declarations in marking references. Otherwise conflicts
for references resolved to xml are not considered broken.
This also fix evaluate for extension fields.
#KT-11048 Fixed
2017-07-05 20:21:13 +03:00
Mikhail Glukhikh
a09b31b568
Classify all Kotlin inspections
2017-07-05 16:00:22 +03:00
Mikhael Bogdanov
2808e45b89
Enable test in js, native
2017-07-05 11:15:38 +02:00
Dmitry Neverov
4a0e70ad53
Report MemberVisibilityCanBePrivate on visibility modifier if present
2017-07-04 21:33:37 +02:00
Alexander Udalov
d97fa604e1
Write metadata for suspend function into anonymous coroutine classes
...
To render nice Kotlin types in toString() of continuation
2017-07-04 19:41:48 +03:00
Alexander Udalov
5a8546519a
Do not fail on lambdas without metadata in toString()
2017-07-04 19:41:47 +03:00
Vladimir Koshelev
61e52f0bfe
Improve a reported message if -jdk-home path does not exist.
...
Fix KT-18794
2017-07-04 19:40:42 +03:00
Alexey Sedunov
994b6d687c
Find Usages: Use MethodReferencesSearch to find constructor usages
2017-07-04 19:37:55 +03:00
Alexey Sedunov
28c5978d81
Light Classes: Fix AIOOBE on KtParameter -> PsiParameter conversion
...
EA-88058 Fixed
2017-07-04 19:37:54 +03:00
Alexey Sedunov
d69caea725
Kotlin Facet: Ignore modules unprocessed by kotlin project resolver
...
This happens in AS on project opening, but we can't (re-)configure facet
in such case since relevant module data are not available
#KT-18725 Fixed
2017-07-04 19:37:53 +03:00
Alexey Sedunov
ee200c87ea
Kotlin Facet: Change module JDK according to jdkHome
...
It's possible when JDK with the same home path is already configured
2017-07-04 19:37:52 +03:00
Alexey Sedunov
2a53043fef
Generate equals/hashCode(): Fix function body generation
...
#KT-18596 Fixed
2017-07-04 19:37:50 +03:00
Simon Ogorodnik
33c22b8251
KT-8208: Support static members completion when receiver not-imported
...
#KT-8208 fixed
2017-07-04 16:41:50 +03:00
Dmitry Petrov
16505daeea
Fix 'equals' for NotNullBasicValue
...
NotNullBasicValues were merged incorrectly sometimes,
which caused problems with INSTANCEOF checks.
#KT-18779 Fixed
2017-07-04 12:19:10 +03:00
Mikhael Bogdanov
8121c1d3c4
Update test to support js-backend
2017-07-04 10:12:42 +02:00
Dmitry Neverov
08afaca518
Don't propose making property private if it's used in inline function
2017-07-03 21:58:22 +02:00
Mikhael Bogdanov
8666b95dd2
Delete local variables on default mask expantion
...
#KT-18792 Fixed
2017-07-03 17:01:06 +02:00
Mikhael Bogdanov
01e2f8e32c
Preventively allocate slots for additional default parameters
...
Otherwise they are corrupted by inline
2017-07-03 17:01:06 +02:00
Denis Zharkov
5453f3067c
Load @NonNull(when=UNKNOWN) annotated type as a flexible one
2017-07-03 17:55:37 +03:00
Denis Zharkov
55b585f3d0
Replace JavaTypeAttributes interface with simple data class
2017-07-03 17:55:37 +03:00
Denis Zharkov
939bacc810
Minor. Drop unused parameters in LazyJavaScope
2017-07-03 17:55:37 +03:00
Denis Zharkov
e26c210d69
Support TypeQualifierDefault from JSR 305 for nullability qualifiers
...
#KT-10942 Fixed
2017-07-03 17:55:37 +03:00
Denis Zharkov
5141a88a53
Add TypeQualifier annotation to IDE test data
...
Othewise nullability is not processed correctly
2017-07-03 17:55:37 +03:00
Denis Zharkov
a95d3e601b
Fix container for extension receiver types from Java
...
No tests are added since there are some already
(e.g. TypeEnhancement.testOverriddenExtensions)
2017-07-03 17:55:37 +03:00
Denis Zharkov
57b7b91444
Do not add container annotaions to type artificially
...
It was only used for type-related nullability/mutability
annotations and it was necessary to remove them
in the descriptor renderer (duplicating their fqnames there).
At the same time they're only needed for types enhancement
where they can be simply restored from type owners' descriptors
The testData changes are more or less correct: this kind of annotations
is bound both to types themselves and their use because of their targets
2017-07-03 17:55:37 +03:00
Denis Zharkov
f877c82029
Simplify computeIndexedQualifiersForOverride() declaration
...
Do not pass properties of the to its own methods
2017-07-03 17:55:37 +03:00
Denis Zharkov
8812844d43
Move type qualifiers calculation into SignatureParts
...
It helps not to pass signature parts content to them
2017-07-03 17:55:37 +03:00
Denis Zharkov
92f9194112
Support TypeQualifierNickname for nullability annotations
...
#KT-10942 In Progress
2017-07-03 17:55:37 +03:00
Denis Zharkov
f2a55d590c
Move type qualifiers extraction to SignatureEnhancement
...
These methods will depend on other components soon
2017-07-03 17:55:37 +03:00
Denis Zharkov
b3caa1da34
Introduce SignatureEnhancement component
...
It will depend on the AnnotationTypeQualifierResolver later
2017-07-03 17:55:37 +03:00
Denis Zharkov
21d1d16e74
Drop RawBound class and relevant property from JavaTypeAttributes
...
The main motivation behind this change is code simplification:
raw bounds can be simply replaced with common flexible bounds
2017-07-03 17:55:37 +03:00
Denis Zharkov
cbe62f076d
Drop JavaTypeAttributes::isMarkedNotNull property
...
The only cases this code runs are annotation parameters
and supertypes that are already not-nullable by default
2017-07-03 17:55:37 +03:00
Denis Zharkov
42b2534c46
Remove redundant check in WhenByPlatformEnumChecker
...
If a type is annotated as not null its upper bound is not nullable
in most cases besides override conflicts, but in the latter case
we should behave consistently with flexibility of this type
2017-07-03 17:55:37 +03:00
Denis Zharkov
fc9810182e
Get rid of JavaTypeAttributes::allowFlexible property
...
It's only false now in case of annotation parameters
2017-07-03 17:55:37 +03:00
Denis Zharkov
507eccc4ec
Replace another allowFlexible=false with isNotNullable
...
Having field initilized doesn't make it inflexible in a sense
of mutability
2017-07-03 17:55:37 +03:00
Denis Zharkov
a0268d23bb
Get rid of trivial allowFlexible replacing
...
As the type is anyway replaced with not-nullable version
explicitly, the only thing that changes is what type is loaded
for String[][].class:
- before it would be Array<Array<String?>?>
- now it's Array<(out) Array<(out) String!>!>
It's both a minor change and new behaviour can be considered
as correct
2017-07-03 17:55:37 +03:00
Denis Zharkov
58442e7b8b
Drop TypeUsage::MEMBER_SIGNATURE_CONTRAVARIANT
...
It's only used for value parameters, but they're always resolved
with flexible types now
2017-07-03 17:55:37 +03:00
Denis Zharkov
6cd6608281
Drop TypeUsage::MEMBER_SIGNATURE_COVARIANT
...
It's only used for choosing mutability of a collection class, but
using annotations while loading is redundant since there is
a separate phase of type enhancement where they're taken
into account (for flexible types)
For inflexible type it doesn't matter since they appear only in
special cases like annotation methods (where collection classes can't be met)
2017-07-03 17:55:37 +03:00
Denis Zharkov
5ca3459a0f
Minor. Merge TypeUsage::MEMBER_SIGNATURE_INVARIANT and COMMON
...
Their usages are effectively the same
2017-07-03 17:55:37 +03:00
Denis Zharkov
69e70575f9
Drop some of the TypeUsage enum entries
...
The only sensible usage of them was in the `isNullable` method
But you can check that UPPER_BOUND/SUPERTYPE_ARGUMENT are always
flexible and TYPE_ARGUMENT is not only in case of annotation
methods/parameters
2017-07-03 17:55:37 +03:00
Denis Zharkov
5c8f2a8ae8
Add resolution for JSR 305 type qualifier nicknames
...
#KT-10942 In Progress
2017-07-03 17:55:37 +03:00
Denis Zharkov
79e14f88e4
Support package level annotations in Java
...
#KT-10942 In Progress
2017-07-03 17:55:37 +03:00
Denis Zharkov
b7ead75947
Minor. Move BinaryJavaModifierListOwner -> MapBasedJavaAnnotationOwner
2017-07-03 17:55:04 +03:00
Mikhail Glukhikh
2d1e1cb6ed
Minor: !!-related quick-fixes refactoring
2017-07-03 15:18:10 +03:00
Dmitry Neverov
4f678fa85c
Do not suggest !! on expression which is always null
...
Related to KT-14643
2017-07-03 15:14:11 +03:00
Dmitry Neverov
66bd9d63dd
Do not suggest adding !! on null constant #KT-14643 Fixed
2017-07-03 15:13:46 +03:00
Dmitry Jemerov
84418738a7
Optimize library kind detection and make it interruptible
2017-07-03 12:02:50 +02:00
Mikhael Bogdanov
49252f6eec
Properly process primitive receiver on inlining bound callable references
...
#KT-18728 Fixed
2017-07-03 10:51:51 +02:00
Ilya Gorbunov
fe17c4416e
Fix a typo: retail -> retain
...
#KT-18526 Fixed
2017-07-01 17:05:17 +03:00
Ilya Gorbunov
a21dbf08a8
Reorder values and entries in MutableMap to match docs
...
Also change references to mutable collections in docs.
#KT-18670 Fixed
2017-07-01 17:05:17 +03:00
Stuart Kent
962958c403
Fix String capitalize/decapitalize sample references and sample names
2017-07-01 17:05:17 +03:00
Simon Ogorodnik
ab919886ae
Fix rendering of local anonymous object types for quick doc
...
#KT-8893 fixed
2017-07-01 15:04:29 +03:00
Nikolay Krasko
25109671b1
Postpone counting light elements till all psi checks done
2017-07-01 03:05:38 +03:00
Nikolay Krasko
fe17d616b9
Don't process Java references twice when looking for kotlin overrides (KT-17751)
2017-07-01 03:05:37 +03:00
Nikolay Krasko
0cd8ee57b8
Don't run another method reference search for constructors (KT-17751)
...
Constructors can't be used as properties and have no overrides.
2017-07-01 03:05:37 +03:00
Alexander Udalov
37982e4bb1
Move SAM-related descriptor classes to module frontend.java
...
Also move SyntheticMemberDescriptor to module resolution
2017-06-30 21:02:18 +03:00
Alexander Udalov
9717745b83
Minor, remove implementation overridden in all subclasses
2017-06-30 21:02:18 +03:00
Alexander Udalov
778a6758a5
Do not add inner class names to functions in Java static scope
...
Previously it was needed for SAM adapters, but they can no longer be
found in this scope
2017-06-30 21:02:18 +03:00
Sergey Igushkin
c4e7f1aa97
Fix parsing Gradle version with zero
...
(cherry picked from commit 732972c)
2017-06-30 20:44:59 +03:00
Sergey Igushkin
40a8bbf24d
Fix friend paths not configured correctly with separate classes dirs
...
(cherry picked from commit d5ee659)
2017-06-30 20:44:49 +03:00
Alexey Sedunov
9ba868a903
Minor: Fix test data
2017-06-30 13:53:09 +03:00
Valentin Kipyatkov
6df0c28119
Correction after code review
2017-06-30 11:21:16 +03:00
Valentin Kipyatkov
8fabb6945e
Allow slice rewrite in trace when in IDE
2017-06-30 11:21:16 +03:00
Valentin Kipyatkov
61d9a6b9cd
Use the same way to check for ProcessCanceledException everywhere
2017-06-30 11:21:16 +03:00
Valentin Kipyatkov
eb4f322c77
Do not store ProcessCanceledException as result for cached value
2017-06-30 11:21:15 +03:00
Valentin Kipyatkov
09dbb07fb8
Optimization to reuse BindingContext in completion
2017-06-30 11:21:15 +03:00
Sergey Igushkin
1174c7bdd9
Add sourcesJar and javadocJar to artifacts of gradle-tools projects.
...
(cherry picked from commit 450345b )
2017-06-29 20:59:36 +03:00
Sergey Igushkin
a4be282074
Add Gradle Plugin Portal publication to the buildscripts
...
Add option to disable signing (-PnoSign), to be used when publishing
pre-built artifacts
Add option to define specific version for publishing, to be used when
publishing test versions
(cherry picked from commit dcd55e9)
2017-06-29 20:59:36 +03:00
Dmitry Jemerov
4497874f31
Remove unnecessary saveAll()
2017-06-29 17:56:59 +02:00
Sergey Igushkin
d1bddb6250
Fix disabling IC not applied to kapgGenerateStubsKotlin tasks
...
Issue #KT-18647 Fixed
(cherry picked from commit ffb656a)
2017-06-29 18:44:00 +03:00
Sergey Igushkin
a9cad7f112
Add a test for project.buildDir lazy evaluation
...
(cherry picked from commit ab0f9cd)
2017-06-29 18:42:50 +03:00
Nikita Skvortsov
b2cdb0d63d
evaluate and use buildDir as late as possible
...
(cherry picked from commit a2c7f80)
(cherry picked from commit 5643fa1)
2017-06-29 18:41:53 +03:00
Sergey Igushkin
351f810797
Add tests for separate classes dirs
...
(cherry picked from commit b07d79b)
2017-06-29 18:31:53 +03:00
Sergey Igushkin
700b162233
Implemented separate classes dirs support in the Gradle plugins.
...
Issue #KT-18495 Fixed
Issue #KT-18544 Fixed
(cherry picked from commit e25f0fd)
2017-06-29 18:31:23 +03:00
Sergey Igushkin
ae47c59dc9
Pass freeCompilerArgs unchanged to the compiler, without parsing them
...
with the compiler loaded along the Gradle plugin.
Issues: #KT-17618 Fixed
(cherry picked from commit 44f7428)
2017-06-29 18:27:18 +03:00
Alexey Sedunov
88968807b2
Generate equals/hashCode(): Swap class literals in comparison
2017-06-29 17:42:20 +03:00
Alexey Sedunov
e3e4c447fa
Generate equals/hashCode(): Use class literals when possible
...
#KT-18683 Fixed
2017-06-29 17:42:18 +03:00
Alexey Sedunov
50a38df8b1
Remove Parentheses: Forbid on call inside a call without argument list
...
#KT-18699 Fixed
2017-06-29 17:42:17 +03:00
Alexey Sedunov
20969f161c
Introduce Parameter: Fix NPE on invalid parameter name or type
...
EA-95189 Fixed
2017-06-29 17:42:16 +03:00
Alexey Sedunov
2e8b374ce8
Move: Use KtNamedDeclaration as referrer when reporting a conflict
...
EA-103817 Fixed
2017-06-29 17:42:15 +03:00
Alexey Sedunov
58addf72ff
New File Action: Do not start under write action
...
EA-102468 Fixed
2017-06-29 17:42:14 +03:00
Alexey Sedunov
b1637df8df
Misc: Format generated members under write action
...
EA-87901 Fixed
2017-06-29 17:42:13 +03:00
Alexey Sedunov
392370bb23
Extract Interface: Fix NPE
...
EA-90440 Fixed
2017-06-29 17:42:11 +03:00
Alexey Sedunov
dd0f8e98e8
Create Type Alias From Usage: Disable on PsiPackage
...
EA-92625 Fixed
2017-06-29 17:42:10 +03:00
Alexey Sedunov
6060a39494
Change Signature: Use correct index in getOriginalParameter()
...
#KT-18642 Fixed
#KT-18606 Fixed
2017-06-29 17:42:09 +03:00
Nikolay Krasko
9122f58d5d
Re-enable optimize on the fly activation when unused imports found
...
Remove deprecated usages
2017-06-29 16:56:15 +03:00
Nikolay Krasko
6a5d6854bb
Refactoring: inline implementation into KotlinStdJSProjectDescriptor
2017-06-29 16:56:15 +03:00
Nikolay Krasko
df393e18fe
Configure AbstractInspectionTest with project descriptors
...
Previous implements produced flaky tests when non-js tests were
executed after js.
2017-06-29 16:56:15 +03:00
Nikolay Krasko
be28c4a48f
Remove unused configuration of runtime library
...
The project descriptor used in the test already has the configuration.
Also directive is not used in tests.
2017-06-29 16:56:15 +03:00
Mikhail Glukhikh
c8a9b5f67a
Restrict range of "simplifiable call chain" inspection
2017-06-29 16:25:58 +03:00
Mikhail Glukhikh
840847e47c
Code cleanup: several inspections applied
2017-06-29 16:25:57 +03:00
Mikhail Glukhikh
fdca96634e
Add restrictions for "simplifiable call chain" inspection
...
Do not use on maps; do not suggest for lambdas with return inside
Related to KT-18274
2017-06-29 16:25:55 +03:00
Mikhail Glukhikh
2f0159a7ab
Minor fix: useless call on collection type
2017-06-29 16:25:54 +03:00
Mikhail Glukhikh
36be1fdaef
Introduce "simplifiable call chain on collection" inspection
...
Related to KT-12165
So #KT-18274 Fixed
So #KT-17198 Fixed
2017-06-29 16:25:52 +03:00
Mikhail Glukhikh
bdb9f00c75
Introduce "Useless call on collection type" inspection
...
Related to KT-12165
Supported functions: filterNotNull, filterIsInstance,
mapNotNull, mapNotNullTo, mapIndexedNotNull, mapIndexedNotNullTo
Also, "Useless cal on not-null" improved a bit
2017-06-29 16:25:50 +03:00
Mikhail Glukhikh
f80f41d254
Introduce "redundant explicit type" inspection #KT-18517 Fixed
...
Reported cases: constants, constructors, object references
2017-06-29 16:25:47 +03:00
Mikhail Glukhikh
0f4ae3b727
Introduce "Useless call on not-null type" inspection #KT-18386 Fixed
...
Supported functions: orEmpty(), isNullOrEmpty(), isNullOrBlank()
2017-06-29 16:25:45 +03:00
Alexander Udalov
8c21ff66a4
Always treat all sources as parts of the module being compiled
...
If a path to the module-info.java file is passed as an argument, we
should treat all other source files passed as arguments (either as
individual source files or inside a source directory) as members of that
module. Previously we treated other source files as members of the
unnamed module, and this resulted in incorrect errors when using a
member exported with a qualification from another named module, for
example
#KT-18598 In Fixed
2017-06-29 15:59:57 +03:00
Alexander Udalov
5192f946c5
Fix depth-first search for Java 9 modules
...
To compute modules to be added to compilation roots in
JavaModuleGraph.getAllDependencies, we should look not only for
transitive requirements of root modules, but for transitive requirements
of _root modules' requirements_. The same logic applies to
JavaModuleGraph.reads. In other words, when looking for a path in the
module graph between two modules, the first edge's transitiveness
doesn't matter, but all other edges after the first must be transitive.
There was also a stupid bug in dfs in
JavaModuleGraph.getAllDependencies: we continued the DFS only if the
module _was not_ added to the "visited" set ("add" returns true if the
element was added successfully)
#KT-18598 In Progress
2017-06-29 15:59:57 +03:00
Alexander Udalov
72f37a278c
Do not add all modules from module path when compiling unnamed module
...
Note that javac reports a nice error in this case ("package foo is
declared in module lib, which is not in the module graph"), but we only
report "unresolved reference" because the corresponding modules are not
added to classpath roots. We should improve this in the future
#KT-18598 In Progress
2017-06-29 15:59:57 +03:00
Alexander Udalov
f8346d21c2
Check type alias expansion for Java 9 module accessibility
...
#KT-18598 In Progress
2017-06-29 15:59:57 +03:00
Alexander Udalov
8768500844
Fix incorrect behavior and refactor JvmModuleAccessibilityChecker
...
Previously we assumed that a symbol is accessible if its containing
package is exported by module-info.java. Which was obviously wrong and
could lead to a situation where a symbol would be incorrectly accessible
if a usage module has a dependency on the symbol's module in IDEA
project terms, but does not require it in its module-info.java
#KT-18598 In Progress
2017-06-29 15:59:57 +03:00
Alexander Udalov
2d3888c710
Do not add JDK .jar roots if the JDK is modular (9+)
...
Files like ant-javafx.jar, deploy.jar, java.jnlp.jar, javafx-swt.jar etc
should not be added to the classpath if JDK home points to a JDK 9
distribution
2017-06-29 15:59:57 +03:00
Alexander Udalov
9274d963aa
Create KotlinCoreEnvironment a bit later in tests
...
Before this change, diagnostic tests with Java source files failed
because KotlinCoreEnvironment was being created in the test's setUp,
even before the test data file has been split into .java/.kt and the
resulting .java files have been copied to a temporary directory. In
KotlinCoreEnvironment's constructor, we now inspect all roots for
module-info files, which involves calling VirtualFile.getChildren on all
roots in the configuration. CoreLocalVirtualFile.getChildren is
cached on the first access, and so because the temporary directory with
.java files was empty at this point, the VirtualFile for that directory
returned empty array in getChildren later in the test, resulting in
unresolved reference errors.
This is fixed by creating the environment _after_ the .java files have
been copied to a temporary directory. Note that slow assertions for
flexible types are now enabled in KtUsefulTestCase instead of
KotlinTestWithEnvironmentManagement, because BaseDiagnosticsTest no
longer inherits from the latter
2017-06-29 15:59:56 +03:00
Alexander Udalov
03d83db660
Support -Xmodule-path and -Xadd-modules command line arguments
...
#KT-18598 In Progress
#KT-18599 Fixed
2017-06-29 15:59:56 +03:00
Alexander Udalov
e32880d9a3
Implement Java 9 module visibility checks
...
In this commit, only IDE tests are added, because we look for module
declarations in the IDE across the whole project, whereas in the
compiler we should do this on the module path only and that requires
separate work (KT-18599) which is done in the following commits.
(The change in Cache.kt is needed so that
JvmModuleAccessibilityChecker.ClassifierUsage, which is an inner class,
would be injected properly.)
#KT-18598 In Progress
#KT-18599 In Progress
2017-06-29 15:59:56 +03:00
Alexander Udalov
2275068c94
Introduce JavaModule, refactor module graph construction
...
#KT-18598 In Progress
#KT-18599 In Progress
2017-06-29 15:59:56 +03:00
Mikhael Bogdanov
4f914fafca
Calculate default mask shift properly
...
#KT-18689 Fixed
2017-06-29 14:57:42 +02:00
Alexey Andreev
1fa7193901
Change variance of return type of Promise.all function
...
See KT-18624
2017-06-29 10:34:10 +03:00
Alexey Andreev
479148f7e0
Run JS DCE gradle task in a separate process
2017-06-29 10:32:30 +03:00
Alexey Andreev
cfbb9209a7
Add JS DCE gradle plugin
2017-06-29 10:32:30 +03:00
Nikolay Krasko
9eefbc2036
Perform 'all import resolve' once and protect it with lock (EA-79696)
...
Binding context and diagnostic structures are not thread-safe now and
need to be protected with the lock.
Fix flacky test testRemoveDuplicateImport
This also probably fixes some traces in EA-79696
2017-06-28 18:57:13 +03:00
Nikolay Krasko
9f873f869a
Print all diagnostics if null diagnostic found (EA-79696)
...
Diagnostics collection shouldn't contain nulls, but may do so when there
were unprotected simultaneous writes from several threads.
2017-06-28 18:57:12 +03:00
Mikhail Glukhikh
6c274cecff
Protect getSingleAbstractMethodOrNull from data binding deadlock
...
Now it cannot cause resolve re-entrance
Probably #KT-18687 Fixed
2017-06-28 16:40:27 +03:00
Dmitry Neverov
3e29f9ed5a
Don't report as redundant 1st semicolon in enum without entries
...
So #KT-12524 Fixed
2017-06-28 15:30:40 +03:00
Toshiaki Kameyama
3a606d13f0
Extends range of change visibility intention #KT-14093 Fixed
2017-06-28 15:28:50 +03:00
Dmitry Neverov
44ce5f73f7
Apply De Morgan's laws to non-negated binary expressions
...
So #KT-18460 Fixed
2017-06-28 15:28:43 +03:00
Toshiaki Kameyama
af53a0ecd5
Add quick-fix "Replace with safe call & elvis" #KT-17815 Fixed
2017-06-28 15:28:35 +03:00
Toshiaki Kameyama
c2707bb81b
Support cascade if / when in lift return / assignment intentions
...
So #KT-13458 Fixed
So #KT-13436 Fixed
2017-06-28 15:28:28 +03:00
Toshiaki Kameyama
ed04b4debd
Add quick-fix for empty brackets after primary constructor
...
So #KT-18534 Fixed
2017-06-28 15:28:21 +03:00
Mikhael Bogdanov
69457ef3f1
Generate optimized hashCode for primitive type with jvmTarget 1.8+
...
#KT-7571 Fixed
2017-06-28 13:44:07 +02:00
Igor Chevdar
d7e4350d42
Ignored/fixed some tests for Kotlin/Native
2017-06-28 12:54:32 +03:00
Alexey Andreev
7b52300287
Remove unnecessary system property from JS tests launch configuration
...
Replace it with property that allows to disable DCE tests.
This is useful for temporary disabling DCE without examining source
code to find property name.
2017-06-28 10:48:02 +03:00
Alexey Andreev
4037112f28
Implement deepCopy in JsRegExpr
2017-06-28 10:48:01 +03:00
Alexey Andreev
64331ffa40
Avoid excessive copying in JsLabel
...
See KT-18331
2017-06-28 10:48:01 +03:00
Denis Zharkov
3dc4f8a2ff
Do not write generics for $suspendImpl synthetic method
...
#KT-18252 Fixed
2017-06-28 10:25:08 +03:00
Yan Zhulanow
e7e0032cc8
Kapt3, minor, tests: Weaken regular expression for Metadata shrinking
2017-06-28 10:25:08 +03:00
Denis Zharkov
d88d1d6189
Do not use non-existing class for suspend markers
...
As they remain in inline functions now proguard emits
a warning about them, even though inline suspend functions
are effectively inline-only and these markers can't be
executed at runtime
#KT-18702 Fixed
2017-06-28 10:24:53 +03:00
Denis Zharkov
cb95986c36
Report error on calls to obsolete inline suspend functions
...
They do not contain markers for suspend calls in them
See the changes introduced for fixing KT-16603
2017-06-28 10:24:27 +03:00
Zalim Bashorov
6441c9d913
Restore executable attributes for all files in kotlinc/bin after copying them
2017-06-27 21:57:59 +03:00
Zalim Bashorov
6cd678af06
Add the ability to provide custom tag when deploy to npm
2017-06-27 21:35:09 +03:00
Nikolay Krasko
d8d862fa68
Do not compute class names for inline usages during stepping (KT-18411)
...
This was lost in "Debugger: Fix AbstractPositionManagerTest"(622430a29 )
ExtraSteppingFilter: do not compute classNames for inline (f28f7eaa3b )
#KT-18411 Fixed
2017-06-27 17:39:17 +03:00
Mikhail Glukhikh
7d7ef18e99
Fix type in README
2017-06-27 17:10:27 +03:00
Alexey Andreev
f6964b18db
Fix performance issue in JS inliner
...
See KT-18679
2017-06-27 15:10:21 +03:00
Alexander Udalov
f96ef96078
Check JDK_16 and JDK_18 existence in build.xml
2017-06-27 14:54:53 +03:00
Alexander Udalov
e42b151561
Support primitive array annotation arguments in ConstantValueFactory
...
This has no visible consequences at the moment, but will help once we
need to load such argument from some annotation in the compiler in the
future
2017-06-27 14:53:39 +03:00
Alexander Udalov
b67542533b
Drop unused FunctionDescriptor.Configuration.setSource
2017-06-27 14:53:39 +03:00
Alexander Udalov
288c2b5dc9
Minor, remove some obsolete usages of ResolutionContext#replaceScope
2017-06-27 14:53:39 +03:00
Alexander Udalov
59b932a815
Optimize away unneeded FqName computation in KotlinBuiltIns
...
Before computing the FqName, check the simple class name first. This
code was responsible for about 20% of FqNameUnsafe instances created
during compilation of "core" modules
2017-06-27 14:53:39 +03:00
Alexander Udalov
0352bdbca5
Optimize and improve AbstractClassTypeConstructor.equals
...
Instead of computing and comparing FQ names, compare simple names of
classes and theirs containers. This code was responsible for creation of
about 10% of FqNameUnsafe instances during compilation of "core"
modules.
Also make the check more strict: previously, a class "c" declared in
package "a.b" would be considered equal to a class "c" declared in class
"b" in package "a". Because JVM type descriptors of such classes are
different, this behavior was suspicious and might have lead to error at
runtime. Now, we require the number of containing classes of the given
two classes also to be the same
2017-06-27 14:53:39 +03:00
Dmitry Petrov
d5e02f069a
Fast version for POP backward propagation (without SourceInterpreter)
2017-06-27 14:28:42 +03:00
Dmitry Petrov
f1183d98a9
Fix complexity formula for SourceInterpreter
...
It is actually N^2 * F (VERY pessimistic case),
N = number of instructions
F = frame size
because frames contain sets of instructions.
2017-06-27 14:28:42 +03:00
Dmitry Petrov
a84c2a6f31
Improve string concatentation & string templates code generation
...
Reuse StringBuilder instances for nested subexpressions.
(NB StringBuilder instance for string template with a string
concatenation inside an expression entry, such as `"${"a" + "b"}"`,
will not be reused, although that doesn't seem to be a real-life issue).
#KT-18558 Fixed Target versions 1.1.4
#KT-13682 Fixed Target versions 1.1.4
Join adjacent strings literals, escaped strings, and constant values
(in a language version that supports const val inlining).
Use StringBuilder#append(char) for single-character constants
(e.g., " " in "$a $b").
#KT-17280 Fixed Target versions 1.1.4
#KT-15235 Fixed Target versions 1.1.4
2017-06-27 14:28:42 +03:00
Dmitry Petrov
ae71833a12
Use original descriptors for functions when generating stubs
...
Descriptors for builtin class members on JVM are substituted.
2017-06-27 13:00:10 +03:00
Dmitry Petrov
5e5a1bd686
Use java.lang.Object as a fall-back reference type
...
If for some reason during preliminary analysis in redundant null check
elimination we failed to determine a local variable type statically,
treat it as java.lang.Object.
This will disable some further optimizations using precise type
information (such as INSTANCEOF check elimination), but will not fail
with an exception anyway.
2017-06-27 12:56:34 +03:00
vitaly.khudobakhshov
d165ea9ea7
Add expression type string to the REPL API
...
PR-1131
2017-06-27 11:28:40 +02:00
Alexander Udalov
8783f7a94e
Remove unneeded nullability annotations in CallableReference
2017-06-26 18:46:26 +03:00
Alexey Andreev
20842dcc44
Add module name as a prefix to declaration keys in JS translator
...
This is necessary due to different modules can have same
package declarations. When importing declarations from these
packages, we should distinguish from which module we are importing it.
See KT-18652
2017-06-26 18:16:00 +03:00
Alexey Andreev
3331be9cc8
Fix JS CLI test that fails in Windows
2017-06-26 18:15:30 +03:00
Alexey Andreev
adc04196b1
Support JS source map source embedding configuration in IDEA
2017-06-26 18:15:29 +03:00
Alexey Andreev
a0e1bde594
Allow to embed source files into JS source maps
2017-06-26 18:15:28 +03:00
Nikolay Krasko
73c37ecd25
Remove usage of HighlightingSession.getEditor()
...
It's going to be deleted in IDEA.
2017-06-26 17:39:39 +03:00
Alexander Udalov
0c8ca5f930
Extract some functions from test class into base class
...
To be used in other tests which will be subclasses of
AbstractKotlinCompilerIntegrationTest
2017-06-26 16:22:05 +03:00
Alexander Udalov
69efb81a12
Minor refactoring in JavaModuleInfo
...
Remove unused declarations
2017-06-26 16:22:05 +03:00
Alexander Udalov
fd0658e0f4
Minor, inline unneeded JvmDependenciesIndexFactory
2017-06-26 16:22:05 +03:00
Alexander Udalov
0e2e3b3e65
Cleanup KotlinCoreEnvironment and usages
...
Remove unused API, weaken declaration visibility, reformat
2017-06-26 16:22:05 +03:00
Alexander Udalov
999e4cda1d
Compute module mappings eagerly in JvmPackagePartProvider, refactor
...
Previously we traversed all notLoadedRoots on each request for package
parts with the given package FQ name. Since notLoadedRoots might contain
a lot of roots (which never transition into "loadedModules" because e.g.
they are not Kotlin libraries, but just Java libraries or SDK roots with
the META-INF directory), this was potentially hurting performance. It
seems it's more optimal to compute everything eagerly once
JvmPackagePartProvider is constructed.
Another problem with the previous version of JvmPackagePartProvider was
that it did not support "updateable classpath" which is used by REPL and
kapt2, it only used the initial roots provided in the
CompilerConfiguration. In REPL specifically, we would thus fail to
resolve top-level callables from libraries which were dynamically added
to the execution classpath (via some kind of a @DependsOn annotation).
In the new code, JvmPackagePartProvider no longer depends on
CompilerConfiguration to avoid this sort of confusion, but rather relies
on the object that constructed it (KotlinCoreEnvironment in this case)
to provide the correct roots. This is also beneficial because the
computation of actual VirtualFile-based roots from the ones in the
CompilerConfiguration might get trickier with modular Java 9 roots
2017-06-26 16:22:05 +03:00
Alexander Udalov
a5a78b8f91
Minor refactoring in ClasspathRootsResolver.convertClasspathRoots
...
Package prefix only makes sense for JavaSourceRoot content roots
2017-06-26 16:22:05 +03:00
Alexander Udalov
2424431e16
Extract ClasspathRootsResolver out of KotlinCoreEnvironment
2017-06-26 16:22:04 +03:00
Alexander Udalov
6d48b1c3fb
Minor, extract MessageUtil.virtualFileToPath
2017-06-26 16:22:04 +03:00
Alexander Udalov
8af923c5ff
Refactor MockLibraryUtil and related tests
...
- separate compileLibraryToJar into two public functions, for JVM and JS
- allow to pass any extra options instead of just -Xallow-kotlin-package
- add a bunch of default arguments for the most common cases
2017-06-26 16:22:04 +03:00
Alexander Udalov
68df1d73e7
J2K MockLibraryUtil: prettify
2017-06-26 16:22:04 +03:00
Alexander Udalov
46a6dc6550
J2K MockLibraryUtil: convert
2017-06-26 16:22:04 +03:00
Alexander Udalov
884e85653f
J2K MockLibraryUtil: rename .java -> .kt
2017-06-26 16:22:04 +03:00
Denis Zharkov
c8a2de0243
Allow custom expected result for fast class reading tests
2017-06-24 17:26:02 +03:00
Denis Zharkov
bc564af2fc
Regenerate mockJDK using openJDK 7
2017-06-24 17:26:01 +03:00
Dmitry Jemerov
3158c71c29
Check that we have correct sources for mockjdk
2017-06-24 17:08:11 +03:00
Nikolay Krasko
87889904ee
Allow only one invoke to be a target for smart step into (KT-18632)
...
It's difficult to distinguish such calls reliably in debug session
#KT-18632 Fixed
2017-06-23 21:33:26 +03:00
Mikhail Glukhikh
247c0497b1
Visibility can be private: weaken level to INFO
2017-06-23 18:15:21 +03:00
Mikhail Glukhikh
c99db11ace
Visibility can be private: do not perform too expensive search
...
Also, additional test for usage via accessor was added
So #KT-18617 Fixed
2017-06-23 18:15:20 +03:00
Zalim Bashorov
3358f0ab69
KJS: use korlinc-js runner written in js to make possible to run it on any OS
...
Restore executable attributes on kotlinc* bash scripts after copying them.
2017-06-23 15:14:35 +03:00
Nikolay Krasko
502ac80b89
Do not skip invoke call on parameters during smart step into (KT-18577)
...
#KT-18577 Fixed
2017-06-23 13:47:33 +03:00
Nikolay Krasko
e5ce91dc5b
Show receiver for invoke calls in smart step into popup
2017-06-23 13:47:33 +03:00
Alexey Sedunov
9681f5ca42
Generate equals/hashCode(): Enable for classes without properties
...
Also:
- forbid for enum classes
- use javaClass.hashCode() instead of 0 if class has no properties
#KT-18418 Fixed
2017-06-22 19:50:55 +03:00
Alexey Sedunov
895407f5e3
Rename: Do not silently rename all parameters in function hierarchy
...
#KT-18325 Fixed
2017-06-22 19:50:54 +03:00
Alexey Sedunov
31d21a14f2
Copy: Disable when selection doesn't contain Kotlin source files
...
#KT-18390 Fixed
2017-06-22 19:50:53 +03:00
Alexey Sedunov
423fb9dfb3
Move/Copy: Warn about usages of JDK when moving to non-JVM module
...
#KT-18135 Fixed
2017-06-22 19:50:52 +03:00
Alexey Sedunov
1d36c49537
Copy: Copy elements and process usages under the same write action
...
In some cases doing these operations in separate write actions
may lead to invalidation of copied elements
#KT-18149 Fixed
2017-06-22 19:50:51 +03:00
Alexey Sedunov
6b18ff1d97
Copy/Move: Fix processing of calls used as callees
...
#KT-18241 Fixed
2017-06-22 19:50:50 +03:00
Mikhail Zarechenskiy
87a41293e8
Improve diagnostics on callable reference of unresolved class
...
#KT-10839 Fixed
2017-06-22 15:02:13 +03:00
Mikhail Zarechenskiy
0579604653
Do not propose to specify constructor invocation in diagnostics
...
#KT-17188 Fixed
2017-06-22 15:02:10 +03:00
Mikhail Zarechenskiy
0f350f5db8
Don't report error on member that overrides open member from final class
...
#KT-14598 Fixed
2017-06-22 15:02:09 +03:00
Mikhail Zarechenskiy
9847278699
Report error about invalid if as expression on the if keyword
...
#KT-14633 Fixed
2017-06-22 14:18:11 +03:00
Mikhail Zarechenskiy
e40c8fff05
Make resolution status name more precise
2017-06-22 13:50:01 +03:00
Mikhail Zarechenskiy
7a9e1b2b1d
Improve diagnostic on overload resolution ambiguity
...
Report type mismatch on argument when a nullable argument is passed to non-null parameter.
Note that this affects only functions with simple types without generics
#KT-2007 Fixed
#KT-9282 Fixed
2017-06-22 13:41:31 +03:00
Mikhail Zarechenskiy
16de991b07
Add test for obsolete issue
...
#KT-8262 Obsolete
2017-06-22 13:41:30 +03:00
Mikhail Zarechenskiy
4b3ffd9418
If all candidates are invisible then don't report ambiguity
...
#KT-10045 Fixed
2017-06-22 13:41:28 +03:00
Mikhail Zarechenskiy
cd1ae7f0f2
Add resolution status to report about unsuccessful smartcast
...
#KT-10248 Fixed
#KT-11119 Fixed
2017-06-22 13:41:27 +03:00
Mikhail Zarechenskiy
0f4497256b
Report about wrong number of type arguments instead of ambiguity
...
#KT-7975 Fixed
#KT-1809 Fixed
2017-06-22 13:05:10 +03:00
Dmitry Jemerov
24f1bbfb46
Add code for configuring eap-1.2 bintray repo
...
#KT-18316 Fixed
2017-06-22 11:01:03 +02:00
Dmitry Petrov
2b3043bf9f
Fix CFG problem for 'when' in Konan
...
If type of 'when' expression is 'Nothing', it should be kept that way
even if the expression itself is implicitly coerced to Unit.
2017-06-22 10:21:54 +03:00
Alexander Udalov
1f34dfabd5
Use kotlin.Lazy for script definition computation, add test for no definition
2017-06-22 10:19:06 +03:00
Ilya Chernikov
4178188e15
Fix name retrieval on exception reporting during analysis
2017-06-22 10:19:05 +03:00
Alexander Udalov
135f0a136e
CLI: report error if the first argument for "-script" is not kts
...
#KT-3045 Fixed
2017-06-22 10:19:05 +03:00
Alexander Udalov
85d1bef351
Add reflection.jvm module sources to kotlin-reflect library
...
To be able to debug classes in kotlin-reflect via reflection.jvm's
sources when running tests
2017-06-22 00:08:38 +03:00
Alexander Udalov
a064b59a7d
Do not put "Class-Path: kotlin-stdlib.jar" into kotlin-reflect manifest
...
Since the kotlin-reflect artifact might be used in environments where
the kotlin-stdlib artifact is named something else (e.g.
kotlin-stdlib-{version}.jar) and the file existence is verified by the
launcher
#KT-16399 Fixed
2017-06-22 00:08:38 +03:00
Dmitry Jemerov
2407f8b9ac
Add collection building methods to default blacklist
...
#KT-18030 Fixed
2017-06-21 19:09:23 +02:00
Dmitry Jemerov
16c8a092ca
Correctly show parameter name hints for non-ambiguous overloads
2017-06-21 19:09:21 +02:00
Nikolay Krasko
ad6c84924b
Copy bootstrap compiler to dist directory
...
Can by used in old branches where it's impossible to make dist properly
2017-06-21 17:51:51 +03:00
Nikolay Krasko
3ffd63a17c
Attempt for fix flaky debugger tests - wait for the resume before exit
2017-06-21 17:49:03 +03:00
Alexander Udalov
233b63469a
Fix IllegalAccessException on private annotation in reflection
...
#KT-14094 Fixed
2017-06-21 15:43:00 +03:00
Alexander Udalov
fb60f4ad8f
Do not load annotations of each function in JvmBuiltInsSettings.isFunctionAvailable
...
This fixes the exception in the case described in KT-14094 because we no
longer try to load annotations on functions which cannot be annotated
with @PlatformDependent. (However, the underlying problem in KT-14094 is
not fixed by this, and is still reproducible on explicit call to
KCallable.annotations.)
#KT-14094 In Progress
2017-06-21 15:43:00 +03:00
Alexander Udalov
6388c1885c
Fix KCallable.call for protected members from base class
...
Class.getMethod does not return protected methods from super class, so
we invoke getDeclaredMethod on each super class manually instead
#KT-18480 Fixed
2017-06-21 15:42:59 +03:00
Alexander Udalov
a25aa2fed8
Cleanup DefaultErrorMessagesJvm
...
Use static imports, use Kotlin stdlib API, use more precise renderers
2017-06-21 15:42:59 +03:00
Alexander Udalov
4e51448b66
Refactor and simplify functionTypes.kt and related code
...
Remove unused declarations, inline one-liners, optimize by using
KotlinBuiltIns.isUnderKotlinPackage
2017-06-21 15:42:58 +03:00
Alexander Udalov
5a25ba199a
Micro optimization to avoid computing class FQ name when not necessary
...
KotlinBuiltIns.isConstructedFromGivenClass checks the simple name of the
class first, and only computes the full FQ name if it matches the last
segment of the expected FQ name
2017-06-21 15:42:57 +03:00
Alexander Udalov
aed5b934f8
Introduce KotlinBuiltIns.isUnderKotlinPackage
...
Semantics is the same as in the former
FunctionDescriptor.hasSubpackageOfKotlin, but it doesn't compute the FQ
name of the descriptor
2017-06-21 15:42:57 +03:00
Alexey Sedunov
7bc42f89d3
Configuration: Fix API version selection on language version change
2017-06-21 12:36:53 +03:00
Alexey Sedunov
3460a31e3a
Kotlin Facet: Do not import dependency-based classpath from Gradle
...
JPS obtains it automatically via imported module dependencies
#KT-18475 Fixed
2017-06-21 12:36:52 +03:00
Alexey Sedunov
f68689b5e4
Kotlin Facet: Do not import jdkHome from Gradle/Maven model
...
#KT-18151 Fixed
2017-06-21 12:36:51 +03:00
Alexey Sedunov
fe42586c6f
Kotlin Facet: Fix NPE in Maven importer tests
...
#KT-18376 Fixed
2017-06-21 12:36:50 +03:00
Alexey Sedunov
0570592952
Kotlin Facet: Avoid rewriting platform version with project settings
...
#KT-18373 Fixed
2017-06-21 12:36:49 +03:00
Ilya Chernikov
2e823a4816
Fix compatibility with renamed Gradle Kotlin DSL
2017-06-21 11:35:21 +02:00
Mikhail Zarechenskiy
1e020644e1
Fix getting right bracket element for collection literal
2017-06-21 01:22:08 +03:00
Mikhail Zarechenskiy
837df66c19
Register reference contributor for collection literals
...
#KT-18551 Fixed
2017-06-21 00:16:28 +03:00
Alexey Andreev
78b238a05b
Report warning when two .kt files get same paths in JS source map
2017-06-20 17:40:36 +03:00
Alexey Andreev
60dd475493
Don't expose sourceMapSourceRoots argument to Gradle (JS)
...
Exposing this property causes IDEA to treat it as a free
command line argument, which is undesirable.
Support source roots via setting command line arguments inside
JS gradle task.
2017-06-20 17:40:35 +03:00
Alexey Andreev
49b742ab3d
Add new JS source map config options to Maven plugin
2017-06-20 17:40:35 +03:00
Alexey Andreev
cfd3b137d8
Add support for JS source map source roots to Gradle plugin
2017-06-20 17:40:34 +03:00
Alexey Andreev
62fb149f08
Add support for sourceMapPrefix option (JS) in IDEA
2017-06-20 17:40:34 +03:00
Alexey Andreev
1d6f01ee6c
Add support for relative JS source map paths in JPS
2017-06-20 17:40:33 +03:00
Alexey Andreev
13ab63ae09
Generate relative paths in JS source maps
...
Also, add CLI options to manipulate prefixes of path
See KT-4078
2017-06-20 17:40:32 +03:00
Nikolay Krasko
44d3b8fb1a
Ignore sub-queries for other operators with the same receiver (KT-18566)
...
ExpressionsOfTypeProcessor searches for all occurence of expression
with given type. It start from usages of the class, searches for sub-classes,
declarations that return those classes, usages of these declarations,
and so on.
During this search, find usages for all operators that return the
subject type is executed as sub-queries. Full search for such queries
can't give addition types. And it also shouldn't give additional scopes
for search, because same scopes should be located by operands. In other
words, if sub-query can spot the scope of usage starting from the same
type, the original query should also process same scope.
#KT-18566 Fixed
2017-06-20 16:53:05 +03:00
Yan Zhulanow
0f3dff44ac
Minor: Remove invalid Maven module reference
2017-06-20 15:23:15 +03:00
Alexander Udalov
31b2fffbe1
Avoid NPE at UtilKt.toJavaClass for unrecognized classes
...
Sadly, the case where this NPE would reproduce, remains unknown
#KT-18494 Fixed
2017-06-20 14:39:48 +03:00
Alexander Udalov
8ef3531c48
Add kotlin.Any to KClass.superclasses if it's absent
...
#KT-18476 Fixed
2017-06-20 14:39:48 +03:00
Alexander Udalov
9471f33c38
Refactor getDefaultSupertype, drop obsolete diagnostic
2017-06-20 14:39:47 +03:00
Alexander Udalov
90f2ea87a6
Fix exception on callBy of callable with more than 32 parameters
...
The previous condition that checked if we'd skipped any optional
parameters didn't work when number of parameters > 32 because the number
of bit masks in that case was more than one
#KT-18404 Fixed
2017-06-20 14:39:47 +03:00
Mikhael Bogdanov
62cd57b0d2
Make base test classes 'abstract'
2017-06-20 13:07:30 +02:00
Dmitry Petrov
786ac46fa6
Do not store nulls for captured variables going out of scope
...
These values can't be read after going out of scope.
JVM implementation can take care of such object references on its own.
Ref objects for captured variables are not different from any other
objects stored in local variables, so there's really no reason to
nullify these references explicitly.
#KT-18478 Fixed Target versions 1.1.4
2017-06-20 13:31:36 +03:00
Dmitry Petrov
9356c1e0ef
Skip PopBackwardPropagation for methods with large frames or no POPs
...
TODO get rid of SourceInterpreter here, it's quite expensive.
2017-06-20 13:31:36 +03:00
Dmitry Petrov
0a622e4440
Rewrite OtherOrigin overloads to prevent further silly problems
...
#KT-18413 Fixed Target versions 1.1.4
2017-06-20 13:31:36 +03:00
Mikhael Bogdanov
8ca82c8e99
Add missed common parts
2017-06-20 11:08:53 +02:00
Mikhael Bogdanov
956cc0dbfd
Support IMPLICIT_INTEGER_COERCION
2017-06-20 11:01:10 +02:00
Mikhael Bogdanov
d888addba0
Add KCallableNamePropertyLowering
2017-06-20 11:00:38 +02:00
Mikhael Bogdanov
44b7f5a5be
Add inline tests to IR
2017-06-20 10:26:38 +02:00
Mikhael Bogdanov
8ab705a14c
Introduce IrInliner
2017-06-20 10:26:37 +02:00
Mikhael Bogdanov
9f736f2192
Extract PsiSourceCompiler
2017-06-20 10:26:36 +02:00
Mikhael Bogdanov
2507780e19
Extract PsiInlineCodegen
2017-06-20 10:26:35 +02:00
Mikhael Bogdanov
8dc1b8f95f
Introduce BaseExpressionCodegen and SourceCompilerForInline,
...
switch CallGenerator and InlineCodegen to them
~base
2017-06-20 10:26:35 +02:00
Alexey Andreev
3ae214b97a
Fix reified parameters with non-identifier names in JS
...
See KT-18169
2017-06-20 10:41:52 +03:00
Alexey Andreev
d3a5201ecc
Intrinsify String?.plus in JS BE
...
See KT-8020
2017-06-20 10:40:21 +03:00
Ilya Gorbunov
7efb9ddd4e
Early return if value is null
...
The change is required to fix compilation for IDEA 172, where getValue()
became explicitly nullable.
2017-06-20 02:58:40 +03:00
Zalim Bashorov
8b9fd44bbe
Publish kotlin compiler artifacts to NPM
2017-06-19 22:52:01 +03:00
Zalim Bashorov
06cd02f769
Publish to NPM with dev tag by default
2017-06-19 22:52:00 +03:00
Yan Zhulanow
04c09bedeb
SamWithReceiver, minor: Add missing module to Spring plugin classpath (fixes Spring tests)
2017-06-19 20:28:48 +03:00
Yan Zhulanow
d07fd52c43
SamWithReceiver: Add general-purpose plugin and Gradle/Maven integrations
2017-06-19 20:28:47 +03:00
Alexey Sedunov
db3172a750
Configuration: Inline createDefaultArguments() methods
...
It's a superficial fix: the bug is actually caused by
uninitialized companion instance reference in
Kotlin2JvmCompilerArgumentsHolder class
#KT-18505 Fixed
2017-06-19 18:15:40 +03:00
Mikhail Zarechenskiy
2a4cac024b
Add test for obsolete issue
...
#KT-13813 Obsolete
2017-06-19 17:36:10 +03:00
Mikhail Zarechenskiy
aeac2ea384
Fix 'add not-null asserted call' quick fix for operation in
...
#KT-18529 Fixed
2017-06-19 17:36:09 +03:00
Mikhail Zarechenskiy
b53a3b324f
Fix 'infix call' diagnostic for in operation
...
#KT-8845 Fixed
2017-06-19 17:36:08 +03:00
Mikhail Zarechenskiy
d17f31c8b0
Refactoring: move several utils from js module to frontend
2017-06-19 17:36:07 +03:00
Mikhail Zarechenskiy
dbfea9b787
Fix TCE for invalid code with wrong callee expression
...
#KT-14927 Fixed
2017-06-19 17:36:06 +03:00
Sergey Igushkin
0032719ab9
(minor) Bump Android Gradle plugin version to 3.0.0-alpha4 in tests
2017-06-19 14:37:02 +03:00
Mike
7e01ac81ab
Fixed Slack link ( #1140 )
...
http://kotlinslackin.herokuapp.com/ is down, replaced with http://slack.kotlinlang.org/
2017-06-19 08:33:13 +02:00
Mikhail Glukhikh
e8b0d47765
PlainTextPasteImportResolver: use relevant facade for Java classes
...
Fixes EA-75803 for this particular case
2017-06-16 17:17:38 +03:00
Vyacheslav Gerasimov
f51e3ab90c
Fix Android extensions property usage highlighting
...
#KT-10736 Fixed
2017-06-16 17:13:34 +03:00
Mikhail Zarechenskiy
f8617f6676
Adapt collecting synthetic constructors in IDE for completion
2017-06-16 16:44:53 +03:00
Mikhail Zarechenskiy
011231f2ab
Collect sam adapters for constructors in synthetic scope
...
Also place computation of synthetic constructors under one function
2017-06-16 16:44:52 +03:00
Mikhail Zarechenskiy
0adc8d9bfa
Minor: remove val
2017-06-16 16:44:51 +03:00
Mikhail Glukhikh
e9e028f987
Minor: add getName() for three local quick fixes to fix 162 / AS23
2017-06-16 16:20:55 +03:00
Mikhail Glukhikh
4f8db14e5b
Update changelog (1.1.3-eap-85)
...
(cherry picked from commit 61cb598 )
2017-06-16 16:04:32 +03:00
Derek Alexander
1f5cc059f9
Fix compiler failure related NO_EXPECTED_TYPE
...
Changes to turn KT-16016 into a compiler diagnostic error rather than a
stack trace
#KT-16016 Fixed
2017-06-16 15:52:09 +03:00
Mikhail Glukhikh
ace3bfbbf9
Fix if -> ?: / ?. highlight type
...
if should be transformed, default level used (weak warning);
if should not be transformed, no highlighting (information) used.
2017-06-16 15:23:48 +03:00
Mikhail Glukhikh
9e85b0c2ba
Has platform type inspection: do not enforce weak warning type
...
So #KT-17954 Fixed
2017-06-16 15:17:50 +03:00
Mikhail Glukhikh
c3f3392f0c
Minor
2017-06-16 15:04:29 +03:00
fitermay
81f5a29526
Make overridden member open: invalidate cached state on PSI modification
...
Before, waiting for inspection rerun was necessary
Also rename: computeState --> computeInfo
Related to KT-17740
2017-06-16 15:04:22 +03:00
fitermay
289286c8cd
Avoid mutating state and do not rely on side effects for proper function
...
So #KT-17740 Fixed
2017-06-16 15:04:16 +03:00
fitermay
0dced8d29c
Do not suggest "Make overridden member open" for already open ones
...
So #KT-18148 Fixed
2017-06-16 15:04:10 +03:00
shiraji
cbccf932a7
Add inspection removing redundant spread operator for arrayOf call
...
So #KT-17920 Fixed
2017-06-16 15:04:04 +03:00
Mikhail Glukhikh
ce55d9e364
Fix of "Replace array of with array literal"
...
Do not apply if module does not support the relevant feature
Related to KT-17164
2017-06-16 15:03:58 +03:00
Toshiaki Kameyama
b9fb7cc3a5
Add quick fix to generate equals / hashcode in data class with arrays
...
So #KT-15893 Fixed
2017-06-16 15:03:52 +03:00
Dmitry Neverov
5df5a001a1
Support implicit receiver in if-then intentions #KT-16069 Fixed
2017-06-16 15:02:44 +03:00
Kirill Rakhman
13a2612e20
Add inspection for ranges with start > endInclusive #KT-18438 Fixed
2017-06-16 15:02:31 +03:00
shiraji
647558c98a
Add inspection for potentially wrongly placed unary operators
...
So #KT-18236 Fixed
2017-06-16 15:02:24 +03:00
Alexey Sedunov
eaea160f0e
Kotlin Facet: Fix detection of source set name by Gradle compile task
...
#KT-17492 Fixed
2017-06-15 17:26:40 +03:00
Alexey Sedunov
1544467725
Presentation: Fix NPE on star projection rendering
...
EA-100480 Fixed
2017-06-15 17:26:39 +03:00
shiraji
ab4eb1dd20
Add better quickfix for scope functions #KT-13676 Fixed
2017-06-15 15:01:42 +03:00
Mikhail Glukhikh
09d8c31433
Change highlight type of many inspections to GENERIC_ERROR_OR_WARNING
...
This way they will use highlight type depending on their level.
Otherwise highlight type is enforced and changing level in IDE
actually changes nothing.
2017-06-15 15:01:41 +03:00
Dimach
d369fa094a
Add Boolean? == const to elvis conversion and vice versa #KT-15368 Fixed
...
Convert elvis to equality check implemented as inspection due
code style guide
2017-06-15 15:01:39 +03:00
Nikolay Krasko
6e9c0a0fda
Move test logging processing in find usages to single place
2017-06-15 14:00:43 +03:00
Nikolay Krasko
60c8d5dcc0
Fix search usages for invoke() with vararg parameter (KT-18479)
...
#KT-18479 Fixed
2017-06-15 14:00:42 +03:00
Nikolay Krasko
018d4653e8
Fix search usages for invoke() extension operator (KT-18269)
...
#KT-18269 Fixed
2017-06-15 14:00:41 +03:00
Pavel V. Talanov
46512f34e4
Fix 'Find symbol' and 'Go to declaration' when jar is used in many libs
...
SourceNavigationHelper takes into account all the module infos
that given virtual file is a part of
#KT-15093 Fixed
2017-06-15 13:35:40 +03:00
Pavel V. Talanov
6eb4addb6e
Test 'find symbol' when same jar is shared by libs(some without sources)
2017-06-15 13:35:40 +03:00
Pavel V. Talanov
8cfd6ffae0
Test navigation from source when same jar is in different libraries
...
One library can have sources attached and the other doesn't
#KT-15093 In progress
2017-06-15 13:35:39 +03:00
Pavel V. Talanov
b12de14482
Refactor, extract some 'goto' related testing utils
2017-06-15 13:35:38 +03:00
Pavel V. Talanov
4356795324
Refactor, extract util in test code
2017-06-15 13:35:37 +03:00
Pavel V. Talanov
7949d3209b
Minor, untangle Multi(Module)HighlightingTest hierarchy a bit
2017-06-15 13:35:36 +03:00
Nikolay Krasko
850568b8e9
Support "Force Step Over" action over suspended calls (KT-18453)
...
#KT-18453 Fixed
2017-06-15 13:29:28 +03:00
Nikolay Krasko
0e8e8ef546
Step over for suspended calls (KT-18453)
...
Debugger do the normal step over action and checks if function is
going to suspend. In this case the "run-to-cursor" breakpoint is
installed on function enter to intercept re-enter into function
after suspension.
#KT-18453 In Progress
2017-06-15 13:29:27 +03:00
Nikolay Krasko
6d7ce6cec1
Prevent debugger to stop twice on breakpoints after suspension point
...
#KT-18453 In Progress
2017-06-15 13:29:26 +03:00
Nikolay Krasko
49baba017a
Allow to stop in suspend funciton on enter and before suspended return
...
This commit is needed to implement "step over" action over suspended
call. Debugger have to understand when function is going to be
suspended and be able to set a breakpoint on function re-enter.
#KT-18453 In Progress
2017-06-15 13:29:25 +03:00
Dmitry Jemerov
a2427c64a1
Reset library caches on file types change and dumb mode enter/exit
...
Ref: 50df476199
2017-06-14 18:08:52 +02:00
Mikhail Glukhikh
94dcadbec7
filterNotInSource: retains only files in contentScope
...
So #KT-18221 Fixed
2017-06-14 18:22:52 +03:00
Mikhail Glukhikh
81a1f26b1d
Rename: findSyntheticFiles -> filterNotInSource
2017-06-14 18:22:46 +03:00
Mikhail Glukhikh
7734ec3bd5
Do not highlight semantics in files not under module content
...
Related to KT-18221
2017-06-14 18:22:40 +03:00
Mikhail Glukhikh
2a1c101350
Use NotUnderContentRootModuleInfo only from PsiElement.getModuleInfo()
...
This makes getModuleInfoByVirtualFile nullable
Fixes a variant of EA-75803 (from moveConflictUtils)
2017-06-14 18:22:24 +03:00
Dmitry Jemerov
0e2bdb8e66
Support CONFIGURE_LIBRARY directive in intention tests
...
Also restore tests for ConvertCamelCaseTestFunctionToSpaced
and apply fix for KT-18375
2017-06-14 16:17:01 +02:00
Dmitry Jemerov
4fa75256b7
Options for wrapping parentheseses in calls (KT-18113)
2017-06-14 14:37:30 +02:00
Dmitry Jemerov
72e8cd7e78
Consistent names for spacing options
2017-06-14 14:37:30 +02:00
Dmitry Jemerov
2e9a3e6d12
Option to use continuation indent in expression bodies (KT-9818)
2017-06-14 14:37:22 +02:00
Dmitry Jemerov
f4c75e61ad
Option to use continuation indent in parameter lists
2017-06-14 14:33:52 +02:00
Dmitry Jemerov
a4916a3c00
NodeIndentStrategy: J2K and cleanup
2017-06-14 14:33:51 +02:00
Dmitry Jemerov
14edd7e357
NodeIndentStrategy: rename to .kt
2017-06-14 14:33:51 +02:00
Dmitry Jemerov
6c954d7e04
Refactor custom options registration for more type-safe API
2017-06-14 14:33:44 +02:00
Dmitry Jemerov
fc2a1fce8b
Remove line break between ) and : if there's a line break before )
2017-06-14 14:33:42 +02:00
Dmitry Jemerov
2ce430d608
Refactor spacing rules representation for easier debugging
2017-06-14 14:33:41 +02:00
Dmitry Jemerov
a0b5a3a8a2
Implement parenthesis wrapping options
2017-06-14 14:33:41 +02:00
Dmitry Jemerov
487d948ad3
KotlinLanguageCodeStyleSettingsProvider: J2K and cleanup
2017-06-14 14:33:40 +02:00
Dmitry Jemerov
1da3c7f577
KotlinLanguageCodeStyleSettingsProvider: rename to .kt
2017-06-14 14:18:59 +02:00
Dmitry Jemerov
f32dc9e84e
Put lambda parameters on the same line as opening curly brace
2017-06-14 14:18:58 +02:00
Toshiaki Kameyama
af941bfdf5
KT-18158 Expand selection should select the comment after expression getter on the same line ( #1122 )
...
* Expand selection should select the comment after expression getter on the same line #KT-18158 Fixed
* Fixed expand selection behavior for the declaration with comment #KT-18158
* Remove redundant code #KT-18158
2017-06-14 12:28:56 +02:00
Dmitry Jemerov
b1f84676d1
Update tests according to new formatter behavior
2017-06-14 11:40:41 +02:00
Andrius Semionovas
8c6f93b899
Add tests for KEEP_LINE_BREAKS
2017-06-14 11:28:57 +02:00
Andrius Semionovas
839141e4f6
Stop formatting line breaks between keywords and parentheses
2017-06-14 11:28:57 +02:00
Andrius Semionovas
c6acc4c5be
KT-16558 Add space before parentheses config
2017-06-14 11:28:57 +02:00
Mikhael Bogdanov
c4fc0f3808
Review fixes
2017-06-14 10:34:25 +02:00
Mikhael Bogdanov
724ac3cf59
Convert text util methods to extension properties
2017-06-14 10:34:24 +02:00
Mikhael Bogdanov
e96d2212da
Workaround for LightClass generation problem KT-18419
2017-06-14 10:34:24 +02:00
Mikhael Bogdanov
c8d3553a31
Rename InlineCodegenUtil.kt to inlineCodegenUtils.kt
2017-06-14 10:34:23 +02:00
Mikhael Bogdanov
bbb2b36794
Merge InlineCodegeUtil and InlineCodegeUtils
2017-06-14 10:34:22 +02:00
Mikhael Bogdanov
172a9c7e1e
Code clean after convertion
2017-06-14 10:34:21 +02:00
Mikhael Bogdanov
51d494a271
Convert InlineCodegenUtil to Kotlin
2017-06-14 10:34:21 +02:00
Mikhael Bogdanov
b7b3b3a19c
Rename InlineCodegenUtil.java to InlineCodegenUtil.kt
2017-06-14 10:34:20 +02:00
Mikhael Bogdanov
63c4794c30
Clean code after convertion
2017-06-14 10:34:19 +02:00
Mikhael Bogdanov
e6dbe87ee2
Convert InlineCodegen to Kotlin
2017-06-14 10:34:18 +02:00
Mikhael Bogdanov
7ce980815c
Rename InlineCodegen.java to InlineCodegen.kt
2017-06-14 10:34:18 +02:00
Dmitry Jemerov
52cfec5bc1
Add actions for toggling type hints to list of irrelevant actions
...
They are available in many tests and only starting with the 172 branch,
so we ignore them to reduce clutter and branch divergence.
2017-06-13 19:45:39 +02:00
Nikolay Krasko
b0c82aac6a
Minor: remove warnings and reformat KotlinDebuggerTestCase.java
2017-06-13 19:14:50 +03:00
Nikolay Krasko
a4f6b17559
Invalidate debugger tests caches on dist compiler updates
2017-06-13 19:14:49 +03:00
Nikolay Krasko
6d22e06359
Move all test data for single test to one directory
2017-06-13 19:14:48 +03:00
Simon Ogorodnik
75e5dca735
KT-18051: Allow copy-pasting from IDEA java to kotlin conversion
...
#KT-18051 fixed
2017-06-13 15:32:21 +03:00
Simon Ogorodnik
fa3f87492c
KT-12104: Fix smart completion for argument of implicit invoke
...
#KT-12104 fixed
2017-06-13 15:32:09 +03:00
Dmitry Jemerov
8077a71aec
Show more correct type hints
...
- Don't show hints containing error type as type parameter
- Do not expand type aliases
- Show base type for types of anonymous objects
#KT-18369 Fixed
#KT-18341 Fixed
#KT-18343 Fixed
2017-06-13 14:26:56 +02:00
Mikhail Glukhikh
c6578384fb
Minor: remove unused functions
2017-06-13 15:18:16 +03:00
Mikhail Glukhikh
ada697c6b0
Highlighting visitor: make holder immutable
2017-06-13 15:18:10 +03:00
Mikhail Glukhikh
945859ae4d
Remove non-actual suppress
2017-06-13 15:18:05 +03:00
Mikhail Glukhikh
d5e605d5cc
Distinguish captured highlighting from local variable / parameter
...
So #KT-14271 Fixed
2017-06-13 15:17:59 +03:00
Mikhail Glukhikh
aa3589004e
Highlighting visitor: refactoring
...
Do not call AnnotationHolder functions directly,
only via HighlightingVisitor
2017-06-13 15:17:53 +03:00
Mikhail Glukhikh
f225d8dea5
J2K: HighlightingVisitor, AfterAnalysisHighlightingVisitor
2017-06-13 15:17:48 +03:00
Mikhail Glukhikh
44e727b75c
Redundant toString() in string template: highlight selector only
...
And not the receiver. So #KT-18253 Fixed
2017-06-13 15:17:42 +03:00
Toshiaki Kameyama
2afe8989df
Make <modifier> intention handle sealed correctly #KT-18425 Fixed
2017-06-13 15:02:36 +03:00
Dmitry Jemerov
a6d80b78de
Fix tests
2017-06-13 13:04:11 +02:00
Vasily Kirichenko
6829c5ef8f
add a test
2017-06-13 13:04:10 +02:00
Vasily Kirichenko
0381018d00
add the check into CanBePrimaryConstructorPropertyInspection as well
2017-06-13 13:04:10 +02:00
Vasily Kirichenko
c0ee50a693
do not show "Move to constructor" intention for properties declared in interfaces
2017-06-13 13:04:09 +02:00
Dmitry Jemerov
b9cfb6b59b
typo
2017-06-12 19:20:12 +02:00
Dmitry Jemerov
2d9bf73049
Sort plugins before uploading
2017-06-12 19:02:20 +02:00
Toshiaki Kameyama
ac03c91dcc
Make <modifier> intention inserts modifier between annotation and class keywords #KT-14092 Fixed
2017-06-12 18:32:35 +02:00
Alexey Sedunov
79493985be
Kotlin Facet: Fix facet existence check during Gradle import
...
EA-101476 Fixed
2017-06-12 16:37:41 +03:00
Simon Ogorodnik
a371bcb624
Fix flaky kdoc lexer test
...
Normalize line separators
2017-06-11 18:13:49 +03:00
Ilya Gorbunov
4798c029de
Limit visibility of sublists, make them implement RandomAccess
2017-06-10 10:00:15 +03:00
Ilya Gorbunov
d7ad1f3950
Explicitly disable ArrayLiteralsInAnnotations feature in test which validates it's unsupported
2017-06-10 10:00:15 +03:00
Anton Bannykh
46d9d296ca
JS: use '/' as separator on all platforms to prevent sourcemap parse errors
2017-06-09 20:32:22 +03:00
Alexey Sedunov
3b15285a0c
Analyze Data Flow: Add usage context panels
2017-06-09 17:19:23 +03:00
Alexey Sedunov
ff5a52b445
Analyze Data Flow: Respect member hierarchies
...
#KT-11994 In Progress
2017-06-09 17:19:22 +03:00
Alexey Sedunov
49da81f681
Analyze Data Flow: Support val/var parameters
...
#KT-11994 In Progress
2017-06-09 17:19:20 +03:00
Alexey Sedunov
ea7d535ae7
Analyze Data Flow: Support properties with custom accessors
...
#KT-11994 In Progress
2017-06-09 17:19:20 +03:00
Alexey Sedunov
d61ddaccb6
Analyze Data Flow: Support callable references
...
#KT-11994 In Progress
2017-06-09 17:19:18 +03:00
Alexey Sedunov
3f411fc93b
Analyze Data Flow: Support lambdas/anonymous functions
...
#KT-11994 In Progress
2017-06-09 17:19:18 +03:00
Alexey Sedunov
0f44dd6ab0
Analyze Data Flow: Support dereference processing
...
#KT-11994 In Progress
2017-06-09 17:19:16 +03:00
Alexey Sedunov
858b454138
Analyze Data Flow: Initial implementation
...
#KT-11994 In Progress
2017-06-09 17:19:15 +03:00
Dmitry Neverov
3f104833ba
Handle multi-line spaces and leading asterisks more correctly
2017-06-09 17:14:28 +03:00
Sergey Igushkin
0453c4a7bf
Fix Android SDK licenses not being accepted in Kapt3AndroidIT
...
(cherry picked from commit 8084ac6)
2017-06-09 16:38:09 +03:00
Mikhail Glukhikh
630af6a9c6
Correct 1.1-specific test to fix 1.2-M1 build
2017-06-09 13:10:37 +03:00
Valentin Kipyatkov
ca7a0da10f
Fixed one more case of redundant type arguments
2017-06-08 23:26:39 +03:00
Valentin Kipyatkov
4b0cbc61d1
More correct
2017-06-08 23:26:38 +03:00
Valentin Kipyatkov
c08d862e9e
More correct algorithm for redundant type arguments detection
2017-06-08 23:26:38 +03:00
Valentin Kipyatkov
cfa442a42a
Move refactoring available on cut/paste declarations from an object to top-level
2017-06-08 23:26:12 +03:00
Dmitry Jemerov
b143b1be42
Revert tesdata changes to match changed code behavior
2017-06-08 19:48:12 +02:00
fitermay
4fab29b648
KT-18006 Don't cut off trailing new lines. Make behavior consistent with Java literal copy/paste
2017-06-08 19:48:12 +02:00
fitermay
a63d631435
KT-18006 Bring behavior of Kotlin literal copy/paste inline with Java's after IDEA-172984
2017-06-08 19:48:12 +02:00
Nikolay Krasko
ba34ed89d3
Allow to report exceptions in internal mode when updates are available
2017-06-08 17:21:13 +03:00
Toshiaki Kameyama
c149e956cc
Replace explicit parameter isn't shown on destructuring declaration
...
So #KT-17026 Fixed
2017-06-08 16:32:54 +03:00
Alexey Sedunov
e5717d3e96
Copy: Enable file copy for mixed Java-Kotlin case
...
Also merge CopyKotlinFileHandler with CopyKotlinDeclarationsHandler
as it currently can't be invoked for such cases
#KT-18200 Fixed
2017-06-08 14:37:37 +03:00
Alexey Sedunov
13212f06b4
Copy/Move: Fix processing of imported Java static members
...
#KT-18098 Fixed
2017-06-08 14:37:37 +03:00
Alexey Sedunov
a0629bfc58
Rename: Fix rename of import alias referring to object member
...
#KT-18096 Fixed
2017-06-08 14:37:35 +03:00
Alexey Sedunov
1ded171720
Rename: Disable member inplace when variable inplace is available
2017-06-08 14:37:34 +03:00
Alexey Sedunov
69c315443a
Rename: Disable label rename outside of reference range
...
#KT-17128 Fixed
2017-06-08 14:37:34 +03:00
Alexey Sedunov
566e701131
Rename: Disable Java member rename by reference to import alias
...
#KT-18076 Fixed
2017-06-08 14:37:32 +03:00
Alexey Sedunov
9c11c42ec2
Rename: Fix inplace refactoring for declarations with backticked names
...
#KT-15859 Fixed
2017-06-08 14:37:31 +03:00
Alexey Sedunov
2f88b6ef9b
Copy: Rename only self-usages of the copied class
...
#KT-18034 Fixed
2017-06-08 14:37:30 +03:00
Alexey Andreev
4252d9786b
Fix translation of interface with non-abstract methods in JS BE
...
Fix additional case of generic interfaces in KT-18187
2017-06-08 13:51:18 +03:00
Alexander Udalov
09e4775a10
REPL: display configuration-related messages after start
...
Previously these messages (e.g. non-existing jar path in classpath,
invalid language version, etc.) were shown after the user exited from
the REPL
2017-06-08 12:28:07 +03:00
Alexander Udalov
cbb6269391
REPL: do not report warnings when there are errors
...
#KT-18349 Fixed
2017-06-08 12:28:06 +03:00
Alexander Udalov
ed922deb93
REPL: do not output additional newline after compiler and runtime errors
2017-06-08 12:28:05 +03:00
Alexander Udalov
bd9dd90649
REPL: print newline before exit
...
No tests added because the only way to test this seems to be to launch a
new process and send "Ctrl+D" into it, which seems cumbersome for such
small change
2017-06-08 12:28:04 +03:00
Alexander Udalov
6f22baa0f6
REPL: improve "are all errors at EOF" detection
...
Also ignore whitespaces and comments that appear after the last error in
a REPL line
#KT-15172 Fixed
2017-06-08 12:26:54 +03:00
Dmitry Jemerov
2326b5faf3
Update testdata according to behavior changes
2017-06-08 10:43:19 +02:00
Toshiaki Kameyama
d90cc6f4cf
Intention Make private and friends should respect modifier order #KT-17823 Fixed
2017-06-08 10:41:07 +02:00
Mikhael Bogdanov
5dfe77b7c3
Fix array element processing
2017-06-08 09:23:50 +02:00
Mikhael Bogdanov
5bba5b2fb7
Bind annotation methods via primary constructor
2017-06-08 09:23:45 +02:00
Mikhael Bogdanov
514d25bdd4
Fix FAKE_OVERRIDE processing
2017-06-08 09:23:39 +02:00
imknown J. Kimu
317e24ce69
Fix Git CLI typo. ( #1119 )
...
No soft-wrapped words.
2017-06-08 08:28:06 +02:00
Simon Ogorodnik
a6e153312c
Prevent early deleting of not-null assertions
...
Before val to var conversion applied, smart-cast can cause
dropping not-null assertion, which will be required when val will
become var
2017-06-07 21:21:37 +03:00
Simon Ogorodnik
e41c027c9a
Add IDEA data-flow analysis to guess nullability
...
Add "if return..." folding to "return if"
2017-06-07 21:21:36 +03:00
Simon Ogorodnik
1f26353de4
Add measureTimeMillisWithResult function to addToStdlib
2017-06-07 21:21:34 +03:00
Simon Ogorodnik
682a278cb8
Fix deleting of semicolon when it required to mark statement empty
...
#KT-18142 fixed
#KT-18141 fixed
2017-06-07 21:08:08 +03:00
Dmitry Jemerov
558203e2bb
Rename "Remove no constructor" to "Remove constructor call"; fix test
2017-06-07 19:49:45 +02:00
Toshiaki Kameyama
bb5681fdb5
Add quick-fix for NO_CONSTRUCTOR error #KT-17842 Fixed
2017-06-07 19:47:36 +02:00
Ilya Zorin
862631b2ec
Handle spaces around dot in type references and before type argument list
2017-06-07 19:43:14 +02:00
Andrius Semionovas
4acb95acb5
Fix KT-16725; Remove spaces between array indices
2017-06-07 19:39:55 +02:00
Zoltan Polgar
46ce9a6946
JS: Avoid declaration skeleton body generation in case of external class or object
2017-06-07 19:22:24 +02:00
Alexander Udalov
15e392bbd1
Fix compilation on Windows
...
JDK_16 environment variable may have spaces in it ("C:\Program
Files\..."), so it should be passed as a separate argument explicitly to
the kotlinc ant task
2017-06-07 16:26:09 +03:00
Alexander Udalov
c851e9d206
CLI: use JDK 1.6 to compile the "kotlin" launcher script
...
"kotlin" is used to run programs compiled by "kotlinc" which supports
emitting JVM bytecode 1.6, so it should also be runnable on JDK 1.6
2017-06-07 14:57:44 +03:00
Alexander Udalov
96bd8cb3c2
Minor, move PluginCliParser and PluginURLClassLoader to subpackage
2017-06-07 14:56:58 +03:00
Alexander Udalov
534e8a5c50
Do not pack useless files into the compiler jar
...
Do not pack META-INF/services to compiler-quick from out directories
because they're packed from sources anyway in the pack-compiler target.
Also do not pack the "META-INF/jb/$$size$$" and "META-INF/LICENSE" files
found in some IntelliJ libraries. Licenses are not required in binaries,
and previously only the first of them was packed anyway
2017-06-07 14:41:13 +03:00
Alexander Udalov
a614419b43
Fix KotlinJpsBuildTest.testHelp on Windows
2017-06-07 14:17:35 +03:00
Alexander Udalov
4844d720cc
Remove dependency of module 'java-model-wrappers' on 'annotation-processing'
...
This breaks the circular dependency between them
2017-06-07 14:06:01 +03:00
Nikolay Krasko
0e693c39a3
Don't remove else block if it participate in other expression (KT-18309)
...
#KT-18309 Fixed
2017-06-07 13:49:34 +03:00
Dmitry Jemerov
5c993ce83f
Fix Slack link
2017-06-07 11:58:00 +02:00
Pavel V. Talanov
2b153d5c10
Improve search for facade light class by kotlin file
...
LightClassUtil#getWrappingClass works for clashing facade fq names
#KT-17855 Fixed
2017-06-07 11:19:23 +03:00
Mikhail Glukhikh
417b430033
Test reproducing KT-17855
2017-06-07 11:19:23 +03:00
Alexey Andreev
59240a4bd9
Report errors in JS source maps as compiler warnings
2017-06-07 11:13:55 +03:00
Alexey Andreev
bf21cfd6e0
Use source map remapper in JS inliner
2017-06-07 11:13:55 +03:00
Alexey Andreev
9c4ec902b0
Fix test broken by changes in JS source maps
2017-06-07 11:13:54 +03:00
Alexey Andreev
e43cc65702
Fix location reported by JS parser in case of long lines
2017-06-07 11:13:54 +03:00
Alexey Andreev
1dae687e7d
Fix support of - and + prefix operators in JS parser
...
Treat number literal that represents minimum integer as integer node in
JS AST.
Treat +<number_literal> JS AST as unary node (+) containing single
number literal
2017-06-07 11:13:53 +03:00
Alexey Andreev
590954e9a8
Add processor that removes location from ambiguous JS AST nodes
...
There are cases when it's impossible to distinguish which JS node
owns location denoted by source map. Consider example:
a + b
Both root JsBinaryNode and its arg1 point to the same start location.
Out translator provides full information, though parser can't
produce the same AST. The second AST will miss some of the locations
available on the first one. This processor gets AST node produced
by translator and removes locations from there so that both ASTs
become equal.
2017-06-07 11:13:53 +03:00
Alexey Andreev
c5bf76578a
Add test infrastructure for JS source map parser and generator
2017-06-07 11:13:52 +03:00
Alexey Andreev
ca738a9536
Prevent JS source map builder from inserting overlapping mappings
...
Check if newly inserted mapping is in the same position within
JS line and in this case omit the mapping
2017-06-07 11:13:51 +03:00
Alexey Andreev
174068c462
Add JS source map parser and remapper
...
JS source map remapper takes parsed source maps
together with JS AST with correct JS positioning information
and converts the latter into Kotlin positioning information
2017-06-07 11:13:51 +03:00
Alexey Andreev
e784d1846e
Fix warning in BasicBoxTest (JS)
2017-06-07 11:13:50 +03:00
Alexey Andreev
93ec81d2eb
Add source information to parsed JS AST
2017-06-07 11:13:50 +03:00
Alexey Andreev
1d1da326be
Refactor JS parser
2017-06-07 11:13:49 +03:00
Alexey Andreev
3a3720db8d
Reformat JS parser for conformance with project's style settings
2017-06-07 11:13:49 +03:00
Alexey Andreev
41ad637bad
Fix warnings in JS parser
2017-06-07 11:13:48 +03:00
Alexey Andreev
9d186cfc66
Fix JS source maps for temporary variables
2017-06-07 11:13:47 +03:00
Alexey Andreev
27a44f3282
Fix JS source maps for complex enum entry
2017-06-07 11:13:47 +03:00
Alexey Andreev
b70c52e41f
Fix JS source maps for optional arguments
...
Also, when function has expression body, use expression instead
of function declaration to mark return statement.
2017-06-07 11:13:46 +03:00
Alexey Andreev
6f0e4c4deb
Fix JS source maps for data class synthetic methods
2017-06-07 11:13:46 +03:00
Alexey Andreev
5bc6c07f9e
Fix JS source maps for companion objects of enum
2017-06-07 11:13:45 +03:00
Alexey Andreev
c9545f291a
Fix JS source maps for properties without initializer
2017-06-07 11:13:44 +03:00
Vyacheslav Gerasimov
fdf098d65c
Add gutter icon with navigation to related files for Android components
2017-06-06 20:47:30 +03:00
Vyacheslav Gerasimov
3f03b05bd3
Fix Android gutterIcon test, use findGuttersAtCaret method
2017-06-06 20:47:21 +03:00
Vyacheslav Gerasimov
643e3587cc
Kotlin UAST should visit property delegate expression
...
#KT-15164 Fixed
2017-06-06 20:47:01 +03:00
Vyacheslav Gerasimov
15bfd4439a
Fix AddTargetVersionCheckQuickFix, generate else branch with TODO
...
when surrounded statement used as expression
#KT-17786 Fixed
#KT-17788 Fixed
2017-06-06 20:46:53 +03:00
Vyacheslav Gerasimov
33c3ba815f
Fix Android SuppressLint and Api quickfixes: proper annotation placing
...
#KT-17783 Fixed
#KT-17787 Fixed
2017-06-06 20:46:40 +03:00
Alexander Udalov
e6001f57fa
Remove dependency of module 'backend' on 'backend.jvm' and 'ir.tree'
...
This breaks the circular dependency between 'backend' and 'backend.jvm'
2017-06-06 19:55:06 +03:00
Alexander Udalov
cf04157ec8
Ignore gradle build directories in the root module
2017-06-06 19:52:43 +03:00
Alexander Udalov
5e6db3d4a6
Fix broken source and class roots of project libraries
2017-06-06 19:52:42 +03:00
Alexander Udalov
fb520e3040
Maven: do not set JVM target to null
...
After a236400 , it's expected that the value of jvmTarget should not be
null. Otherwise ArgumentUtils.convertArgumentsToStringList fails with
NPE
2017-06-06 19:52:04 +03:00
Alexander Udalov
a802e7fb71
CLI: fix non-XML rendering of argument parse error, simplify code
...
If the compiler is invoked through JPS, an instance of
XmlMessageRenderer is used and the output should be a valid XML.
Previously, we reported the argument parse error (and the note to try
"-help") before calling messageRenderer.renderPreamble, which resulted
in invalid XML. The same was happening for the usage printed on "-help".
Both of these problems are fixed
#KT-14848 Fixed
2017-06-06 19:52:04 +03:00
Alexander Udalov
a67382fdec
Daemon: do not exit with internal error on invalid arguments
...
Invalid compiler arguments should lead to a compilation error, not
internal error. This has been fixed by splitting the
"parseArguments(...)" call (which does parsing + validation) in
CompileServiceImpl into two calls of parseCommandLineArguments +
validateArguments, and returning with a compilation error if the latter
did not succeed
#KT-16057 Fixed
#KT-14848 In Progress
2017-06-06 19:52:02 +03:00
Sergey Igushkin
2cad64881d
(minor) Improve exception message in case no Android plugin was found
2017-06-06 17:21:20 +03:00
Sergey Igushkin
21b88995ab
Add tests for the introduced fixes
...
Add a test for applying kotlin-android plugin with com.android.feature
Add a test for Databinding (not passing yet with 3.0.0+, until
3.0.0-alpha4 is released, which contains the fix from the Android side).
Add missing test project android-databinding.
Refactor and improve the tests
* Remove redundant files from test project 'android-databinding'
* Refactoring and minor improvements in the tests
2017-06-06 17:21:20 +03:00
Sergey Igushkin
483218e491
Fix for the Databinding issue where the kapt task started to early, not
...
letting the Databinding pre-process the project.
2017-06-06 17:21:20 +03:00
Sergey Igushkin
f053d79994
Add support for com.android.feature plugin.
2017-06-06 17:21:20 +03:00
Pavel V. Talanov
bdf76f23c4
Jvm Codegen: do not throw on malformed delegation to a type parameter
...
Fix exception on light class building
See KT-15931
2017-06-06 17:11:19 +03:00
Pavel V. Talanov
19db4304bd
Use clsDelegate to calculate hasModifierProperty("final") for light psi
...
AllOpen plugin can make some changes and we don't have the tools to make
correct decision based on psi
#KT-17857 Fixed
2017-06-06 17:11:18 +03:00
Pavel V. Talanov
f3f2379e5a
KtLightMemberModifierList:hasExplicitModifier("default") returns false
...
#KT-18070 Fixed
2017-06-06 17:11:17 +03:00
Mikhail Glukhikh
f54267eab4
Revert 'configureSilently' removal
2017-06-06 16:14:50 +03:00
Nikolay Krasko
0980446836
Fix running Android tests locally on windows
2017-06-06 14:56:22 +03:00
Nikolay Krasko
45958e630d
Refactoring: move method
2017-06-06 14:56:21 +03:00
Nikolay Krasko
cb4c840d3b
Remote old tasks for fetching continuous branches
2017-06-06 14:56:21 +03:00
Alexander Udalov
6a4c1b138f
Remove dependency of module 'cli' on 'builtins-serializer'
...
This breaks the circular dependency between them
2017-06-06 14:29:27 +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
2ed027219c
Remove dependency of module 'frontend' on 'plugin-api'
...
This breaks the circular dependency between them
2017-06-06 14:29:25 +03:00
Alexander Udalov
cc2f607be3
Remove dependency of module 'frontend.java' on 'javac-wrapper'
...
This breaks the circular dependency between them
2017-06-06 14:29:24 +03:00
Alexander Udalov
1df13e0bc9
Move TopDownAnalyzerFacadeForJVM to module 'cli'
...
It's only used in the command line compiler and in tests
2017-06-06 14:29:23 +03:00
Alexander Udalov
f6c263b54d
Remove dependency of module 'javac-wrapper' on 'cli' and 'cli-common'
...
This breaks the circular dependency between them
2017-06-06 14:29:22 +03:00
Alexander Udalov
1273ac9647
Remove dependency of module 'descriptors' on 'deserialization'
2017-06-06 14:29:21 +03:00
Alexander Udalov
751ff48301
Extract logic of builtins package fragment provider creation
...
This allows to drop the compile dependency of module 'descriptors' on
'deserialization', breaking the circular dependency between them
2017-06-06 14:29:20 +03:00
Alexander Udalov
1728b77b2c
Minor, refactor createBuiltInsPackageFragmentProvider
2017-06-06 14:29:19 +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
Alexander Udalov
a4931568ba
Relocate service definition files for kotlin-reflect
...
See
http://imperceptiblethoughts.com/shadow/#merging_service_descriptor_files
#KT-16810 Fixed
2017-06-06 14:29:17 +03:00
Alexander Udalov
2b878f863c
CLI: report error if kotlinc is invoked on Java 6 or 7
...
#KT-17297 Fixed
2017-06-06 14:17:28 +03:00
Alexander Udalov
ea9194e1fb
CLI: compile preloader against JDK 1.6
...
To be able to detect the Java runtime version at startup to report an
error if it's < 1.8
2017-06-06 14:17:27 +03:00
Alexander Udalov
a236400785
CLI: drop CommonCompilerArguments.createDefaultInstance
...
Move the corresponding default value initializers to the field
declarations
2017-06-06 14:17:26 +03:00
Alexander Udalov
26e3d2cf5d
Use TopLevelDeclarations analysis mode in REPL
...
#KT-12564 Fixed
2017-06-06 14:00:45 +03:00
Alexey Andreev
b6d12fe7f3
Fix bug in re-importing modules from inline declarations in JS
...
Fix another case in KT-18201
2017-06-06 13:36:19 +03:00
Alexey Andreev
67f9474e2e
Update changelog for 1.1.3
2017-06-06 11:40:36 +03:00
Dmitry Petrov
fd1866b838
Do not check argumentMapping.isError()
...
Argument matching status can be considered an "error" in resolve,
even though it is not a compilation error and doesn't prevent code
from being generated.
Actually, we should only check if the argument matching status is
ArgumentMatch.
#KT-18294 Fixed
2017-06-06 10:19:18 +03:00
Dmitry Neverov
e2aa3518df
Property accessor isn't recursive when called on another object
...
So #KT-18120 Fixed
2017-06-05 19:42:44 +03:00
Mikhail Glukhikh
ecfc2236a6
Fix script properties kind in modifier checker #KT-18234 Fixed
2017-06-05 17:22:11 +03:00
Mikhail Glukhikh
29f25ebeb9
Fix of JUnitMembersSearcherTest.testJunit3
2017-06-05 16:57:10 +03:00
Alexey Andreev
ee18c0f4e7
Fix name of JS DCE tool
2017-06-05 11:22:37 +03:00
Alexey Andreev
3180ea24d1
Fix assertion in test for reimporting declarations in JS
2017-06-05 11:21:41 +03:00
Alexander Udalov
e67e0440bb
Rename LexicalScope.Empty -> Base
...
"Empty" is slightly confusing because although the scope has no declared
symbols, it is not empty: it has a parent scope which can contain
symbols and can have parents as well
2017-06-05 10:27:38 +03:00
Alexey Andreev
1df6f2f9a0
JS BE: expose imported modules via $$importsForInline$$ property
...
... and use it as prefix to FQN in inline functions. This allows
to properly inline function declared in module A to module B,
when this function calls another function in module C.
See KT-18201
2017-06-02 14:18:42 +03:00
Dmitry Petrov
978661c53d
Do not generate default parameter values for synthetic functions
...
This causes a subtle issue with 'copy' function for data class,
which has parameters with source elements corresponding to
the data class primary constructor parameters: default value expression
for such parameters is generated second time (to be overwritten later),
which creates duplicate bindings if such expression included any
(possibly anonymous) declarations, such as lambdas or anonymous objects.
#KT-18208 Fixed
2017-06-02 10:57:45 +03:00
Alexander Udalov
eb3e728e63
Merge pull request #1111 from mithunsasidharan/patch-1
...
Fixed a typo in a comment
2017-06-02 10:47:18 +03:00
Alexander Udalov
45053c1de6
Merge pull request #1112 from mithunsasidharan/master
...
Minor corrections in spec-docs
2017-06-02 10:46:34 +03:00
Dmitry Petrov
4a632857d7
Fix internal compiler error in DefaultParameterValueSubstitutor
...
Most likely a typo in the original code.
2017-06-02 10:14:33 +03:00
Mithun Sasidharan
15716a7a3c
Minor corrections to spec-docs
2017-06-02 10:59:59 +05:30
Mithun Sasidharan
21849fe466
Fixed a minor spelling mistake in a comment
...
Fixed a minor spelling mistake in a comment
2017-06-02 08:57:00 +05:30
Vyacheslav Gerasimov
24476fc581
Fix MoveProperty intention: better property placement
...
Property is placed now before first property, or at the beginning of class body if no properties found.
#KT-18044 Fixed
2017-06-01 20:35:20 +03:00
Vyacheslav Gerasimov
ca124d1e36
Remove Android api diagnostic error on Kotlin interface default methods
...
They don't require java 8 or any other special support to work on Android
#KT-18059 Fixed
2017-06-01 20:35:08 +03:00
Dmitry Jemerov
286f82a5c5
Don't set java.awt.headless if it was set externally
2017-05-31 16:02:26 +02:00
Alexey Tsvetkov
5a22917f82
Run Gradle Android tests with other Gradle tests
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
aa9a40b61b
Add tests with new Android Gradle Plugin
2017-05-31 16:59:03 +03:00
Sergey Igushkin
dce6a4f869
Fix UnsupportedOperationException caused by mutation of FileCollection
2017-05-31 16:59:03 +03:00
Sergey Igushkin
a68f7d79f5
Migration to AGP 2.3.0
2017-05-31 16:59:03 +03:00
Sergey Igushkin
6e721c4cee
Further fixes for Android tests on TeamCity
...
Added support repository to download_android_sdk.xml
Changed the build tools version in testProject to 23.0.1
(trial) Remove platform 22
2017-05-31 16:59:03 +03:00
Sergey Igushkin
227a1d5fa0
Got rid of the sdk-manager plugin.
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
18505157e0
Fix failing Gradle tests
...
* Extract ANDROID_HOME_PATH constant
* Set ANDROID_HOME_PATH to dependencies/androidSDK
* Running download_android_sdk.xml is now needed to run Gradle Integration Tests
* Modify download_android_sdk.xml so that tools/android is executable
(cherry picked from commit 75a6e37 )
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
6e07b1cd99
Gradle: set default values of languageVersion and apiVersion to null
...
Before the change, Gradle always explicitly set language and api
version to the latest version, preventing the compiler
from inferencing the arguments.
#KT-18047 fixed
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
b06b18de07
Set destination to null when module is set in JPS
...
This fixes the warning "The '-d' option with a directory destination
is ignored because '-module' is specified", when a project imported
from Gradle is built with JPS.
#KT-17665 fixed
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
5fbb41bf86
Stabilize test of Gradle's daemon for memory leaks
...
We need to wait for GC to finish, because GC can be concurrent
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
d80a463735
Report memory usage only when system property is set
...
This improves performance of Gradle builds with debug logging (--debug),
because System.gc is now forced only when the system property
'kotlin.gradle.test.report.memory.usage' is set.
#KT-17960 fixed
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
a6a829c272
Improve test error message
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
e1457ffea0
Limit max number of active Gradle processes for the test run
...
This is needed to avoid retaining memory by each Gradle version
which is critical for running tests on CI server.
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
2fa8a1139f
Refactor Gradle ITs so any Gradle wrapper version can be used
...
This change:
* fixes tests with missing (in branch 1.1.3) GradleWrapper-3.4
* enables using any Gradle version in integration tests
without adding a new GradleWrapper-<version> dir.
The only difference between wrappers is in a version
number in a `gradle-wrapper.properties` file.
I removed all but one wrappers from `test/resources`,
and replaced the version with the template token <GRADLE_WRAPPER_VERSION>
for the remaining wrapper.
During a test run a template wrapper for each required version
is copied to a temporary directory.
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
be1b1029a4
Minor: add .gitignore for gradle-tools
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
a8263361c0
Fix tests for coroutines setting in Gradle
...
ArgumentUtils#convertArgumentsToStringList does not
serialize an argument with default value,
so the string "-Xcoroutines=warn" was no longer present in logs.
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
0a17dc3229
Refactor kapt tasks' wiring
...
* Unify tasks wiring for new and old Android Gradle Plugin
* rename wireKaptTask->registerGeneratedJavaSource
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
e529592d15
Pass task object instead of task name to dependsOn
...
This simplifies filtering out dependsOn later
2017-05-31 16:59:03 +03:00
Alexey Tsvetkov
c8d05f8485
Remove most of Gradle tests with Jack
...
Jack is deprecated and Kotlin Gradle plugin throws,
so one test checking that build is failing with the exception
is enough.
2017-05-31 16:59:02 +03:00
Alexey Tsvetkov
0cb67b4052
Minor: simplify expression
2017-05-31 16:59:02 +03:00
Alexey Tsvetkov
c20d569aaa
Simplify friend paths configuration
2017-05-31 16:59:02 +03:00
Sergey Igushkin
3e95a551e0
Various fixes
...
* Expose internals as public to use them in the agp25 source set
* Refactor of Android25ProjectHandler.kt
* Fix Kapt3 for non-Android projects
2017-05-31 16:59:02 +03:00
Sergey Igushkin
546a26a4cd
Fix Kapt task depending on compileKotlin because of incorrect filtering
...
of compileJava dependencies
(cherry picked from commit 9a2c3b0)
2017-05-31 16:59:02 +03:00
Alexey Tsvetkov
95d3d3057a
Update gradle wrapper permissions
...
It was not executable on linux
2017-05-31 16:59:02 +03:00
Sergey Igushkin
a82c0c843e
Use the Google Maven repository instead of local preview.
...
(cherry picked from commit 4279335)
(cherry picked from commit 0e8b850 )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
edd22310c0
(minor) Fix missing dependency on JUnit
...
(cherry picked from commit 7ad5d04 )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
1bc0e8a276
Fix friend paths configuration with the new API for compile*Test tasks
...
Add lazy `friendClasspathEntries` to KotlinCompile
Set `friendClasspathEntries` in the Android25Pro
Change to AGP 3.0.0-alpha1;
(cherry picked from commit 1d6dd5c)
(cherry picked from commit 6cdf501 )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
7fae7c1d55
Fix registering the non-existent Kapt3 classes directory as bytecode if
...
Kapt3 is disabled.
(cherry picked from commit 692e23c)
(cherry picked from commit 1cbdb6c )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
77031ab6f9
Change the legacy API threshold to 2.5.0
...
(cherry picked from commit fca2e23)
(cherry picked from commit 9394d15 )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
d2a08c5fe4
Tasks wiring improvements & Kapt3 integration through variant wrapping
2017-05-31 16:59:02 +03:00
Sergey Igushkin
b0c2c4eba9
Task wiring
...
* Generalized tasks wiring
* Moved the old implementation to LegacyAndroidAndroidProjectHandler.kt
* Added an implementation with the new AGP API
(cherry picked from commit 1b4592d)
(cherry picked from commit 50a75d4 )
2017-05-31 16:59:02 +03:00
Sergey Igushkin
eb71dee9cc
Add prototype against the new AGP API
...
* Add a separate Gradle source set, that is compiled against the new
versions of AGP and Gradle
* Separate the public AGP API usages from the old internal API usages
in KotlinPlugin.kt -- see AbstractAndroidProjectHandler
* Implement Android25ProjectHandler with the new AGP API, wired it
to KotlinAndroidPlugin through reflection
(cherry picked from commit e6dbf54)
(cherry picked from commit 88e3d4b )
2017-05-31 16:59:02 +03:00
Dmitry Petrov
a5620454fa
Minor: use IntrinsicMethods.INTRINSICS_CLASS_NAME where appropriate
2017-05-31 16:48:14 +03:00
Dmitry Petrov
a6f8aad49b
Minor: fix typo in exception message
2017-05-31 16:48:14 +03:00
Dmitry Petrov
08885e273b
Support additional intrinsics in null check elimination
...
1. checkExpressionValueIsNotNull implies checked value is non-null
2. throwNpe never returns
#KT-18162 Fixed Target versions 1.1.4
#KT-18164 Fixed Target versions 1.1.4
2017-05-31 16:48:14 +03:00
Dmitry Petrov
d559212d70
Optimize out trivial INSTANCEOF checks
...
#KT-18157 Fixed Target versions 1.1.4
2017-05-31 16:48:14 +03:00
Mikhail Glukhikh
74ee9ce68b
Fix "remove explicit type arguments" in J2K
...
Do not delete type arguments if intention is not applicable just befor
2017-05-31 12:47:56 +03:00
Mikhail Glukhikh
9c15db93d9
Inline: more accurate handling of type arguments
...
Partial revert of b8cc7c2ca6
Soften requirements in remove type arguments intention in this mode
So #KT-17622 Fixed
Related to KT-17623
2017-05-31 12:47:50 +03:00
Mikhail Glukhikh
38d6c597a3
Handle expected type more precisely in RemoveExplicitTypeArguments
...
So #KT-17623 Fixed
2017-05-31 12:46:59 +03:00
Mikhail Glukhikh
c67f8c07d2
Minor cleanup
2017-05-31 12:46:47 +03:00
Alexey Andreev
e6b0cc64bd
Fix copying of non-abstract functions of interfaces in JS BE
...
Fix copying of non-abstract functions of interfaces to implementing
classes when implementing class inherits interface via 2+ paths.
See KT-18187
2017-05-31 11:21:13 +03:00
Dmitry Petrov
c558e2657b
Update testData for light classes after generic signature fixes
2017-05-31 10:18:48 +03:00
Dmitry Petrov
17d2472511
Do not patch generic signature for methods with special bridges
...
Somewhat awkward solution for KT-18189.
2017-05-31 10:18:48 +03:00
Dmitry Petrov
fd00a6fbe8
Generate generic signatures for special bridges
...
#KT-12408 Fixed Target versions 1.1.4
2017-05-31 10:18:48 +03:00
Dmitry Petrov
48a60e6f39
Dump generic signatures in bytecode listing tests if required
...
Add '// WITH_SIGNATURES' to test file if generic signatures should be
dumped.
2017-05-31 10:18:48 +03:00
Dmitry Petrov
78de1fb72c
Handle incorrect code for interface delegation
...
#KT-15931 Fixed Target versions 1.1.4
2017-05-31 10:18:48 +03:00
Yan Zhulanow
4f132f6d40
Kapt: Fix output file reporting in IC
...
Fix REPORT_OUTPUT_FILES option passing to GenerationState created in kapt.
This fixes these tests:
Kapt3Incremental.testChangeAnnotatedPropertyType()
Kapt3Incremental.testRemoveAnnotations()
Kapt3Incremental.testRemoveSourceFile()
2017-05-30 22:09:20 +03:00
Alexander Udalov
1572d2cf2b
Improve modular JDK root module detection
...
According to the spec, "java.se" and every other non-"java.*" module
that exports at least one package without qualification, is a root.
Currently we only support compilation of a single unnamed module, and
apparently unnamed module should read all root modules.
#KT-18180 Fixed
2017-05-30 17:35:25 +03:00
Alexander Udalov
5042bbe4a1
Minor refactoring in ContentRoots, JvmContentRoots and usages
2017-05-30 17:35:23 +03:00
Alexander Udalov
227c2d2c23
Minor, display multiline argument help prettier
2017-05-30 17:33:11 +03:00
Mikhail Glukhikh
00fa7c8166
Minor cleanup: MoveReceiverAnnotationFix
2017-05-30 15:58:22 +03:00
Kirill Rakhman
08bd212d82
Add quickfix for @receiver applied to extension member instead of type
...
So #KT-14648 Fixed
2017-05-30 15:47:21 +03:00
Dmitry Neverov
b206f6288d
Convert to primary constructor preserves accessors #KT-17996 Fixed
2017-05-30 15:35:54 +03:00
Alexey Andreev
4346fb5c23
Minor refactoring of JS AST nodes representing boolean literals
2017-05-30 12:49:00 +03:00
Alexey Andreev
5715803b96
Fix incremental recompilation of JS source maps
...
Note that this breaks binary compatibility.
It should be OK, since nobody is using incremental compilation API
for now.
2017-05-30 12:48:59 +03:00
Alexey Andreev
ed592452a3
Fix JS source maps for functions with expression body
2017-05-30 12:48:59 +03:00
Alexey Andreev
1014666937
Fix JS source maps for delegates and backing fields
2017-05-30 12:48:58 +03:00
Alexey Andreev
13795b47fb
Fix JS source maps for initialization of variables captured by class
2017-05-30 12:48:58 +03:00
Alexey Andreev
bfc3a9c2af
Fix JS source maps for && expression with complex operands
2017-05-30 12:48:57 +03:00
Alexey Andreev
1111f2d5cd
Fix JS source maps for while/do..while statements
2017-05-30 12:48:57 +03:00
Alexey Andreev
413ac40c25
Fix JS source maps for for statements
2017-05-30 12:48:56 +03:00
Alexey Andreev
d7a10750e0
Fix JS source maps for lambdas
2017-05-30 12:48:55 +03:00
Alexey Andreev
82d37c0d57
Fix JS source maps for catch blocks
2017-05-30 12:48:55 +03:00
Alexey Andreev
6ad991adfb
Fix JS source maps for "is" and "in" clauses in when expression
2017-05-30 12:48:54 +03:00
Alexey Andreev
9692c02f6e
Fix JS source maps for string literals
2017-05-30 12:48:53 +03:00
Alexey Andreev
8dae399945
Fix generation of JS source maps for default parameters
...
(Of open member functions)
2017-05-30 12:48:52 +03:00
Alexey Andreev
e1009622af
Fix generation of JS source maps for call expressions
2017-05-30 12:48:52 +03:00
Alexey Andreev
6e489900cb
Fix generation of JS source maps for long literals
2017-05-30 12:48:51 +03:00
Alexey Andreev
89e3fb7592
Keep JS AST source information after refreshing local names
2017-05-30 12:48:51 +03:00
Alexey Andreev
ad89e5906f
Fix JS source maps for increment expression used as statement
2017-05-30 12:48:50 +03:00
Alexey Andreev
bad79dfa85
Fix JS source maps for return statement of inlined function
2017-05-30 12:48:49 +03:00
Alexey Andreev
5a4d3c5391
Generate JS source maps for object instance function
2017-05-30 12:48:49 +03:00
Alexey Andreev
77df0f28bf
Fix generation of JS source maps for class properties
2017-05-30 12:48:48 +03:00
Alexey Andreev
6f8ccfb80d
Add test for JS source maps for literals
2017-05-30 12:48:47 +03:00
Alexey Andreev
e9a2c8c0f1
Prevent JS AST nodes of several types to be shared
2017-05-30 12:48:47 +03:00
Alexey Andreev
3077a0f640
Fix generation of JS source maps for suspend functions
2017-05-30 12:12:49 +03:00
Alexey Andreev
28140b0883
Fix generation of JS source maps for closures
2017-05-30 12:12:34 +03:00
Alexey Andreev
3a7df13440
Fix generation of source maps for synthetic code in enums in JS BE
2017-05-30 12:12:33 +03:00
Alexey Andreev
fb3a864892
Fix generation of JS source maps for synthetic code in constructors
2017-05-30 12:12:32 +03:00
Alexey Andreev
4332f1cb2c
Don't share instances of JsNameRef nodes to avoid wrong source maps
...
When to name references to the same name are represented by
a shared JS AST node, setting line number of the second usage may
override line number of the first usage.
Also, supply more JS AST nodes related to default parameters,
with corresponding source information.
2017-05-30 12:12:30 +03:00
Alexey Andreev
e5662ac2ad
Copy location info when copying JS AST subtrees
...
This is necessary to preserve source information of a function's body
after inlining.
2017-05-30 12:12:28 +03:00
Alexey Andreev
9218b61141
Add tests for source maps in JS BE
2017-05-30 12:12:27 +03:00
Simon Ogorodnik
f8914013ef
Fix infinity deferred element unfolding in J2K
...
#KT-13146 fixed
2017-05-29 20:26:45 +03:00
Alexey Andreev
4bb1130f3f
Fix translation of labels with non-identifier names in JS BE
...
See KT-18027
2017-05-29 15:37:31 +03:00
Alexey Andreev
9375a1d984
Prohibit illegal identifiers in packages in JS BE
...
See KT-18032
2017-05-29 15:37:30 +03:00
Alexey Andreev
a0ddbf0e9b
Fix handling non-ES5 identifiers in JS
...
When a Kotlin identifiers contains non-ES5 chars, JS BE
either reports error (for published declarations) or mangles name
(for non-published ones). The old approach relied on wrong
assuption that Java identifier = ES identifier.
However, that's not true. This commit introduces functions that
check identifiers according to ES5.1 spec rather than
using Character.isIdentifierStart[Part]
See KT-17476
2017-05-29 15:37:29 +03:00
Alexey Andreev
24c0a1e7ce
Fix translation of delegated functions with default params in JS BE
...
See KT-17285
2017-05-29 15:30:28 +03:00
Alexey Andreev
383e273fed
In LightAnalysisModeTestGenerated skip tests ignored in JVM
...
When a test is marked as ignored in JVM BE (i.e. IGNORE_BACKEND: JVM)
it's ignored in LightAnalysisModeTestGenerated. This means that
this tests is expected to fail. However, often tests that fail
in JVM blackbox tests, don't fail in LAMTG, therefore it's reasonable
to skip these tests in LAMTG at all.
2017-05-29 15:30:27 +03:00
Denis Zharkov
2c98bd053a
Fix super calls to suspend functions in abstract classes
2017-05-29 10:58:18 +03:00
Alexander Udalov
26ef954507
Merge pull request #1102 from igorini/master
...
Fix inline code block in notation.grm
2017-05-29 10:55:38 +03:00
igorini
00a5ff2364
Fix inline block in notation.grm
2017-05-28 17:12:52 +01:00
Alexander Udalov
da0ecc6cf7
Refactor CompileKotlinAgainstCustomBinariesTest
...
Combine compileLibrary and compileJava into a universal compileLibrary
which compiles both .java and .kt files, either to a directory or to a
.jar file. Also introduce compileJsLibrary for JS only
2017-05-26 19:38:54 +03:00
Alexander Udalov
dae414854d
Reduce boilerplate in CompileKotlinAgainstCustomBinariesTest
...
Check against output.txt in compileKotlin; adapt test data of some tests
2017-05-26 19:38:53 +03:00
Alexander Udalov
0899eb9924
J2K CompileKotlinAgainstCustomBinariesTest: prettify
2017-05-26 19:38:52 +03:00
Alexander Udalov
2ef48bfbca
J2K CompileKotlinAgainstCustomBinariesTest: convert
2017-05-26 19:38:51 +03:00
Alexander Udalov
0e4ea10d8a
J2K CompileKotlinAgainstCustomBinariesTest: move .java -> .kt
2017-05-26 19:38:50 +03:00
Alexander Udalov
a583a2f171
Move JavaModuleInfo and JavaModuleGraph to frontend.java
2017-05-26 19:38:49 +03:00
Alexey Andreev
dde50a34db
Fix comparison of boolean values in JS BE
...
See KT-16984
2017-05-26 18:26:08 +03:00
Alexey Andreev
f5510b8d66
Fix translation to JS of call to top-level fun with vararg and @JsModule
...
See KT-17871
2017-05-26 18:24:15 +03:00
Alexey Andreev
e2fc808d83
Add simple test infrastructure for JS DCE
...
Add test infrastructure that allows to test handwritten JS
to test various small aspects of DCE, as opposed to box tests
which test kotlin stdlib + kotlin generated examples
2017-05-26 18:20:30 +03:00
Alexey Andreev
522a56947c
Add -keep command line option to JS DCE tool
2017-05-26 18:20:23 +03:00
Alexey Andreev
9181140387
Suppress some DCE tests that can't pass
2017-05-26 18:20:21 +03:00
Alexey Andreev
e2c2fcf1ff
Generate EXPECTED_REACHABLE_NODES directive on JS box tests
2017-05-26 18:20:20 +03:00
Alexey Andreev
ab9b639652
Improve test infrastructure for JS DCE tool
...
Introduce directives to assert minification rate (MINIFIER_THRESHOLD)
and to skip DCE test at all (SKIP_MINIFIER).
Allow to run DCE on some of the box tests by default.
2017-05-26 18:20:19 +03:00
Alexey Andreev
8a8fdf1968
Command-line tool for JS DCE
2017-05-26 18:20:17 +03:00
Alexey Andreev
ca7062d776
Fix JS parser to properly handle "." <keyword> sequence
2017-05-26 18:20:16 +03:00
Alexey Andreev
9e89213d66
Prototyping DCE tool for JS
2017-05-26 18:20:15 +03:00
Simon Ogorodnik
d617b1d869
Fix IfThenToSafeAccessIntention broken by refactoring
...
Broken in 66c5717adc
2017-05-26 17:32:47 +03:00
Valentin Kipyatkov
87e3725306
Do not report property as unused when it is used
...
#KT-17062 Fixed
2017-05-26 16:37:38 +03:00
Valentin Kipyatkov
986eaeb7ea
Refactoring
2017-05-26 16:37:37 +03:00
Valentin Kipyatkov
d53aa28ddf
Fixed expected type for setter
2017-05-26 16:37:37 +03:00
Valentin Kipyatkov
db0309c39d
Reorder
2017-05-26 16:37:37 +03:00
Valentin Kipyatkov
545384910c
Special order of usage processing is not needed anymore
2017-05-26 16:37:37 +03:00
Valentin Kipyatkov
c69375ebdc
Remove redundant curly braces in string templates on inline
2017-05-26 16:37:37 +03:00
Valentin Kipyatkov
ab1b985bac
Inline Property supported for properties with setter
...
#KT-2638 Fixed
2017-05-26 16:37:36 +03:00
Valentin Kipyatkov
e6bfa55534
Inline Property also supported for properties with getter
2017-05-26 16:37:36 +03:00
Valentin Kipyatkov
20686297e5
Refactored to not use too many local functions
2017-05-26 16:37:36 +03:00
Valentin Kipyatkov
940ce27925
Inline val: more correct and simple detection of write usages
...
#KT-17489 Fixed
2017-05-26 16:37:35 +03:00
Valentin Kipyatkov
55979aca74
Drop result value if it's not needed
2017-05-26 16:37:35 +03:00
Mikhail Glukhikh
adbece82ef
Clear DF info for variables assigned in 'try' #KT-17929 Fixed
2017-05-26 15:39:27 +03:00
Mikhail Glukhikh
0fd70df681
Add tests for KT-17929
2017-05-26 15:39:25 +03:00
Mikhail Glukhikh
d9e4b445b9
Add extra information for EA-76201
2017-05-26 15:39:24 +03:00
Alexey Tsvetkov
3de679fb23
Minor: add comment for CompilerMessageSeverity.OUTPUT
2017-05-26 15:16:41 +03:00
Alexey Tsvetkov
afa1e901a7
Ensure output directory exists when adding it to classpath
...
Otherwise a warning is reported:
"Сlasspath entry points to a non-existent location".
Currently it only affects Maven + IC.
2017-05-26 15:16:41 +03:00
Alexey Tsvetkov
fd9e42a233
Do not print OUTPUT message as warning in Maven
...
Before the change Maven + IC had been reporting OUTPUT
messages as warnings since OUTPUT was removed
from CompilerMessageSeverity.VERBOSE
2017-05-26 15:16:41 +03:00
Zalim Bashorov
13aeb171bd
Provide more info for EA-89216
2017-05-26 15:06:32 +03:00
Dmitry Neverov
753b714544
Report cases when class member can be private
2017-05-26 13:29:01 +02:00
Dmitry Petrov
c83b764c73
Update testData after changes in diagnostics
2017-05-26 13:58:46 +03:00
Dmitry Petrov
2c83718452
Prohibit having duplicate parameter names in functional types
...
#KT-15804 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
9908212c99
Report VIRTUAL_MEMBER_HIDDEN on declaration name
...
#KT-13749 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
96f7a2d38a
Fix message for EXTERNAL_DECLARATION_CANNOT_BE_INLINED
...
#KT-10164 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
a86fe89aae
Include file name for package-level members in diagnostics
2017-05-26 13:58:46 +03:00
Dmitry Petrov
7979663e6c
Update testData for changed diagnostic messages
2017-05-26 13:58:46 +03:00
Dmitry Petrov
17eab2865d
Include containing declaration name in message for JVM signature clashes
...
#KT-9359 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
d850f01c39
Fix diagnostic for uninitialized extension property without accessors
...
#KT-8612 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
902d3af280
Prohibit extending kotlin.Enum directly
...
#KT-7773 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
b9e45bcd54
Fix diagnostic message for INACCESSIBLE_OUTER_CLASS_EXPRESSION
...
Diagnostic messages should describe a problem,
and should not suggest taking actions.
That's a prerogative of quick fixes in IDE.
#KT-5511 Fixed
2017-05-26 13:58:46 +03:00
Dmitry Petrov
7518119bff
Fix diagnostic message for abstract member not implemented
...
Diagnostic messages should describe a problem,
and should not suggest taking actions.
That's a prerogative of quick fixes in IDE.
#KT-5066 Fixed
2017-05-26 13:58:46 +03:00
Mikhael Bogdanov
3f7bf8467a
Process non-aload0 outer access in constructor during inline
...
#KT-17972 Fixed
2017-05-26 09:24:10 +02:00
Ilya Zorin
5e265b3d17
Convert intention "a..b-1 -> a until b" into weak warning inspection
...
So #KT-17895 Fixed
2017-05-26 09:48:04 +03:00
Dmitry Neverov
0fd42bc747
Don't suggest cast when !! is possible #KT-18033 Fixed
2017-05-26 09:47:57 +03:00
Mikhail Glukhikh
af3a123c15
Report WRONG_MODIFIER_CONTAINING_DECLARATION for vararg in setter
2017-05-26 09:47:51 +03:00
Dmitry Petrov
30182c38ce
Fix toString and hashCode for array members of data classes
...
Generate them as special intrinsics that would be mapped to proper
platform-specific calls by BEs.
#KT-16945 Fixed
2017-05-26 09:32:29 +03:00
Dmitry Petrov
1420926a9b
Generate receivers for callable references in the same way as for calls
...
Properly handle callable members imported from objects
and other related corner cases.
#KT-18084 Fixed
2017-05-26 09:32:29 +03:00
Yan Zhulanow
7220183912
Kapt: Write @kotlin.Metadata annotation to Java stubs #KT-17937
2017-05-25 21:28:47 +03:00
Yan Zhulanow
141f12e71b
Minor: Commit forgotten kapt test data
2017-05-25 21:28:40 +03:00
Mikhail Zarechenskiy
4e38ff3b72
Exclude several tests about inner generic signature on Android
...
There is no information about inner generic class in the middle of signature
on android.
For example, on JVM we can get signature:
`FirstInner$SecondInner<A>.ThirdInnner;`
But on Android it would be
`FirstInner$SecondInner$ThirdInnner;`
2017-05-25 16:46:07 +03:00
Mikhail Zarechenskiy
d0e26c6527
Support underscores in non local destructuring declarations
2017-05-25 16:46:06 +03:00
Mikhail Zarechenskiy
47f2386212
Generate non-local destructuring declarations as properties
...
#KT-5620 Fixed
#KT-15810 Fixed
2017-05-25 16:46:05 +03:00
Mikhail Zarechenskiy
400ecd5e13
Support destructuring declarations in scripts and REPL
...
#KT-5620 In Progress
#KT-15810 In Progress
2017-05-25 16:46:04 +03:00
Alexey Andreev
0e31c14a86
Implement inlining of default parameters in JS BE
...
Fix KT-17910
2017-05-25 14:38:53 +03:00
Valentin Kipyatkov
40bbf82a41
Hint action to update usages on cut/paste of top-level declarations
2017-05-24 16:49:37 +03:00
nd
cb5459b7d7
Don't suggest adding replaceWith in DeprecationLevel.HIDDEN ( #1094 )
...
#KT-17917 Fixed
2017-05-24 15:06:51 +02:00
nd
8d6d228bb8
Move property to constructor preserves vararg keyword ( #1095 )
...
#KT-18035 Fixed
2017-05-24 14:58:30 +02:00
Alexander Udalov
965b4199f4
Fix compilation against JRE 9 on JPS
...
Write the modular JDK (9+) path to the module.xml file passed to the
compiler from the JPS plugin. This path is then recorded in the compiler
configuration in KotlinToJVMBytecodeCompiler.configureSourceRoots. This
is needed because in JPS plugin, we pass "-no-jdk" and thus no JDK home
path was recorded in the compiler configuration in
K2JVMCompiler.setupJdkClasspathRoots. Presence of JDK home path in the
configuration is crucial for JDK 9 support (see
KotlinCoreEnvironment.Companion.createApplicationEnvironment), because
classes there can only be loaded with the special "jrt" file system, not
as .class files in .jar files
#KT-17801 Fixed
2017-05-24 15:46:57 +03:00
Alexander Udalov
f8dabc79c3
Use environment variable JDK_19 instead of JDK_9
...
JDK_19 is set on TeamCity agents, not JDK_9.
Also do not invoke getJreHome() because Java 9 distribution does not
have a "jre" subdirectory
2017-05-24 15:46:57 +03:00
shiraji
c8e58ce9ab
Fix WrapWithSafeLetCallFix ignore extension method
...
Related to KT-17726
2017-05-24 14:02:01 +03:00
Mikhail Glukhikh
bd73916d99
Minor cleanup
2017-05-24 14:01:59 +03:00
Dmitry Neverov
46aaee5d05
Fix nullability quick-fixes with implicit receiver #KT-17726 Fixed
2017-05-24 14:01:58 +03:00
Ilya Chernikov
9d2ae54d2c
Introduce other JVM options inheritance for daemon
2017-05-24 10:52:38 +02:00
Ilya Chernikov
6190b1ec2e
Fix daemon selection on the memory settings
2017-05-24 10:52:37 +02:00
Ilya Chernikov
f8ef48f03e
minor: log daemon client registration
2017-05-24 10:52:37 +02:00
Ilya Chernikov
f00149ad05
Reuse daemon launching logic for out-of-process compilation in gradle
2017-05-24 10:52:36 +02:00
Ilya Chernikov
61570fc4b8
Improve daemon client diagnostic and run failure detection
...
Removing prefiltering of the daemon client reporting - filtering should
be performed on the receiver site. And put daemon process output during
executioninto INFO category. May make daemon usage more talkative,
but will not eat important error messages anymore.
Add test with failure condition.
Also failed daemon start should not cause timeout anymore.
2017-05-24 10:52:35 +02:00
Ilya Chernikov
bec2ae7cab
Refactor daemon tests, some minor fixes in the client and daemon
...
Tests refactored for better readability and code reuse
Some shutdown livelock is fixed
Some logging added
2017-05-24 10:52:35 +02:00
Dmitry Petrov
7600b6de52
Allow top-level type aliases in scripts
2017-05-24 11:20:22 +03:00
Dmitry Petrov
425c66b0cd
Separate stub generation for external dependencies from PSI2IR
2017-05-24 11:18:52 +03:00
Dmitry Petrov
952f53d37c
Use DeclarationStubGenerator for built-ins initialization
2017-05-24 11:18:52 +03:00
Dmitry Petrov
ec9427a36b
Minor: make DeepCopySymbolsRemapper open
2017-05-24 11:18:52 +03:00
Dmitry Petrov
e7eb078c3f
Minor: remove always true is-check
2017-05-24 11:18:52 +03:00
Dmitry Petrov
6fd762cfce
Provide DeclarationStubGenerator as a separate class in IR utilities
2017-05-24 11:18:52 +03:00
Dmitry Petrov
7204a929f3
Move SymbolTable to common IR utilities
2017-05-24 11:18:52 +03:00
Dmitry Jemerov
4f08d2b16a
Remove incorrect argument count check from TODO searcher
2017-05-23 18:36:17 +02:00
Denis Zharkov
970dfd10d4
Update rendered public API for coroutines
...
suspendCoroutine is not public anymore as it's inline
and all inline suspend functions are treated as inline-only,
i.e. private in JVM
2017-05-23 18:45:33 +03:00
Nikolay Krasko
d717da5413
Add language to formatting blocks to fetch indent settings propertly
2017-05-23 18:28:13 +03:00
Nikolay Krasko
8f964978da
Minor: activate copy actual to expected file
2017-05-23 18:28:06 +03:00
Nikolay Krasko
287443cab9
Add not-null annotation to avoid warnings on getProjectDescriptor()
2017-05-23 18:26:21 +03:00
Yan Zhulanow
87f3b574aa
Kapt: Filter the content root items for the compile classpath properly
2017-05-23 16:45:40 +03:00
Yan Zhulanow
5ec16167bc
Kapt: Preserve parameter names for abstract methods
2017-05-23 16:45:29 +03:00
Yan Zhulanow
18e17a4400
Android Extensions: Remove obsolete migration warning in Gradle plugin
2017-05-23 16:45:24 +03:00
Yan Zhulanow
1a342faf38
Kapt3: Ignore packages with Java keywords inside (KT-17184)
2017-05-23 16:45:19 +03:00
Yan Zhulanow
1c5765628e
Kapt3: Fix flaky integration tests on Windows agents
2017-05-23 16:45:14 +03:00
Dmitry Jemerov
57f4672b43
Fix ExtractionTestGenerated
2017-05-23 14:37:58 +02:00
Pavel V. Talanov
f701f8f590
Cache GSScope by dependencies in ScriptDependencyModuleInfo
...
Removing state in previous commit led to 'toVfsRoots' being called to often
2017-05-22 19:12:09 +03:00
Pavel V. Talanov
4f3b68f8e9
Avoid caching state in ScriptModuleInfos
...
This led to caching stale dependencies
#KT-17770 Fixed
2017-05-22 18:37:00 +03:00
qx
152c8b521e
Missed file
2017-05-22 18:34:27 +03:00
qx
bc14ce740a
KT-15309 Don't apply "Fix with 'asDynamic'" to member extension funcitons
2017-05-22 18:34:27 +03:00
Alexander Udalov
7f73e9f4f7
Improve hack in BuiltInsSerializerExtension for ranges
...
Serialize class names as qualified names in the string table, not as
simple strings. Otherwise NameResolverImpl crashes on deserialization
because it expects that all class names are indices into QualifiedName
table
2017-05-22 18:17:48 +03:00
Alexander Udalov
6d47991172
Minor, use other package in test data file
...
To avoid rendering contents of package org.intellij.lang.annotations
into the corresponding .txt file
2017-05-22 18:15:32 +03:00
Alexander Udalov
f8e82f148a
Drop TypeLazinessToken and LazyResolveToken
2017-05-22 18:15:19 +03:00
Pavel V. Talanov
8fc953f529
Modules with different language levels can't be analyzed together
...
"Supports additional builtIn members" setting
is basically adding members to some types
If we analyze them toghether other modules would leak types
that have those members (or don't) into other modules scopes
leading to code that has erroneous highlighting
See KT-17357
#KT-17357 Fixed
2017-05-22 17:42:21 +03:00
Denis Zharkov
eedc35aefd
Drop new coroutine-related API introduced in 1.1.4
...
See 49453ca705 for clarification
#KT-17898 Fixed
2017-05-22 14:51:04 +03:00
Denis Zharkov
e2e93d633c
Get rid of using label field in named function
...
It preventing from making it protected (as it was before)
#KT-17898 In progress
2017-05-22 14:51:04 +03:00
Denis Zharkov
52b2e632df
Simplify generated code for rangeTo/concat intrinsics
...
The main reason is avoiding complicated operations like
dup + dup_x2 + pop2 for instances obtained by NEW instruction.
Otherwise it leads to problems in performRefinedTypeAnalysis
because code there has a sensible assumption that NEW instances
can be only dupped or stored into a local (rare cases)
#KT-17457 Fixed
2017-05-22 14:51:04 +03:00
Anton Bannykh
419f12f1b7
JS: fix char to string convertion in string templates (#KT-17966 fixed)
2017-05-22 13:57:36 +03:00
Simon Ogorodnik
6a8bb8b33d
Fix CCE in constructNestedClassReferenceIdentifier J2K
...
#KT-17712 fixed
2017-05-22 13:55:26 +03:00
fitermay
d0991fffd2
Fix keyword completion in 'if' blocks
...
#KT-17914 fixed
2017-05-22 13:54:25 +03:00
Alexey Sedunov
75b73ecbcb
Copy: Disable CopyKotlinDeclarationsHandler on non-source files
2017-05-22 13:51:08 +03:00
Alexey Sedunov
151b512a6c
Kotlin Facet: Do not rewrite v2 configuration to latest version
...
This causes unwanted changes in configuration files
after plugin update
2017-05-22 13:51:07 +03:00
Alexey Sedunov
6049bb8238
Configuration: Use project-level JVM target when facet is absent
...
#KT-17722 Fixed
2017-05-22 13:51:06 +03:00
Dmitry Petrov
45820f0220
Minor: more cleanup after converting to Kotlin
2017-05-22 11:57:20 +03:00
Dmitry Petrov
39aa97eebf
Use Intrinsics#compare when specializing compareTo for ints
2017-05-22 11:57:20 +03:00
Dmitry Petrov
a1ae40a617
RedundantBoxingMethodTransformer: convert to Kotlin & cleanup
2017-05-22 11:57:20 +03:00
Dmitry Petrov
f1bb9a9839
RedundantBoxingMethodTransformer: .java -> .kt
2017-05-22 11:57:20 +03:00
Dmitry Petrov
89bfa64e90
Minor: simplify code in RedundantGotoMethodTransformer
2017-05-22 11:57:20 +03:00
Dmitry Petrov
e1b41eee15
Specialize Comparable#compareTo for boxed primitives
...
Support Comparable#compareTo for boxed primitive in redundant
boxing/unboxing analysis, along with CHECKCAST to java.lang.Comparable.
Note that we can do that for Float and Double, too, because
Float#compareTo(Float) and Double#compareTo(Double) are delegated to
Float#compare(float, float) and Double#compare(double, double),
respectively.
Fuse specialized comparison for integers with conditional jumps
if possible (both for Comparable#compareTo and Intrinsics#areEqual).
#KT-11959 Fixed
2017-05-22 11:57:20 +03:00
Dmitry Petrov
bd5b984da9
Return type of local delegated property setter should be Unit
...
#KT-17950 Fixed
2017-05-22 11:47:09 +03:00
Mikhael Bogdanov
ba06ad3e53
Minor. Fix test directive
2017-05-22 08:31:03 +02:00
Valentin Kipyatkov
1fe6886a33
Fixed error message to quote parameter name
2017-05-20 23:44:20 +03:00
Kirill Rakhman
4cbdbaa057
refactor ConvertFunctionToPropertyIntention and fix 'Convert function to property shouldn't insert explicit type if it was inferred previously' ( #1011 )
...
Fixes #KT-14820
2017-05-19 21:32:11 +03:00
Dmitry Jemerov
927cd04405
Add module documentation for kotlin.test
2017-05-19 19:46:51 +02:00
Mikhail Glukhikh
17869abfaf
Don't suggest making interface member final
...
(which was possible in leaking this inspection)
So #KT-14443 Fixed
2017-05-19 20:36:31 +03:00
Mikhail Glukhikh
a73cf0e1fe
Don't suggest make object container open #KT-11003 Fixed
2017-05-19 20:36:24 +03:00
Dmitry Neverov
3b4dafe691
Detect recursive property accessors #KT-17221 Fixed
2017-05-19 20:36:09 +03:00
ReadmeCritic
20f5023c48
Update README URLs based on HTTP redirects ( #1086 )
2017-05-19 20:25:05 +03:00
Dmitry Jemerov
ded5bfb841
Show calls of TODO() function in TODO view
...
#KT-8617 Fixed
2017-05-19 18:23:45 +02:00
Dmitry Jemerov
c8b0bd44eb
Mark document as out-of-date
2017-05-19 14:32:58 +02:00
Dmitry Petrov
2cda5aaeb5
Additional customization for DeepCopyIrTreeWithSymbols
...
1. Allow overriding 'getNonTransformedLoop'
2. Allow descriptor remapping on deep copy
2017-05-19 14:49:34 +03:00
Dmitry Petrov
b9dee7fcf3
Extract SymbolRemapper interface for DeepCopy customization
2017-05-19 14:49:34 +03:00
Dmitry Petrov
5f57368b4f
Minor: IR verifier should always check receiver descriptors
2017-05-19 14:49:34 +03:00
Dmitry Petrov
1dbd6453e0
Add more stub generator tests for external dependencies
2017-05-19 14:49:34 +03:00
Simon Ogorodnik
dba9011563
Check for batch PSI children update when invalidating package cache
...
#KT-17868 fixed
2017-05-19 13:07:30 +03:00
Valentin Kipyatkov
92a763552c
KT-17970 Intention actions to format parameter/argument list placing each on separate line
...
#KT-17970 Fixed
2017-05-19 12:20:51 +03:00
Mikhael Bogdanov
47fec6c9d5
Wrap captured local delegated property into Delegate
...
#KT-16864 Fixed
2017-05-19 09:53:19 +02:00
Ilya Gorbunov
fec8f4a48b
preparePublication task requires project version to be set
2017-05-19 05:37:58 +03:00
Dmitry Jemerov
f6574a475b
Show location for local classes in Goto Class
...
#KT-7954 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
232af8a4fc
Cleanup code style option names
...
#KT-14639 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
4dd3f30f2d
Build stubs for local functions; show them in Goto Symbol
...
#KT-14161 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
f72dd75127
Use provided file content in KotlinJsMetadataVersionIndex
...
#KT-17821 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
af043843b7
Don't show disambiguation for "Show expression type" on "this"
...
#KT-17840 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
2cbb8d03c0
Find Usages on "override val" in constructor asks about base usages
...
Also fix long-standing bug with "title" parameter being ignored when
displaying messages
#KT-17845 Fixed
2017-05-18 21:02:24 +02:00
Dmitry Jemerov
8f38d03b48
Indicate vararg parameters in Goto Symbol presentation
...
#KT-17899 Fixed
2017-05-18 21:02:24 +02:00
Nikolay Krasko
14c343de35
Enable auto-indent in multiline strings when caret is before interpolation
...
#KT-17849 Fixed
2017-05-18 20:00:18 +03:00
Nikolay Krasko
251a0270a4
Make auto-indent work for multiline string with injection (KT-17942)
...
#KT-17942 Fixed
2017-05-18 20:00:18 +03:00
Nikolay Krasko
e5822c76fb
Allow injection in strings with interpolation (KT-6610)
...
#KT-6610 Fixed
2017-05-18 20:00:18 +03:00
Nikolay Krasko
12002aed57
Do injection with comments through our injector (KT-6610)
...
Hide Kotlin from CommentLanguageInjector as it only can insert simple
injection. Process injection by commented strings on our own.
#KT-6610 In Progress
2017-05-18 20:00:18 +03:00
Nikolay Krasko
0191c8c6c1
Force kotlin injector before temporary injector (KT-6610)
...
Place KotlinLanguageInject before TemporaryPlacesInjector
TemporaryPlacesInjector injects languages as a single place while we
need to distinguish interpolated and non-interpolated strings. Bad
ordering leads to inconsistent behaviour in temporary injection and
injection with annotations and comments.
See InjectedLanguageManagerImpl.getInjectorMap()
#KT-6610 In Progress
2017-05-18 20:00:18 +03:00
Nikolay Krasko
2f1a40a40d
Use multi host injector for Kotlin injection (KT-6610)
...
#KT-6610 In Progress
2017-05-18 20:00:18 +03:00
Nikolay Krasko
0551659281
Don't indent to unrelated closing quote (KT-17894)
...
#KT-17894 Fixed
2017-05-18 20:00:18 +03:00
Nikolay Krasko
e211980df4
Minor: Remove commented tests
2017-05-18 20:00:17 +03:00
Nikolay Krasko
0cd3e4f3a4
Minor: JetFile -> KtFile
2017-05-18 20:00:17 +03:00
Alexander Udalov
d1c9d0328a
Report error if <withKotlin> is run in fork mode
...
Otherwise the error message is confusing, see #KT-9292
2017-05-18 19:25:21 +03:00
Alexander Udalov
671aed252d
Support single Java source files in kotlinc arguments
...
E.g. "kotlinc foo.kt test/Bar.java" will compile foo.kt, and
declarations from Bar.java will be accessible to Kotlin code in foo.kt.
The change in AbstractTopLevelMembersInvocationTest is needed because an
incorrect configuration was created in that test where a library jar was
also a Java source root (the compiler is never configured this way in
production), which led to an exception in
JavaCoreProjectEnvironment#addSourcesToClasspath
#KT-17697 Fixed
2017-05-18 19:22:17 +03:00
Mikhael Bogdanov
511c9f86b1
Add new test on receiver clash during default lambda inlining
2017-05-18 18:18:15 +02:00
Mikhael Bogdanov
ec23df1d29
Extract callable reference tests to separate directory
2017-05-18 18:18:15 +02:00
Mikhael Bogdanov
f4a388cf71
Add new tests for default lambda inlining
2017-05-18 18:18:14 +02:00
Mikhael Bogdanov
42074f143d
Report diagnostic on inline parameter usage inside defaul value for another inline parameter
2017-05-18 18:18:13 +02:00
Mikhael Bogdanov
0d1ede40c1
Convert InlineChecker to Kotlin
2017-05-18 18:18:12 +02:00
Mikhael Bogdanov
4a28287c68
Rename InlineChecker.java to InlineChecker.kt
2017-05-18 18:18:11 +02:00
Sergey Igushkin
6a31f8c139
Update ReadMe.md
2017-05-18 17:53:23 +03:00
Alexey Sedunov
23c0e6fcb5
Kotlin Facet: Filter out API versions exceeding library version
...
Also drop version validator as it's not needed anymore
#KT-17847 Fixed
2017-05-18 14:22:43 +03:00
Alexey Sedunov
d288c684c8
Kotlin Facet: Configure facet if kotlin-android plugin is present
...
#KT-17861 Fixed
2017-05-18 14:22:42 +03:00
Alexey Sedunov
8f6f69db65
Kotlin Facet: Suppress bogus warning about language/api version
...
#KT-17848 Fixed
2017-05-18 14:22:41 +03:00
Alexey Sedunov
0994474e87
Presentation: Fix NPE on functional type rendering
...
#KT-17638 Fixed
2017-05-18 14:22:40 +03:00
Alexey Sedunov
a80fb6f20f
Copy: Report module accessibility conflicts
2017-05-18 14:22:39 +03:00
Alexander Udalov
bfb3b38ebc
Do not try to load Java classes from incorrect packages
...
#KT-11474 Fixed
2017-05-18 13:30:06 +03:00
Alexander Udalov
52237ce77f
Fix KClass.java intrinsic for stack values of type Unit
...
#KT-17692 Fixed
2017-05-18 13:29:04 +03:00
Alexander Udalov
9b85fed3c4
Fix typo in kotlinc-js help
...
File separator is '/', path separator is ':' or ';'
2017-05-18 13:29:03 +03:00
Alexander Udalov
18a211cb84
Add regression test for obsolete issue
...
#KT-17365
2017-05-18 13:29:02 +03:00
Denis Zharkov
49453ca705
Avoid dependency on coroutine-related public API changes
...
These changes has been introduced in c3a032ea0b
to support new scheme for named functions
At the same time they can be avoided by generating some additional
code/accessors in the anonymous classes for coroutine state
Now we cannot simply remove introduced API because of bootstrap problems
#KT-17898 Fixed
2017-05-18 12:42:12 +03:00
Denis Zharkov
06b598e595
Minor. Rename CoroutineCodegenForLambda.kt -> CoroutineCodegen.kt
2017-05-18 12:42:12 +03:00
Dmitry Petrov
c1ef0bfcdb
Report deprecation on usage of type alias expanded to a deprecated class
...
#KT-15243 Fixed
2017-05-18 10:56:02 +03:00
Dmitry Petrov
a2db4dc0d5
Fix incremental compilation problems related to type alias constructors
...
1. Determine source element for descriptors with NO_SOURCE recursively.
2. Always provide type abbreviation for type alias constructor
return type.
#KT-15495 Fixed
2017-05-18 10:55:16 +03:00
Ilya Gorbunov
2500a182e5
Refactor: use sam-like constructor for comparators
2017-05-17 19:34:44 +03:00
Ilya Gorbunov
ddf6599b38
Do not use spread-operator when it causes excessive array copying
2017-05-17 19:34:44 +03:00
baratynskiy
1eb1735ac9
Return from compile() function immediately if javaFiles collection is empty
2017-05-17 17:49:53 +03:00
baratynskiy
eb85e9f5f3
Introduce isFromSourceCodeInScope function
...
See `VirtualFileBoundJavaClass` interface
2017-05-17 17:49:33 +03:00
baratynskiy
91412b0ee9
Add tools.jar for JPS plugin
2017-05-17 17:48:59 +03:00
baratynskiy
71ba8e3ad0
Add tools.jar for command line compiler if -Xuse-javac is specified
2017-05-17 17:48:53 +03:00
baratynskiy
09e4ea55c7
kotlin-maven-plugin: add tools.jar dependency if -Xuse-javac is specified
2017-05-17 17:48:47 +03:00
baratynskiy
5eea3b6569
Introduce experimental -Xuse-javac compilation mode
...
In this mode, javac AST and Symbol files are used during
Kotlin compilation instead of PSI / binary stuff.
Later, they are reused for Java file compilation.
javac in this mode is integrated into kotlinc.
2017-05-17 17:48:17 +03:00
baratynskiy
c9a04fe1e2
Extract VirtualFileBoundJavaClass interface
2017-05-17 17:42:13 +03:00
baratynskiy
a815125281
Use JDK 8 in AbstractCompileAgainstKotlin test
2017-05-17 17:42:12 +03:00
baratynskiy
65aac7ae13
Extract AbstractJavaResolverCache
2017-05-17 17:42:10 +03:00
baratynskiy
f576f0b4a0
Extract AbstractJavaClassFinder
2017-05-17 17:42:09 +03:00
baratynskiy
fe9a2b30fd
JavaClassFinderImpl: J2K
2017-05-17 17:42:08 +03:00
baratynskiy
7af5dc7d03
JavaClassFinderImpl: java -> kt
2017-05-17 17:42:07 +03:00
baratynskiy
5c01b6fa20
AbstractCompileJavaAgainstKotlinTest: J2K
2017-05-17 17:42:05 +03:00
baratynskiy
be41364fdd
AbstractCompileJavaAgainstKotlinTest: java -> kt
2017-05-17 17:42:04 +03:00
Denis Zharkov
63c5d85cf4
Optimize memory footprint for generated protobuf code
...
The problem was that an overload of CodedOutputStream.newInstance
without size uses 4000 as a default value, thus allocating
a 4k-sized byte array.
At the same time the array remained effectively unused
in the most cases since it only used for storing data
for unknown fields.
Because such arrays are being created for each read of
protobuf message, during compilation of IntelliJ project
it was producing 25% of redundant memory traffic.
Of course these arrays were all in the young gen, but still
they have some effect on GC
2017-05-17 14:34:11 +03:00
Denis Zharkov
692840860e
Use allScope when resolving classifiers of binary classes
...
Otherwise it might lead to the problems when reading class files
from the source scope (e.g. a groovy file or an already compiled java file)
Note that it may be reproduced only with Maven because in JPS
and Gradle we reading source java files even when they're shouldn't be
recompiled, while in Maven we read class files in the case
#KT-17897 Fixed
2017-05-17 14:33:23 +03:00
Mikhael Bogdanov
d9dc2bd443
Minor. Fix review remarks
2017-05-17 10:20:04 +02:00
Mikhael Bogdanov
fd561c6cb9
Support default bound callable reference inlining
...
#KT-6884 Fixed
2017-05-17 10:20:03 +02:00
Mikhael Bogdanov
8a083a41d5
Clean code after transformation
2017-05-17 10:20:02 +02:00
Mikhael Bogdanov
eca359f176
Convert RegeneratedLambdaFieldRemapper to Kotlin
2017-05-17 10:20:01 +02:00
Mikhael Bogdanov
fe4668c315
Rename RegeneratedLambdaFieldRemapper.java to RegeneratedLambdaFieldRemapper.kt
2017-05-17 10:20:01 +02:00
Mikhael Bogdanov
77af888b6f
Code clean after convertion
2017-05-17 10:20:00 +02:00
Mikhael Bogdanov
5b947ac27e
Convert FieldRemapper to Kotlin
2017-05-17 10:19:59 +02:00
Mikhael Bogdanov
f795f2777c
Rename FieldRemapper.java to FieldRemapper.kt
2017-05-17 10:19:58 +02:00
Mikhael Bogdanov
e86e128c8a
Code clean after convertion
2017-05-17 10:19:58 +02:00
Mikhael Bogdanov
fcd76e6dec
Convert InlinedLambdaRemapper to Kotlin
2017-05-17 10:19:57 +02:00
Mikhael Bogdanov
d1fdfd484b
Rename InlinedLambdaRemapper.java to InlinedLambdaRemapper.kt
2017-05-17 10:19:56 +02:00
Mikhael Bogdanov
05d2aa700b
Support default property reference inlining
2017-05-17 10:19:55 +02:00
Mikhael Bogdanov
a96fada230
Switch tests for default lambda inlining on language level 1.2
2017-05-17 10:19:55 +02:00
Mikhael Bogdanov
0ac23c789e
Add diagnostics for default lambda inlining
2017-05-17 10:19:54 +02:00
Mikhael Bogdanov
81c2e1dd8c
Code clean after convertion
2017-05-17 10:19:53 +02:00
Mikhael Bogdanov
6373c3115a
Convert LocalVarRemapper to Kotlin
2017-05-17 10:19:52 +02:00
Mikhael Bogdanov
c6189076cc
Rename LocalVarRemapper.java to LocalVarRemapper.kt
2017-05-17 10:19:51 +02:00
Mikhael Bogdanov
6730fa2bbf
Support default inline lambda reification
2017-05-17 10:19:51 +02:00
Mikhael Bogdanov
9e8495dc3d
Clean code
2017-05-17 10:19:50 +02:00
Mikhael Bogdanov
45bfb2075d
Move reifiedTypeInliner to root context
2017-05-17 10:19:49 +02:00
Mikhael Bogdanov
da13ea4a8a
Move all InliningContext's to one place
2017-05-17 10:19:48 +02:00
Mikhael Bogdanov
9fdd4c647a
Clean code. Add LambdaInfo to InliningContext
2017-05-17 10:19:48 +02:00
Mikhael Bogdanov
9dae183e3a
Convert RootInliningContext.java to Kotlin
2017-05-17 10:19:47 +02:00
Mikhael Bogdanov
8b2164e2b8
Code clean after transformation
2017-05-17 10:19:46 +02:00
Mikhael Bogdanov
fcbd27fdc4
Convert InliningContext.java to Kotlin
2017-05-17 10:19:45 +02:00
Mikhael Bogdanov
04cf5d49d6
Rename InliningContext.java to InliningContext.kt
2017-05-17 10:19:45 +02:00
Mikhael Bogdanov
309051bd21
Obtain reification marker on default lambda extraction.
...
Add reification tests.
2017-05-17 10:19:44 +02:00
Mikhael Bogdanov
47c5e64ba5
Sort smap data by output file name
2017-05-17 10:19:43 +02:00
Mikhael Bogdanov
3e50203283
Add source mapping tests for default lambda inlining
2017-05-17 10:19:42 +02:00
Pavel V. Talanov
21b32b9de5
IDE Performance: skip resolver construction for non-relevant modules
...
Querying non-existent packages does not trigger module resolver computation
2017-05-16 22:15:07 +03:00
Pavel V. Talanov
55721e4f16
Test not creating resolvers for modules that have no relevant packages
2017-05-16 22:15:06 +03:00
Pavel V. Talanov
77e611b2e7
Minor: refactor PerModulePackageCacheService
2017-05-16 22:15:05 +03:00
Pavel V. Talanov
f750d08350
Light classes: test extending Number and CharSequence
2017-05-16 22:01:06 +03:00
Pavel V. Talanov
1c5e7c4726
Make sure java completion doesn't suggest classes from builtIns
...
Fix an undesirable sideeffect of previous changes
2017-05-16 22:01:05 +03:00
Pavel V. Talanov
798c80ed07
Use wrappers around java.util.* to emulate kotlin.collection.* behaviour
...
Backend: If kotlin class extends kotlin.collection.List
write it as it's super interface (light class mode only)
IDE: Provide wrapper classes to java resolve
that try to emulate backend behaviour
For example if kotlin class implements kotlin.collections.Map,
we provide a superinterface that has abstract 'getEntries' method
and 'entrySet' method that is considered default.
In reality all those methods are generated in the class itself.
In IDE supporting this case without hacks is not feasible performance-wise
since kotlin.collection.* may not be an immediate supertype and we need
to compute all supertypes just to calculate own methods of the class
2017-05-16 22:01:03 +03:00
Pavel V. Talanov
c56f74cc81
Do not generate bridge and stub methods in light class mode
2017-05-16 22:01:02 +03:00
Pavel V. Talanov
4bdfb8c646
Jvm backend: specify declaration origin of generated methods
...
Allow to distinguish collection stub methods and augmented kotlin api methods
2017-05-16 22:01:01 +03:00
Pavel V. Talanov
eb3c20d630
Refactor constructing KOTLIN_MARKER_INTERFACES map
2017-05-16 22:01:00 +03:00
Pavel V. Talanov
1a04960ff0
J2K class map: expose classes having mutable/readonly kotlin equivalents
...
Refactor JavaToKotlinClassMap a little bit
2017-05-16 22:00:59 +03:00
Pavel V. Talanov
40561dabed
J2K JavaToKotlinClassMap
2017-05-16 22:00:58 +03:00
Pavel V. Talanov
6701eb70fb
Light classes, minor: introduce cannotModify() utility
2017-05-16 22:00:57 +03:00
Mikhail Glukhikh
51af18608f
AbstractLocalInspectionTest: add LANGUAGE_VERSION support
...
Related to KT-17164
2017-05-16 20:44:12 +03:00
Mikhail Glukhikh
9990550429
Introduce inspection "replace arrayOf with literal" #KT-17164 Fixed
2017-05-16 20:44:11 +03:00
Zalim Bashorov
fb9d88315a
Don't print unnecessary empty line separators when generate tests
2017-05-16 19:42:47 +03:00
Gaetan Zoritchak
c00918c9f8
KT-17853: Kotlin.js switched parameters of Math.atan2
...
https://youtrack.jetbrains.com/issue/KT-17853
The current exposition of the JavaScript [Math object] switched the parameters names.
The correct version is `atan2(y,x)`.
2017-05-16 17:41:43 +02:00
Sergey Igushkin
74288ff8ae
Fix main and test compilation tasks having different module name in
...
free compiler args.
2017-05-16 17:35:45 +03:00
Dmitry Petrov
899ad7bb53
Generate for-in-indices as a precondition loop
...
Precondition loops are better optimized by HotSpot
(and, quite likely, by ART).
Also, we generate more compact bytecode that way.
KT-17903 Generate 'for-in-indices' as a precondition loop
2017-05-16 17:28:43 +03:00
Dmitry Petrov
793fb65666
Introduce AbstractForInExclusiveRangeLoopGenerator
2017-05-16 17:28:43 +03:00
Dmitry Petrov
8903504334
Update test for incremental compilation after new DCE
...
Previous test had an inline setter that didn't produce any effect,
thus, corresponding code was removed by new DCE.
Make sure that changes made in the inline property are caught up by IC.
2017-05-16 17:28:43 +03:00
Dmitry Petrov
84e54124a2
More aggressive DCE should honor debugger invariants
...
- A LINENUMEBER node is "dead" if the corresponding instruction interval
contains at least one "dead" bytecode instruction
and no live bytecode instructions
- Observable local variable lifetimes should be taken into account
when determining if a NOP is required for debugger.
2017-05-16 17:28:43 +03:00
Dmitry Petrov
65799a5cb4
Fix debugger-related tests after dead code elimination improvements
2017-05-16 17:28:43 +03:00
Dmitry Petrov
fe7870a1cd
Minor: RedundantCoercionToUnit -> PopBackwardPropagation
...
It is actually more meaningful than just "coercion to unit elision":
it removes instructions without side effects with results that are
unused (popped from the stack).
2017-05-16 17:28:43 +03:00
Dmitry Petrov
1378b0cf05
Fix bytecode tests after new optimizations
...
- Turn some const conditions into non-const conditions
- Make sure inlined const values are used where required
(otherwise they are eliminated by POP backward propagation)
2017-05-16 17:28:43 +03:00
Dmitry Petrov
2051355d6a
Optimize constant conditions
...
Using basic constant propagation (only integer constants, no arithmetic
calculations), rewrite conditional jump instructions with constant
arguments.
This covers problem description in KT-17007.
Note that it also works transparently with inline functions.
Partial evaluation is required to cover more "advanced" cases.
As a side effect, this also covers KT-3098:
rewrite IF_ICMP<cmp_op>(x, 0) to IF<cmp0_op>(x).
2017-05-16 17:28:43 +03:00
Dmitry Petrov
495fba43c0
Fuse primitive equality with safe call to avoid boxing
...
In code like 'a?.b == 42', we can immediately generate equality
comparison result when receiver is null (false for '==', true for '!='),
since the primitive value is definitely non-null.
Otherwise unnecessary boxing/unboxing is generated to handle possibly
null result of 'a?.b'.
2017-05-16 17:28:43 +03:00
Dmitry Petrov
55498b7f63
Minor: move around some optimization-related classes
2017-05-16 17:28:43 +03:00
Dmitry Petrov
847f889a0a
Allow merging tracked values in ReferenceTrackingInterpreter subclasses
...
This is required for things like detupling.
2017-05-16 17:28:43 +03:00
Dmitry Petrov
b445e0a049
Drop old null check optimizer
2017-05-16 17:28:43 +03:00
Dmitry Petrov
689298b11f
CompositeMethodTransformer
2017-05-16 17:28:43 +03:00
Dmitry Petrov
0dbf383ce8
OptimizationMethodVisitor: convert to Kotlin
2017-05-16 17:28:43 +03:00
Dmitry Petrov
a3a60db926
OptimizationMethodVisitor: .java -> .kt
2017-05-16 17:28:43 +03:00
Mikhail Glukhikh
d185adfedd
Fix UAST test
2017-05-16 16:43:29 +03:00
Dmitry Neverov
bf4e69e17f
Make semicolon in loop with empty body not redundant
...
So #KT-12805 Fixed
2017-05-16 16:43:28 +03:00
fitermay
e30b9758f4
Introduce action to add missing when branches on sealed class
...
Made via diagnostics NON_EXHAUSTIVE_WHEN_FOR_SEALED_CLASS
with INFO severity and quick-fix
So #KT-17580 Fixed
2017-05-16 16:43:27 +03:00
Alexey Sedunov
1072495001
Copy: Support top-level declarations
2017-05-16 13:10:41 +03:00
Alexey Sedunov
4c1c1a989a
Copy: Support multiple classes in the same file
2017-05-16 13:10:40 +03:00
Alexey Sedunov
92446df14a
Copy: Support class copying
...
#KT-8180 Fixed
#KT-9054 Fixed
2017-05-16 13:10:39 +03:00
Alexey Sedunov
405a28648f
J2K: KtLabeledExpression
2017-05-16 13:10:38 +03:00
Alexey Sedunov
32c90c67c7
J2K: KtLabeledExpression (rename to .kt)
2017-05-16 13:10:37 +03:00
Alexey Sedunov
f2bb6e4dac
Rename: Support import aliases
...
#KT-4379 Fixed
2017-05-16 13:10:36 +03:00
Alexey Sedunov
5d87276cff
PSI: Introduce KtImportAlias element
2017-05-16 13:10:35 +03:00
Alexey Sedunov
3c94184de9
Rename: Support labeled expressions
...
#KT-7107 Fixed
2017-05-16 13:10:34 +03:00
Dmitry Jemerov
63d32a524c
Fix exception on new file creation when no file template is defined
...
#KT-17906 Fixed
2017-05-16 11:59:38 +02:00
Dmitry Jemerov
f113a5ce99
Fix stdlib-jre7/8 configuration in new projects
...
#KT-17875 Fixed
#KT-17876 Fixed
2017-05-16 11:45:35 +02:00
Denis Zharkov
57cb556efd
Update rendered public API in coroutines package
...
- suspendCoroutine is not public anymore, since all of the
inline functions are generated as private
- `label` is public to allow update it from the named functions
2017-05-16 11:38:59 +03:00
Denis Zharkov
2c5baf6c08
Make companion object private to avoid its presence in public API
2017-05-16 11:38:59 +03:00
Denis Zharkov
d24d3a73d7
Support open suspend members and super-calls
...
The problem was that the resume call (from doResume) for open members
was based on common INVOKEVIRTUAL to the original function
that lead to the invocation of the override when it was expected
to be the overridden (after super-call being suspended)
The solution is to generate method bodies for open members into
the special $suspendImpl synthetic function that may be called
from the doResume implementation
#KT-17587 Fixed
2017-05-16 11:38:59 +03:00
Denis Zharkov
e75b6c8404
Perform fix-stack transformation before method analysis
...
Otherwise it might fail on an "invalid" bytecode
2017-05-16 11:38:59 +03:00
Denis Zharkov
dcaad530ce
Make code generation in method transformer more stable
...
Do not mix references to label nodes and common ASM labels
as it may lead to different LabelNode instance (not defaultLabel)
being inserted into insns list
It's been working before because there was no `resetLabels` call
on insnList, and label/label nodes were bound to each other
2017-05-16 11:38:59 +03:00
Denis Zharkov
4033786902
Minor. Drop always-false parameter in fix-stack utils
2017-05-16 11:38:59 +03:00
Denis Zharkov
d362fa6eea
Minor. Use trailing lambda syntax in FixStackMethodTransformer
2017-05-16 11:38:59 +03:00
Dmitry Jemerov
675305fef3
Don't highlight 'this' references as deprecated
...
#KT-17613 Fixed
2017-05-15 14:57:52 +02:00
Yan Zhulanow
5d31e00d27
Allopen, Gradle: Fix JPS build on Windows (KT-17830)
...
Appears that plugin classpath can contain not only `File.separatorChar`, but also '/' on Windows. Without the proper handling of this case, Gradle importer may import the plugin JAR made for Gradle with shaded 'com.intellij' and cause an exception during the JPS build.
2017-05-15 14:42:01 +03:00
Sergey Mashkov
fd0578b564
KT-10028 Support parallel builds in maven
...
Mark mojo's as thread safe as users confirmed that all related errors
seem to be fixed
2017-05-15 12:55:33 +03:00
Alexander Udalov
3f5b8b3f68
Refactor JvmDependenciesIndexImpl.search
...
- use nullable type "T?" instead of HandleResult consisting of the found
value and the "should continue" flag
- inline all local functions because they don't add any value now
2017-05-15 12:17:46 +03:00
Alexander Udalov
939f969f12
Support .jar archives in friend paths (for internal visibility)
2017-05-15 12:17:45 +03:00
Mikhail Zarechenskiy
ac8fbce249
Fix false "useless cast" when target type is flexible
...
#KT-17820 Fixed
2017-05-15 11:24:39 +03:00
Mikhail Zarechenskiy
a8f1e32dec
Refactoring: move utils related to casts to CastDiagnosticUtil
2017-05-15 11:24:37 +03:00
Mikhail Zarechenskiy
b323d2b24a
Refactoring: extract method to detect redundant is out
2017-05-15 11:24:36 +03:00
Dmitry Neverov
cd24adac32
Detect redundant 'is' check
...
#KT-14187 Fixed
2017-05-15 11:24:35 +03:00
Mikhail Glukhikh
768e0fa738
Add forgotten KotlinAbstractUElement.hashCode()
2017-05-12 22:27:58 +03:00
Nikolay Krasko
c5a8001aa4
Revert generated formatter tests
2017-05-12 20:16:22 +03:00
Simon Ogorodnik
a0a6ef4f2e
Use ModalityState.any() for J2K post processing
...
#KT-17870 fixed
2017-05-12 17:53:50 +03:00
Nikolay Krasko
861cac5b52
Better indent in multi-line strings (KT-17849)
...
Inspired by MultilineStringEnterHandler from https://github.com/JetBrains/intellij-scala
edb741f344/src/org/jetbrains/plugins/scala/editor/enterHandler/MultilineStringEnterHandler.scala
#KT-17849 Fixed
2017-05-12 17:34:05 +03:00
Nikolay Krasko
30639b0a5e
Allow injection in strings with interpolation (KT-6610)
...
#KT-6610 In Progress
2017-05-12 17:33:37 +03:00
Dmitry Jemerov
f53b9aa419
Improve diagnostics for EA-100849
...
KNPE: DeserializerForClassfileDecompilerKt.DeserializerForClassfileDecompiler
2017-05-12 12:34:54 +02:00
Dmitry Jemerov
db1f8c7541
EA-100074 - SOE: ExpressionsOfTypeProcessor.containsTypeOrDerivedInside
2017-05-12 12:33:46 +02:00
Dmitry Jemerov
ddcde3f688
EA-101095 NSEE: KotlinUsageToPsiElementProvider.getAppropriateParentFrom)
2017-05-12 12:33:45 +02:00
Dmitry Jemerov
4e58319d1b
Revert "Deprecated setting was used for import optimization on the fly. ( #1049 )"
...
This reverts commit 75d231cc37 .
The added API is available only in IDEA 2017.1.1, not in the original 2017.1 build.
2017-05-12 12:33:45 +02:00
Anton Bannykh
e098de5e33
JS: fix char boxing in elvis expressions (#KT-17700 fixed)
2017-05-11 21:31:38 +03:00
Mikhail Glukhikh
a1e00ed9f1
Don't suggest "if to ?." without else when used in expression position
2017-05-11 20:47:16 +03:00
Mikhail Glukhikh
326d850760
Use "if-then to" even for 'if (arg != null) arg' removing 'if'
2017-05-11 20:47:10 +03:00
Mikhail Glukhikh
977d8e1cd7
If to safe access: fix message when no dot calls are available
...
Now "Replace 'if' with safe cast" is suggested
2017-05-11 20:47:04 +03:00
Mikhail Glukhikh
a77390ccd6
Change both IfThenTo... inspections highlight level
...
Retain WEAK WARNING for null checks, one-liners,
and is checks without dot calls in main branch.
Set INFORMATION (no highlighting, just fix) for other cases.
Switch off both bound intentions.
So #KT-15076 Fixed
2017-05-11 20:46:51 +03:00
Mikhail Glukhikh
2d9a5afb15
Refactoring: convert problemHighlightType to function with parameter
2017-05-11 20:46:37 +03:00
Mikhail Glukhikh
d9a33af61e
Reduce range of IfThenTo... inspections to just 'if'
2017-05-11 20:46:31 +03:00
Mikhail Glukhikh
781a45c747
Minor refactoring: IfThenToSelectData.clausesReplaceableByElvis
2017-05-11 20:46:24 +03:00
Mikhail Glukhikh
f3ee5ea45f
IfThenToDoubleBang: fix AWT from writeAction problem
2017-05-11 20:46:17 +03:00
Mikhail Glukhikh
66c5717adc
Refactoring of IfThen: ToDoubleBang / ToElvis / ToSafeAccess
...
Some common actions were extracted to IfThenUtils.kt
Use consistent logic in all three intentions
Also fixes potential PSI consistency problems in conversions dot->safe calls
2017-05-11 20:46:11 +03:00
Dmitry Neverov
fd6d1520c7
Convert 'if' with 'is' check to 'as?' with safe call #KT-17054 Fixed
2017-05-11 20:46:05 +03:00
Mikhail Glukhikh
0361ed8c68
Refactoring: SelfTargetingIntention / IntentionBasedInspection
...
Remove complex logic which disables intention when bound inspection on
Add much simpler logic in SelfTargetingIntention.equals
2017-05-11 20:45:59 +03:00
Alexey Andreev
1900b20e6e
Implement inlining of Array constructor in JS BE
...
See KT-15456
2017-05-11 17:10:45 +03:00
Mikhail Glukhikh
6523f237a6
Test fix (I hope so) from parameter info group
2017-05-11 16:38:51 +03:00
Mikhael Bogdanov
97bcf9f538
Add default lambda inlining prototype
2017-05-11 11:06:47 +02:00
Mikhael Bogdanov
b7af4ac882
Add SKIP_INLINE_CHECK_IN directive to inline test framework
2017-05-11 11:06:47 +02:00
Mikhael Bogdanov
daf6768181
Add proper DefaultLambda initialization,
...
patch lambda related instructions in default method
Remove default lambda linked instructions from default method
2017-05-11 11:06:46 +02:00
Mikhael Bogdanov
ec066a06d8
Clean code after convertion to Kotlin
2017-05-11 11:06:45 +02:00
Mikhael Bogdanov
1e9ffe42b1
Convert MethodInliner.java to Kotlin
2017-05-11 11:06:44 +02:00
Mikhael Bogdanov
e34f934aba
Rename MethodInliner.java to MethodInliner.kt
2017-05-11 11:06:44 +02:00
Mikhael Bogdanov
f915192827
Minor. Clean and refactoring after convertion
2017-05-11 11:06:43 +02:00
Mikhael Bogdanov
3fe152aad3
Convert AnonymousObjectTransformer.java to Kotlin
2017-05-11 11:06:42 +02:00
Mikhael Bogdanov
36c43b630e
Rename AnonymousObjectTransformer.java to AnonymousObjectTransformer.kt
2017-05-11 11:06:41 +02:00
Mikhael Bogdanov
980414674a
Add default lambda parsing
2017-05-11 11:06:40 +02:00
Mikhael Bogdanov
70e550e984
Introduce ExpressionLambda and DefaultLambda abstractions,
...
extract common part to LambdaInfo
2017-05-11 11:06:40 +02:00
Mikhael Bogdanov
9c51392aff
Convert LambdaInfo.java to Kotlin
2017-05-11 11:06:39 +02:00
Mikhael Bogdanov
f8f4fc5de1
Rename LambdaInfo.java to LambdaInfo.kt
2017-05-11 11:06:38 +02:00
Sergey Igushkin
7097246866
Unify build output with Maven
...
* Added manifest properties to `gradle-tools` projects.
* Add `-kotlin-module` to free compiler args to make the module names
match the ones in Maven build
* Fixed path to the Groovy sources in `kotlin-gradle-plugin/pom.xml`
2017-05-10 20:15:08 +03:00
Sergey Igushkin
7030b89b7c
Fix rootDir mis-use in commonConfiguration.gradle:
...
replace with `kotlin_root`, that is set in the projects
2017-05-10 20:03:26 +03:00
Sergey Igushkin
c3ae37c6ce
Gradle build fixes & improvements:
...
* Fix Java not compiled in kotlin-gradle-plugin Kotlin source set
* Fix the integration tests running under Java 6
* Fix kotlin-gradle-subplugin-example not being installed -- needed
for a test
* Fix Android tests being always excluded
* Move versions out of `build.gradle` (x2) to a common `versions.gradle`
* Move JDK, dist and bootstrap to `commonConfiguration.gradle`
* Build `kotlin-gradle-plugin` with JDK_18
2017-05-10 20:03:26 +03:00
Sergey Igushkin
8e65b5f2c8
Gradle plugins migration to Gradle build
...
* Add gradle-tools subproject
* Add Gradle buildscripts to the related projects
* Remove the projects from the libraries pom.xml
* Move AndroidGradleWrapper.groovy to separate source root
* Changed artifact dependencies to project dependencies where needed
* Extract common configuration into commonConfiguration.gradle
* (convert functions to closures to be able to call them)
* Refactor DSL usage
* Replace `project.properties` with `findProperty`
* Unify Gradle wrapper between `libraries` and `gradle-tools`
(as a temporary solution, just made the wrapper files the same)
2017-05-10 20:03:26 +03:00
Anton Bannykh
503891846f
Updated some tests to expect the new '-Xfoo=bar' advanced options syntax
2017-05-10 19:32:52 +03:00
Mikhail Glukhikh
f0543439f4
Use InfixCallToOrdinaryIntention directly for INFIX_MODIFIER_REQUIRED
...
So #KT-10211 Fixed
2017-05-10 17:43:46 +03:00
Mikhail Glukhikh
967c01f0ba
Override 'equals' in SelfTargetingIntention
...
This prevents suggestion of duplicating intentions
2017-05-10 17:43:45 +03:00
Kirill Rakhman
a8b2d3b4e8
Add inspection to detect copy() calls in a data class without named arguments
...
So #KT-17660 Fixed
2017-05-10 17:43:44 +03:00
Alexey Andreev
2c10f253c5
Fix node.js tests on Windows agents in Teamcity
2017-05-10 16:46:49 +03:00
Dmitry Neverov
3002639fd7
Take control flow into account for checking fall-through switch branches
...
#KT-16133 Fixed
2017-05-10 15:57:21 +03:00
Dmitry Neverov
31478f8efa
Detect escaped backslashes
...
#KT-15761 Fixed
2017-05-10 15:51:18 +03:00
Dmitry Jemerov
9c4f897d31
Index properties defined in primary constructor
...
#KT-15029 Fixed
2017-05-10 14:27:28 +02:00
Dmitry Jemerov
ec53a6dbe7
Return non-default lexer state for unmatched backtick
...
When a document is changed, the editor highlighter restarts the lexer
at the last point where it was in the default state. Previously, if
a matching backtick was deleted and then reinserted, the lexer was
resumed just before the reinsertion point, and as the result the two
backticks were parsed not as two delimiters of a single token but as
two BAD_CHARACTER tokens. With this change, all tokens after the
unmatched backtick will be in a non-default state, so the lexer will
restart at the first backtick and will correctly see the two backticks
as a single token.
#KT-9091 Fixed
2017-05-10 14:27:27 +02:00
Dmitry Jemerov
66877c138d
Correctly handle editor selection in "Show expression type"
...
To avoid showing a large list, the previous logic returned only the
element directly at caret and other elements with the same start
offset. When selection is present, the platform logic looks only at
elements which have a larger range than the selection, so our elements
could be completely filtered out. Now we look at the selection
ourselves and adjust the returned elements accordingly.
#KT-16423 Fixed
2017-05-10 14:27:26 +02:00
Dmitry Jemerov
c3c0bcb1be
Better caret position for new Kotlin file/class
...
#KT-15255 Fixed
2017-05-10 14:27:26 +02:00
Dmitry Jemerov
d1893cfa5f
Don't highlight entire complex callee expression as call
...
If an expression returns something that has invoke() defined on it,
this entire expression can act as a callee. If we highlight it, this
will suppress more useful highlighting such as string literals.
#KT-16159 Fixed
2017-05-10 14:27:25 +02:00
Dmitry Jemerov
5d9307024a
Hide Kotlin live template macros from non-Kotlin contexts
...
#KT-16635 Fixed
2017-05-10 14:27:24 +02:00
Dmitry Jemerov
c778e0454d
Show line markers for suspending iteration
...
#KT-16803 Fixed
2017-05-10 14:27:23 +02:00
Dmitry Jemerov
baa43a2a55
Show line markers for sealed classes
...
#KT-16755 Fixed
2017-05-10 14:27:22 +02:00
Dmitry Jemerov
f64aaed205
Allow updating of fold region for imports when it's collapsed
...
#KT-12856 Fixed
2017-05-10 14:26:15 +02:00
Dmitry Jemerov
66ce2a6998
Render anonymous objects in Show Expression Type
...
#KT-17304 Fixed
2017-05-10 14:25:03 +02:00
Dmitry Jemerov
06a1d362d1
Pass Editor to StructureViewModel (required for autoscroll from source)
...
#KT-17439 Fixed
2017-05-10 14:25:02 +02:00
Dmitry Jemerov
b33c544fdf
Enable rainbow highlighting for destructuring declaration entries
...
#KT-17652 Fixed
2017-05-10 14:25:02 +02:00
Mikhail Glukhikh
382bf9a500
ConvertReferenceToLambda status refactoring
...
Intention is not registered now; inspection is enabled by default now,
but has highlight level of "No highlighting"
2017-05-10 14:56:38 +03:00
Mikhail Glukhikh
759e6643c6
ConvertLambdaToReference refactoring
...
Intention is not registered now; inspection is enabled by default now,
but has highlight level of "No highlighting"
Inspection does not depend on text length now
So #KT-14335 Fixed
2017-05-10 14:56:37 +03:00
Mikhail Glukhikh
1d722e01f0
Get rid of local version of RemoveModifierFix
2017-05-10 14:56:36 +03:00
Mikhail Glukhikh
02345670b2
Get rid of local version of AddModifierFix
2017-05-10 14:56:35 +03:00
Mikhail Glukhikh
bb76783654
Minor (import removed)
2017-05-10 14:56:33 +03:00
Alexey Sedunov
f70bac019a
Change Signature: Fix TypeInfo comparison
...
#KT-13437 Fixed
2017-05-10 14:49:53 +03:00
Alexey Sedunov
8bbf8e185a
Move: Filter out usages with visibility error before refactoring
...
If declaration is already invisible before move,
no visibility conflict should be reported
#KT-17571 Fixed
2017-05-10 14:49:52 +03:00
Alexey Sedunov
0a5f9d8181
Move: Specify conflict containing declaration more precisely
...
Also do not render class fqname for member declarations
#KT-17547 Fixed
2017-05-10 14:49:51 +03:00
Mikhail Zarechenskiy
fba52359ac
Add tests for obsolete issues
...
#KT-13112 Obsolete
#KT-14249 Obsolete
2017-05-10 13:52:26 +03:00
Mikhail Zarechenskiy
38eff6966d
Lazy resolve: fix scope for primary constructor parameters
...
For classes on top level scope was getting for file, which may introduce resolution problems with generics
#KT-8829 Fixed
2017-05-10 13:52:21 +03:00
Kirill Rakhman
dbcf796e90
Add Smart Enter processor for object expessions ( #1079 )
...
Fixes #KT-17807
2017-05-10 11:49:08 +03:00
Dmitry Jemerov
4b811a3639
Fix tests
2017-05-09 11:50:31 +02:00
nd
e20e097a63
Stricter type checks in 'convert to range' intention ( #1073 )
...
#KT-17079 #KT-17762 Fixed
2017-05-09 10:31:32 +03:00
Nadia Humbert-Labeaumaz
e76f1acc0b
Remove "Move to class body" intention for annotation parameters ( #1076 )
...
#KT-17708 Fixed
2017-05-09 10:27:37 +03:00
Dmitry Jemerov
80e17cbe9c
Don't crash on non-jar files added to classpath
...
#KT-17698 Fixed
2017-05-09 09:18:07 +02:00
Yuli Fiterman
4393e2d518
KT-7848 -- unmerged changes ( #1075 )
...
* KT-7848 Initial implementation of literal copy/paste processor for Kotlin
* KT-7848: Tests
* KT-7848: fix issues caught in unit tests with recognizing invalid template entries
* KT-7848: check for KtFile
* KT-7848: fix capitalization for test data file names
* KT-7848: Initial changes according as per review
* KT-7848: TemplateTokenSequence tests
* KT-7848: fix off by one error caught in test
* KT-7848: Reformat with keep empty lines in code -> 0
2017-05-08 18:50:41 +03:00
Yuli Fiterman
99b1bb98dc
KT-7848: Literal copy/paste processor for Kotlin ( #1074 )
...
* KT-7848 Initial implementation of literal copy/paste processor for Kotlin
* KT-7847: Tests
* KT-7847: fix issues caught in unit tests with recognizing invalid template entries
* KT-7847: check for KtFile
* KT-7847: fix capitalization for test data file names
* KT-7847: Initial changes according as per review
2017-05-08 17:18:28 +03:00
Kirill Rakhman
8e00af5642
Add intention to convert top level val with object expression to object declaration ( #974 )
...
* Add intention to convert top level val with object expression to object
Fixes #KT-14137
* fix intention description
2017-05-08 16:35:03 +03:00
nd
93b5eec71e
Convert to secondary constructor is not applicable to data classes ( #1071 )
...
#KT-15942 Fixed
2017-05-08 16:24:37 +03:00
nd
c9f475b402
Detect redundant semicolon before empty import list ( #1072 )
...
#KT-16577 Fixed
2017-05-08 16:14:22 +03:00
xiexed
b8942c5f04
Readme for ultimate project ( #1070 )
2017-05-08 15:55:30 +03:00
Ilya Chernikov
71a04f8cfc
Fix script-related tests that aren't ready for roots changed optimizations
...
(cherry picked from commit ab52c55 )
2017-05-08 00:20:37 +02:00
Ilya Chernikov
ca331d2f55
Optimize scripting-related cache creation and update
...
reduce number of cases when changes are reported from script dependencies
provider, that causing rootsChanged event, in particular empty dependencies
are filtered out now
Should reduce IDEA startup delays.
2017-05-07 17:32:48 +02:00
Ilya Chernikov
07ad9aa08d
Add logging with time measurement to script dependencies caching and caches updating
2017-05-07 17:32:47 +02:00
Ilya Chernikov
3f9aec31bd
Optimize scripting-related files monitoring
...
filter vfs changes events to take only non-infrastructure files from actual
project
also drop unnecessary readAction during internal caches update
Should reduce IDEA startup delays.
2017-05-07 17:32:46 +02:00
Dmitry Jemerov
8337cd455f
Fix reporting exception problems on Kotlin UAST fields (KT-17714)
2017-05-06 08:18:08 +02:00
shiraji
56d712a02a
Introduce quick-fix adding label to 'return' in closures #KT-16851 Fixed
2017-05-05 23:27:10 +03:00
Ilya Gorbunov
2f7ab1c0c1
Inline some properties from kotlinManifest.properties that were used only once
2017-05-05 21:56:56 +03:00
Ilya Gorbunov
96c36fb317
Remove manifest.impl.value.kotlin.version and other unused properties from kotlinManifest.properties
2017-05-05 21:56:56 +03:00
Ilya Gorbunov
720e6ecdb6
kotlin.language.version property no longer used in maven build
2017-05-05 21:56:56 +03:00
Mikhail Zarechenskiy
3bfc17c2d4
Avoid redundant cache entries: move checks to the caller function
2017-05-05 21:30:39 +03:00
Mikhail Zarechenskiy
adb8e60615
Fix resolve of last destructuring declaration in block
...
Last declaration in block is resolved in DEPENDENT mode because it has
influence on return type and therefore fake call for destructuring declaration
wasn't completed (see `getBlockReturnedTypeWithWritableScope`)
Now we resolve fake call for destructuring declaration in INDEPENDENT
mode as it doesn't have effect on return type
#KT-15480 Fixed
2017-05-05 21:30:38 +03:00
Mikhail Zarechenskiy
7530a9426f
Warn about val reassignment via backing field
...
#KT-16681 In Progress
2017-05-05 21:30:37 +03:00
Mikhail Zarechenskiy
e821b25288
Resolve type alias SAM constructors in synthetic scope
2017-05-05 21:30:36 +03:00
Mikhail Zarechenskiy
7541a3754d
Move SAM constructors to synthetic scope
2017-05-05 21:30:35 +03:00
Mikhail Zarechenskiy
429f0e4f68
Adapt changes in IDE after moving SAM adapters to synthetic scope
...
The main change is that now to get static sam adapters one should do it using synthetic scopes and static scope of container
2017-05-05 21:30:10 +03:00
Mikhail Zarechenskiy
8e233162ed
Drop SamAdapterOverridabilityCondition as it became obsolete
...
There is no need in checking overridability of sam adapters as now we don't create fake synthesized methods for static sam adapters
2017-05-05 21:30:10 +03:00
Mikhail Zarechenskiy
95ede7fb67
Move SAM adapters from static scope to synthetic one
2017-05-05 21:30:10 +03:00
Alexey Tsvetkov
2ff28ebced
Merge sequent filter and map calls into one loop
...
ScopeTowerProcessors.kt contains a few code snippets
that look like `collectCandidates(...).filter { ... }.map { ... }`.
Filter argument is always side-effect free, so it is safe
to merge `filter` and `map` calls into one for-loop.
The change also makes sense, because modified functions are quite hot.
For example `NoExplicitReceiverScopeTowerProcessor.simpleProcess`
produces 11,392,768 ArrayList instances (~1.08% of all objects)
when compiling the compiler according to aprof at the moment of writing.
On my machine the change improves compilation speed of the compiler up to 5%.
2017-05-05 20:02:04 +03:00
Alexey Tsvetkov
e25060f8c9
Make closing artifact difference registry more robust
...
KT-16298
2017-05-05 18:42:33 +03:00
Alexey Tsvetkov
b504f1eb45
Add test for KT-16298
2017-05-05 18:42:29 +03:00
Jonathan Leitschuh
0ed4b7f58a
Avoid flushing cache removed by clean
...
#KT-16298 fixed
2017-05-05 18:42:24 +03:00
Ilya Gorbunov
180233b78e
binary-compatibility-validator: use project version to disambiguate artifacts
2017-05-05 18:01:02 +03:00
Ilya Gorbunov
ab70307cc0
Minor: refactor iterable tests
2017-05-05 18:01:02 +03:00
Ilya Gorbunov
2792dbf988
Import for buildSequence in generated code for sequences
2017-05-05 18:01:02 +03:00
Anton Bannykh
9bd562bf67
Prevent 'obsolete form' warnings by passing advanced (-X) arguments using the '-Xfoo=bar' syntax
2017-05-05 16:05:44 +03:00
Denis Zharkov
6e114a90dc
Adjust debugger to the new suspend function strategy
...
Now it's impossible to determine by descriptor if there is
a state machine for function, but at the same time
it doesn't really matter here since there is no LINENUMBERs
in doResume of continuation implementations for named suspend
functions
#KT-17585 Fixed
#KT-16603 Fixed
2017-05-05 14:14:38 +03:00
Denis Zharkov
7c6a15ddfe
Treat inline suspend functions as inline-only
...
Now their bodies don't have real state machines, thus they cannot
be called correctly from Java
#KT-17585 In progress
#KT-16603 In progress
2017-05-05 14:14:38 +03:00
Denis Zharkov
ba200f5de1
Minor. Remove redundant kind of coroutine markers
...
It was necessary while the additional code was being inserted
outside of transformer, but now we can just remember where
the actual body starts
2017-05-05 14:14:37 +03:00
Denis Zharkov
b3f66c7641
Remove $ character from fake continuation parameter
...
The reason is that when it gets captured into the field
having name $$continuation inliner fails with an exception
as it skips fields starting with '$$'
At the same time it doesn't really matter how to call
that parameter because it's only visible in Java
#KT-17585 In Progress
#KT-16603 In Progress
2017-05-05 14:14:37 +03:00
Denis Zharkov
5b5f612a7c
Support new strategy for suspend inline functions
...
The main idea is to leave all the inline functions as is, without
state machines (but keeping suspend-calls markers) and
determine whether we need a state machine from the bytecode
after inlining into a non-inline function
#KT-17585 In Progress
#KT-16603 In Progress
#KT-16448 Fixed
2017-05-05 14:14:00 +03:00
Denis Zharkov
5d0aeb4ef6
Minor. Drop unused BindingContext slice
2017-05-05 14:01:50 +03:00
Denis Zharkov
0b99c5c54e
Remove fix for tail-placed branch operations in suspend functions
...
It has been introduced in 2286027bed
and should've help to avoid verify error
Now it became both impossible and unnecessary:
- It's impossible now since we can't determine in codegen
if we'll needa state machine
(it depends from inline functions' contents)
- It's unnecessary since we'll introduce the state machines for cases
described in the 2286027bed tests
NB: There's still a problem that now we work a bit suboptimally
because actually these samples can be generated without state
machines
2017-05-05 14:01:50 +03:00
Denis Zharkov
7803c9c0ba
Minor. Convert loop to 'removeIf' call
2017-05-05 14:01:50 +03:00
Denis Zharkov
00526f5934
Add optional JVM declarations rendering for box tests
...
This option will be used later to check if state machine has been
generated for suspend function
2017-05-05 14:01:50 +03:00
Denis Zharkov
d92c403f9e
Move helpers for coroutine tests in separate package
...
It will help to skip their content when rendering bytecode listing
for box tests
2017-05-05 14:01:50 +03:00
Denis Zharkov
035fcc2424
Minor. Rewrite part in CoroutineTransformer with 'run'
...
It helps to avoid unnecessary val customCoroutineStartMarker
in the scope of performTransformations
2017-05-05 14:01:50 +03:00
Denis Zharkov
c3a032ea0b
Generate state machine for named functions in their bodies
...
Inline functions aren't supported yet in the change
#KT-17585 In Progress
2017-05-05 14:01:50 +03:00
Denis Zharkov
59d89a1ae3
Generate private suspend function in JVM as package-private
...
It helps to simplify implementation of generating state machines
into the named functions' bodies but of course has some flaws:
1. They may be called from the same package in Java
2. It may lead to problems when declaring clashing descriptor
in an inheritor
This change must be reverted at some moment, or these flaws
should be fixed in some other way
#KT-17585 In Progress
#KT-17584 Open
2017-05-05 14:01:50 +03:00
Denis Zharkov
bb7a188f87
Minor. Weaken assertion in refined int type analysis
...
It's necessary because ASM remebers exact types obtained from
value parameters, and in the further commits we're going
to place code of suspend functions in their bodies, and there
we get already refined type for int-like slots
2017-05-05 14:01:50 +03:00
Denis Zharkov
0cd80d8b0e
Get rid of class builder factory for coroutines
...
Initially it was a sort of hack: introducing another
interception class builder factory that will process all functions.
To differentiate suspend functions from the common ones
the fake annotation class has been used.
The problem is that now we should inject the different
class builder into the CoroutineTransformerMethodVisitor:
we need class builder for anonymous class representing state
for named function while currently it will be the one for the class
where the named function is defined
2017-05-05 14:01:50 +03:00
Mikhail Glukhikh
7271ca0b72
KT-13997 related: fix of JS relevant test
2017-05-05 11:17:52 +03:00
Kirill Rakhman
cd07aea5e3
Add quickfix for adding 'lateinit'
...
Fixes #KT-17650
2017-05-05 11:09:07 +03:00
Mikhail Glukhikh
5de55e80ce
KT-13997 related: fix of J2K relevant test
2017-05-05 10:55:26 +03:00
Dmitry Petrov
e902cff937
Add 'getTypeArgumentOrDefault' extension for IrMemberAccessExpression
2017-05-05 09:59:30 +03:00
Dmitry Petrov
f5fde2c24f
Dump absent type arguments
2017-05-05 09:59:30 +03:00
Dmitry Petrov
ddb2b7508b
Generate property initializer within property scope
2017-05-05 09:59:30 +03:00
Dmitry Petrov
8e84862afa
Generate do-while condition within loop body scope
2017-05-05 09:59:30 +03:00
Dmitry Petrov
fdb4de355c
Use original descriptors to create symbols for callable references
2017-05-05 09:59:30 +03:00
Dmitry Petrov
c2601c947f
Postpone call arguments generation in compound assignment expressions
...
Otherwise RHS is generated twice, causing ISE in symbol binding
2017-05-05 09:59:30 +03:00
Alexey Tsvetkov
6b956b3746
Fix exception "Unknown CompilerMessageSeverity: OUTPUT"
...
`CompilerMessageSeverity.OUTPUT` was removed from the enum set
`CompilerMessageSeverity.VERBOSE` in the commit d8d3bafbe9 ,
so `GradleMessageCollector` started to throw the exception.
#KT-17711 fixed
2017-05-04 23:03:16 +03:00
Anton Bannykh
2e9a59819a
JS: support internal visibility from friend modules
...
Friend modules should be provided using the -Xfriend-modules flag
in the same format as -libraries. No manual configuration required for
JPS, Gradle and Maven plugins.
Friend modules could be switched off using the -Xfriend-modules-disabled
flag. Doing that will
* prevent internal declarations from being exported,
* values provided by -Xfriend-modules ignored,
* raise a compilation error on attemps to use internal declarations from other modules
Fixes #KT-15135 and #KT-16568.
2017-05-04 21:44:17 +03:00
Yan Zhulanow
7bbf9861d0
Kapt3: Simplify handling of annotation processing exceptions
...
The previous handling method was unreliable ("Don't know how to render diagnostic of type KAPT3_PROCESSING_ERROR", exceptions being lost).
2017-05-04 19:59:30 +03:00
Alexey Tsvetkov
f8b785fc31
Test that Kapt3 IC removes stubs for dirty source files
2017-05-04 19:59:29 +03:00
Alexey Tsvetkov
5c041cb182
Kapt3: Remove source stubs together with the class files when .kt file is marked dirty (IC)
2017-05-04 19:59:29 +03:00
Yan Zhulanow
19c00abc62
Kapt3: Avoid annotation processing execution when possible (KT-17620)
...
Do not execute annotation processing if no stubs (and Java files) were changed since the previous execution.
2017-05-04 19:59:16 +03:00
Yan Zhulanow
c8d7c339cf
Kapt3: Modify kapt incremental tests in order to support kapt3
2017-05-04 19:00:43 +03:00
Yan Zhulanow
c18bf5088d
Kapt3: Support incremental compilation of Java stubs (KT-15151)
2017-05-04 19:00:42 +03:00
Yan Zhulanow
3bf534b392
Kapt3: Support apt modes
...
Allow to run kapt in "annotation processing only" and "stub generation only" modes in order to support incremental compilation in Gradle.
Unfortunately, annotation processing can't be done incrementally cause it uses all module files, but the stub generation can be done incrementally.
2017-05-04 19:00:41 +03:00
Yan Zhulanow
7a692b56f4
Add kapt3 module to non-compiler-tests
2017-05-04 18:46:44 +03:00
Yan Zhulanow
99a05f5d61
Kapt3: Convert reference to KMutableMap.Entry correctly (KT-17567)
2017-05-04 18:46:43 +03:00
Yan Zhulanow
254e8156ac
NoArg: Initialize properties in noarg constructor (KT-16692)
2017-05-04 18:46:42 +03:00
Yan Zhulanow
eba5baa7ff
Kapt3: Add Maven integration test
2017-05-04 18:46:41 +03:00
Anton Bannykh
7503376731
JS: unmute box/test/coroutinessuspendFunctionAsCoroutine/inlineTwoReceivers.kt
2017-05-04 16:47:00 +03:00
qx
a5dea7ef1c
Fixes after review: used getParentOfType
2017-05-04 16:11:18 +03:00
qx
079380c70d
Fixes after review: renamed to isMemberExtensionDeclaration
2017-05-04 16:11:18 +03:00
qx
0ba4a82ca6
Fixes after review: ConvertMemberToExtensionIntention.convert moved to companion object
2017-05-04 16:11:18 +03:00
qx
f163788821
Fixes after review: got rid of unused parameters
2017-05-04 16:11:17 +03:00
qx
f6fe1c50c2
Used ConvertMemberToExtensionIntention in MigrateExternalExtensionFix instead of manually creating extension method
2017-05-04 16:11:17 +03:00
qx
8ba61ce7aa
Fixed KT-15270 Quickfix to migrate from @native***
2017-05-04 16:11:17 +03:00
qx
11bc0d87b8
Fixes to AbstractQuickFixTest (full path to file and file separator)
...
The full path to file in getTestDataPath is necessary to show file diff link in exception when the test fails.
The File.separatorChar fixes tests on Windows machines.
2017-05-04 16:11:16 +03:00
qx
71de20b9e6
Retain javascript name from @native annotation
...
As the first part of KT-15257 JS: quickfix to migrate from @native to external
2017-05-04 16:11:16 +03:00
qx
c364e79557
Implemented @native-* annotation migration quickfix for extension functions
...
As the first part of KT-15270 Quickfix to migrate from @native***
2017-05-04 16:11:16 +03:00
Anton Bannykh
a71e5abb45
Update KotlinVersion.CURRENT to 1.1.4
2017-05-04 15:24:40 +03:00
Mikhail Glukhikh
1273166ed0
Do not report redundant else for enum / sealed from another module
...
Related to KT-17497
2017-05-04 14:17:43 +03:00
Mikhail Glukhikh
35754a98e7
KT-17497 related: introduce fix for REDUNDANT_ELSE_IN_WHEN
2017-05-04 14:17:42 +03:00
Mikhail Glukhikh
14886827a2
Introduce warning REDUNDANT_ELSE_IN_WHEN #KT-17497 Fixed
2017-05-04 14:17:41 +03:00
Mikhail Glukhikh
e53c548ead
Consider property external if all accessors are external #KT-13997 Fixed
2017-05-04 14:17:40 +03:00
Mikhail Glukhikh
b8af0f5922
J2K: move isEffectivelyExternal to kt-file, parameter -> receiver
2017-05-04 14:17:38 +03:00
Dmitry Petrov
d5feb2d6f4
Deep copy fixes + sanitize file names for module dumps
2017-05-04 13:51:17 +03:00
Dmitry Petrov
506941e7e0
Optimize range operations for 'until' extension from stdlib (KT-9900)
...
NB: for-in-until loop is generated as precondition loop, because the
corresponding range is right-exclusive (and thus we have no problems
with integer overflows).
2017-05-04 10:09:42 +03:00
Dmitry Petrov
b83620fdb9
Minor: DeepCopyIrTree: make some utility methods 'protected'
2017-05-04 09:33:03 +03:00
Dmitry Petrov
e600a1af30
Minor: IrDeclarationOrigin.NEW_INSTANCE_RECEIVER -> INSTANCE_RECEIVER
2017-05-04 09:33:03 +03:00
Dmitry Petrov
1eb693b8ee
Transform variable-as-function calls for extension functions
...
In the following code example
fun test(f: Any.() -> Unit) = 42.f()
front-end resolves variable-as-function call for 'f' as 'invoke'
with signature 'Function1<Any, Unit>#Any.() -> Unit'.
However, Function1<Any, Unit> has a single 'invoke' method
with signature 'Function1<Any, Unit>#(Any) -> Unit'.
This didn't cause any problems with loosely typed JVM and JS back-ends.
However, in IR with symbols this means a reference to non-existing
declaration.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
7bd75df1f1
Minor: small refactorings in IrElementTransformerVoid
2017-05-04 09:33:03 +03:00
Dmitry Petrov
0203ba4dff
Use stable order when generating stubs for scope members
2017-05-04 09:33:03 +03:00
Dmitry Petrov
40939da9fb
Minor: DeclarationGeneratorExtension already extends Generator
2017-05-04 09:33:03 +03:00
Dmitry Petrov
17706d0fb6
Generate parameter declarations for synthetic members of enum classes
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c4346f95ff
Minor: fix testData format local delegated properties with 'suspend'
2017-05-04 09:33:03 +03:00
Dmitry Petrov
8b32d54a62
Minor: fix testData format for IR source range tests
2017-05-04 09:33:03 +03:00
Dmitry Petrov
78a601af87
Generate parameter declarations for fake overrides
2017-05-04 09:33:03 +03:00
Dmitry Petrov
fa4dc26814
Put 'thisReceiver' declaration in class
...
Interfaces also have 'thisReceiver'
2017-05-04 09:33:03 +03:00
Dmitry Petrov
90ec53b3b0
Generate catch-block body within proper scope
2017-05-04 09:33:03 +03:00
Dmitry Petrov
acefd0d891
Minor refactor and fix in Scope constructors
2017-05-04 09:33:03 +03:00
Dmitry Petrov
54294eaaa7
Minor fix and deprecation in DeepCopyIrTree
2017-05-04 09:33:03 +03:00
Dmitry Petrov
4dd199fedf
OldDeepCopyIrTree --> DeepCopyIrTree (for migration)
2017-05-04 09:33:03 +03:00
Dmitry Petrov
d5fb0f3f32
Minor: simplify code in generateEnumConstructorCallOrSuperCall
2017-05-04 09:33:03 +03:00
Dmitry Petrov
aa515a9e5a
Add test for outer class instance reference from inner class
2017-05-04 09:33:03 +03:00
Dmitry Petrov
5ec9cb3171
OldDeepCopyIrTree: old DeepCopyIrTree working with new IrElement hierarchy
2017-05-04 09:33:03 +03:00
Dmitry Petrov
b53807ab83
Drop IrBuiltinsOperatorsBuilder
2017-05-04 09:33:03 +03:00
Dmitry Petrov
de7b7ce6d5
Generate anonymous initializer body in separate scope
2017-05-04 09:33:03 +03:00
Dmitry Petrov
9c3387e174
Deprecate IrMemberFunctionBuilder
2017-05-04 09:33:03 +03:00
Dmitry Petrov
6f2c8140cf
IrDelegatingConstructorCall should have substituted descriptor
2017-05-04 09:33:03 +03:00
Dmitry Petrov
6e79709ef1
Simplify helper methods in SymbolTable auxiliary classes
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a511540aad
Render receivers as 'this@owner: type'
...
Add test for generic inner class with generic outer class.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
1bf6f8fc57
Do not generate separate type parameter declarations for constructors
2017-05-04 09:33:03 +03:00
Dmitry Petrov
57b2a4461c
Call IrSymbol.bind in declaration constructors
2017-05-04 09:33:03 +03:00
Dmitry Petrov
7995684d07
Bind declaration symbols in DeepCopyIrTree.
...
Check that symbols are properly bound.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
208bf5c667
Bind declaration symbols in DeepCopyIrTree.
...
Check that symbols are bound.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a840cf7643
Fix source range tests: support "undefined" offsets
2017-05-04 09:33:03 +03:00
Dmitry Petrov
40e09a39c1
Fix prototype JVM BE tests
2017-05-04 09:33:03 +03:00
Dmitry Petrov
2b0d3440ad
Descriptors in calls are substituted,
...
and symbols refer to the original descriptors.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
d7a362b4f6
Binding: all current tests are green.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
00e4accb7b
Add 'isBound' property to IrSymbol
2017-05-04 09:33:03 +03:00
Dmitry Petrov
2b48908586
Local delegated properties implementation + some more fixes
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c9777fd79f
Add symbols to references
...
TODO: fix some more tests
2017-05-04 09:33:03 +03:00
Dmitry Petrov
0595e93952
Use SymbolTable to create symbols for declarations
...
Introduce hierarchical sub-tables (for variables, type parameters, and value parameters).
First version passing all tests.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
209864e6a3
Minor: fix IrFunctionImpl#accept
2017-05-04 09:33:03 +03:00
Dmitry Petrov
7289903fa5
Introduce SymbolTable as a symbol factory and unbound symbols tracker
2017-05-04 09:33:03 +03:00
Dmitry Petrov
f96a21e899
Redo IrSymbol as a light-weight declaration reference
...
Strip it of any "useful" information but a reference to the corresponding
symbol owner (file or a declaration).
TODO: add that useful information to declarations.
NB not all IrDeclarations have IrSymbols (IrProperty doesn't - at least now).
2017-05-04 09:33:03 +03:00
Dmitry Petrov
b817638851
Add IrSimpleFunction : IrFunction
...
NB can't make 'override val descriptor: SimpleFunctionDescriptor' there,
because there are quite some FunctionDescriptors that are not
SimpleFunctionDescriptor, but actually belong to this category.
2017-05-04 09:33:03 +03:00
Dmitry Petrov
a416cddcb2
Generate declarations for FAKE_OVERRIDE members
2017-05-04 09:33:03 +03:00
Dmitry Petrov
4ee1fb9309
Minor refactoring
...
- Get rid of IrClassImpl usages where IrClass is enough
- Use startOffsetOrUndefined / endOffsetOrUndefined
2017-05-04 09:33:03 +03:00
Dmitry Petrov
8cea27b5bb
Generate IrTypeParameter and IrValueParameter declarations
2017-05-04 09:33:03 +03:00
Dmitry Petrov
03b664febd
Insert implicit casts for default parameter values in IrValueParameter
2017-05-04 09:33:03 +03:00
Dmitry Petrov
77614a749b
Minor: unnecessary overrides in IrBlockImpl
2017-05-04 09:33:03 +03:00
Dmitry Petrov
abb687aa7f
Introduce IrTypeParameter and IrValueParameter declarations
2017-05-04 09:33:03 +03:00
Dmitry Petrov
c6b259c36c
IrSymbol interface hierarchy, initial import
...
"Symbols" are (presumably simpler) alternative to descriptors, tailored
for IR-based back-end implementation.
2017-05-04 09:33:03 +03:00
Pavel V. Talanov
59012c0551
FakeFileForLightClass is not physical
...
Fix Spring tests
2017-05-03 21:38:49 +03:00
Pavel V. Talanov
9e25dfdd93
KtLightModifierList extends KtLightElementBase
...
Fix getContainingFile always returning null
2017-05-03 21:38:48 +03:00
Ilya Chernikov
25d2cc0279
Use invokeLater properly on scripts reconfiguration
...
Should fix #EA-97987
2017-05-03 18:11:48 +02:00
Ilya Chernikov
5745752841
Ignore empty lines at the end of the testdata, more tests
...
should finally fix source-section plugin tests on windows
2017-05-03 18:11:47 +02:00
Ilya Chernikov
732367e671
Pass earlier scripts as array, removes 255-lines repl limitation
...
fixes #KT-10060
2017-05-03 18:11:46 +02:00
Ilya Chernikov
15ccd28e2e
Switch old IDE/CLI repls to the new infrastructure
...
should also fix #KT-5822
2017-05-03 18:11:45 +02:00
Ilya Chernikov
e384268c8b
minor: unwrapping InvocationTargetException on repl line evaluation...
...
To provide better error diagnostics
2017-05-03 18:11:44 +02:00
Ilya Chernikov
8cc576d44f
Add total reset to repl history and state interfaces
2017-05-03 18:11:43 +02:00
Ilya Chernikov
c746cae72d
minor: add some generic repl tests...
...
in particular ignored test256Evals test that fails due to #KT-10060
2017-05-03 18:11:42 +02:00
Ilya Chernikov
f152af6385
minor: some repl cleanup
2017-05-03 18:11:41 +02:00
Mikhael Bogdanov
4e0bacab1e
Add '/' to 'bin/java' path
2017-05-03 17:48:43 +02:00
Nikolay Krasko
d094854878
Better indentation for expressions without parsed errors (KT-12123)
...
#KT-12123 Fixed
2017-05-03 18:03:40 +03:00
Nikolay Krasko
c0b545085a
Search statics java declarations through star imports
2017-05-03 18:03:39 +03:00
Nikolay Krasko
2d51d72708
Use classes to increase search pattern for static declarations
...
Static common names like 'INSTANCE', 'create' can give many irrelevant
references in the project.
#KT-17000 Fixed
#KT-14974 Fixed
2017-05-03 18:03:39 +03:00
Nikolay Krasko
7ee58be515
Don't fall back to full search because of reference in fqname
2017-05-03 18:03:39 +03:00
Nikolay Krasko
5cbc653f00
Avoid 'invoke' reference resolve because of references on the same range
...
When 'text' usages are being search, invoke reference in 'some(text)'
is considered relevant.
2017-05-03 18:03:39 +03:00
Nikolay Krasko
43d8a70ad3
Remove property accessor references from packages, imports and types
2017-05-03 18:03:39 +03:00
Nikolay Krasko
ba2f43ab78
Add caching for reference resolution in idea ResolveCache
2017-05-03 18:03:39 +03:00
Ilya Gorbunov
9953efc66b
Clarify ReentrantReadWriteLock.write behavior regarding upgrade from read to write lock
...
#KT-17704 Fixed
2017-05-03 17:51:14 +03:00
Ilya Gorbunov
ef72371fd7
Add samples for contentToString and contentDeepToString array operations
2017-05-03 17:44:30 +03:00
Marek Langiewicz
934b0b8c38
Fix List.takeLast for lists without RandomAccess
2017-05-03 16:38:15 +02:00
Ilya Gorbunov
8da4839f22
Document IllegalArgumentException thrown from string-number conversion
...
functions when an invalid radix is specified
#KT-17635 Fixed
2017-05-03 17:32:49 +03:00
Alexey Andreev
cffdd3fd26
Add changelog for 1.1.3
2017-05-03 17:26:21 +03:00
Mikhael Bogdanov
84eeed51b1
Restore accidentally removed parameter index passing to call generator
...
Parameter index was removed in
7690a8bc3e commit:
"Get rid of redundant 'afterParameterPut' method from call generators"
#KT-17653 Fixed
2017-05-03 12:56:15 +02:00
Igor Chevdar
962bce19a2
Enabled tests on coroutines for native
2017-05-03 10:42:07 +03:00
Dmitry Jemerov
7812a17f13
Mark Kotlin plugin as a JPS plugin so that JPS extensions are loaded
...
The Kotlin output parser for the Gradle build output in Android Studio
is loaded through the JPS extension manager, and the Kotlin JPS
plugin doesn't exist in Android Studio, so we need to use this
mechanism.
#KT-17596 Fixed
2017-05-02 21:26:45 +02:00
Svetlana Isakova
191e0802e9
Added description for 'Name resolution and SAM conversion'
2017-05-02 21:14:48 +03:00
Mikhail Glukhikh
b5d0de7c3f
Add test for KT-17479 looks like #KT-17479 Fixed
...
(after CAPTURED_MEMBER_VAL_INITIALIZATION introduction)
2017-05-02 19:59:43 +03:00
Mikhail Glukhikh
28283bad3e
Introduce special CAPTURED_VAL_INITIALIZATION for members
2017-05-02 19:59:37 +03:00
Mikhail Glukhikh
56e633e345
CFA: detect captured writes more precisely
...
So #KT-14381 Fixed
So #KT-13597 Fixed
Also refactors captured writes detection inside DFA
2017-05-02 19:59:23 +03:00
Mikhail Glukhikh
8fa739ed0f
Test for KT-14381 and KT-13597
2017-05-02 19:02:01 +03:00
Mikhail Glukhikh
fbc1d1a844
Clear var nullability in loops more accurately #KT-14977 Fixed
2017-05-02 19:01:48 +03:00
Mikhail Glukhikh
dc3ea4b6e4
Remove <Unknown Name> from module name rendering
...
Fixes failing multi-platform tests
2017-05-02 19:01:43 +03:00
Mikhail Glukhikh
1efa45f79e
Minor: deprecation fix
2017-05-02 19:01:37 +03:00
Mikhail Glukhikh
0798e43524
Consider only source-compatible modules in allImplementingModules use-sites
...
So #KT-17400 Fixed
So #KT-15680 Fixed
So #KT-15660 Fixed
Likely also #KT-16838 Fixed
2017-05-02 19:01:31 +03:00
Pavel V. Talanov
956ace3463
Light classes: modifierList#findAnnotation does not trigger exact resolve
2017-05-02 15:40:22 +03:00
Pavel V. Talanov
57baaf2a50
Test no exact delegates were constructed during annotated element search
...
Add test case for aliased import
2017-05-02 15:40:21 +03:00
Pavel V. Talanov
ac92cf8bea
Refactor: AnnotatedMembersSearchTest is now generated and J2K'ed
2017-05-02 15:40:21 +03:00
Pavel V. Talanov
55a0e138fc
Refactor: extract AnnotationDescriptor.annotationClass utility
2017-05-02 15:40:20 +03:00
Pavel V. Talanov
7ef18fe5ba
Tests: add some test cases for inheritor search
...
Refactor inheritor search tests to be generated
2017-05-02 15:40:19 +03:00
Pavel V. Talanov
178e59a6e8
LazyLightClassDataHolder: move internal members check to IDELightClassContexts#isDummyResolveApplicable
2017-05-02 15:40:18 +03:00
Pavel V. Talanov
0571c62943
KtLightElements: make light annotations lazier
...
Allow to get annotation list and to invoke `findAnnotation` without building delegate
Introduce KtLightNullabilityAnnotation which holds nullability information and is built
before delegate is built
2017-05-02 15:40:17 +03:00
Pavel V. Talanov
03b68666e4
KtLightClassForSourceDeclaration: use psi based resolve to speedup isInheritor checks
2017-05-02 15:40:17 +03:00
Pavel V. Talanov
bdc4014ded
Refactor: Introduce KtLightElementBase
2017-05-02 15:40:16 +03:00
Pavel V. Talanov
5346efae6e
Minor: toString() in IDELightClassConstructionContext
2017-05-02 15:40:15 +03:00
Pavel V. Talanov
901aa9c18b
PsiBasedClassResolver: use ImpreciseResolveResult instead of Boolean?
2017-05-02 15:40:14 +03:00
Pavel V. Talanov
8f4c969933
KtLightElement is no longer PsiNamedElement
2017-05-02 15:40:14 +03:00
Mikhail Glukhikh
04f7ba95c5
Add module name to HEADER_WITHOUT_IMPLEMENTATION message
2017-05-02 14:17:20 +03:00
Dmitry Petrov
6cefc0ddf3
Infer suspend flag for local delegated property accessors
...
Local delegated property accessors calling suspend operators getValue
or setValue should be suspend functions themselves.
KT-17605 Getter and setter of suspend delegated property are not suspend
2017-05-02 12:52:36 +03:00
Alexander Udalov
0624854d5a
Fix compilation of kotlin-gradle-plugin
...
The "ClassReader(InputStream)" constructor is stripped from
kotlin-compiler by proguard, so use the "ClassReader(ByteArray)"
constructor instead
2017-04-29 18:43:58 +03:00
Alexander Udalov
e79fdbe5e8
Gradle: print version loaded from environment's compiler jar
...
And not from the KotlinCompilerVersion class that is accessible in the
current version of kotlin-gradle-plugin, because the version of the
compiler might be different
2017-04-28 20:56:14 +03:00
Alexander Udalov
fcf44af294
Change how kotlinc and tools display their version
...
- Display the Kotlin version in kotlin-gradle-plugin. This is needed
because if "-version" is specified in compiler arguments, the "info"
level of the message printed by the compiler in CLICompiler prevents
it from being displayed by default (unless "--debug" is passed to
Gradle).
- Display the version of JRE the compiler is running on. This will be
helpful to diagnose Java 9 related issues in the future.
- In CLI, also display the executable name (kotlinc-jvm or kotlinc-js)
2017-04-28 20:49:54 +03:00
Alexander Udalov
bb01ca038a
Improve messages printed by JPS plugin in Messages view
...
- Don't print "Loaded plugin: KotlinAndroidJpsPlugin" and "Using
kotlin-home = ..." for every build. They are rarely useful; they can
be found in the build log now
- Instead of potentially confusing for the user "Kotlin JPS plugin
version ..." output simply "Kotlin version ...". Also add the version
of the JRE, where the compiler is being run
- Do not treat messages reported with severity LOGGING as BuildMessage
with kind PROGRESS. Such build messages are displayed to the user in
the progress/status bar when IDEA Make process is running, but LOGGING
messages never had this meaning. In particular, users could be
confused by the progress bar message "Kotlin: Configuring the
compilation environment" visible for a very long time during
compilation. This message just happens to be the last LOGGING message
reported by the compiler before the actual compilation; its presence
there created an illusion that Kotlin spends most of the time
configuring the compilation environment
#KT-17387 Fixed
2017-04-28 20:49:29 +03:00
Alexander Udalov
d8d3bafbe9
Introduce "-Xreport-output-files" to report source-output mapping for JPS
...
This makes "-verbose" not required for JPS to run correctly and
therefore allows to print more useful debugging stuff in the compiler
and read them in CLI, for example. The output will also be more readable
because there'll be no "output" messages
2017-04-28 20:49:28 +03:00
Yan Zhulanow
ce145c015d
Android Extensions: rename plugin JAR file names in plugin artifact
...
Rename compiler plugin to 'android-extensions-compiler' in order to have the same name in dist and IDEA plugin.
Rename IDEA plugin to 'android-extensions-ide' to make things clear.
2017-04-28 19:43:36 +03:00
Mikhail Glukhikh
d0da11321d
Fix of SpringInspectionTestGenerated
2017-04-28 18:22:21 +03:00
Alexander Udalov
5bd3716637
Fix compilation of kotlin-maven-plugin and kotlin-script-util
2017-04-28 16:31:11 +03:00
Zalim Bashorov
87db245dd8
KJS: fix JS backend tests on windows
2017-04-28 16:17:02 +03:00
Vyacheslav Gerasimov
e841fceea0
Update changelog for 1.1.2-2
2017-04-28 16:12:39 +03:00
Simon Ogorodnik
9a969b0449
Add basic completion for operator fun names
...
#KT-11250 fixed
2017-04-28 15:06:27 +03:00
Mikhail Glukhikh
0e7753df3a
Added tests forgotten by alexey andreev
2017-04-28 13:37:24 +03:00
Mikhael Bogdanov
a7c9e14805
Don't generate default arguments for inline call
2017-04-28 12:19:09 +02:00
Mikhael Bogdanov
7690a8bc3e
Get rid of redundant 'afterParameterPut' method from call generators
2017-04-28 12:19:09 +02:00
Mikhael Bogdanov
b440561f5c
Generate default arguments and varargs lazily
...
The aim to perform optimizations in call generators
2017-04-28 12:19:08 +02:00
Mikhael Bogdanov
02cc5f6bc1
Expand default parameters conditions on inlining default function
...
#KT-14564 Fixed
#KT-10848 Fixed
#KT-12497 Fixed
2017-04-28 12:19:07 +02:00
Dmitry Jemerov
d49e9d7064
Fix override navigation from properties defined in primary constructor
...
EA-91185 - CCE: KotlinLineMarkerProviderKt$OVERRIDDEN_PROPERTY$.browse
2017-04-28 12:02:20 +02:00
Dmitry Jemerov
c22e0d88f0
More generic solution for testing line marker navigation
2017-04-28 12:02:19 +02:00
Dmitry Jemerov
f9bca06e33
AbstractLineMarkersTest: J2K
2017-04-28 12:02:19 +02:00
Dmitry Jemerov
18a065865b
AbstractLineMarkersTest: rename to .kt
2017-04-28 12:02:19 +02:00
Dmitry Jemerov
d46f222a12
Don't try to store "is Kotlin" state for non-local jars (EA-80264)
2017-04-28 12:02:19 +02:00
Dmitry Jemerov
184ff9542c
Add missing case to DECLARATION_NAME_WITH_KIND renderer (EA-100667)
2017-04-28 12:02:19 +02:00
Mikhail Glukhikh
b58c512f7b
Fix broken parameter info test: add WITH_RUNTIME
2017-04-28 11:32:30 +03:00
Mikhail Glukhikh
9fca7e814f
Test refactoring: extract common parts from inspection tests
2017-04-28 10:56:08 +03:00
shiraji
6f94f45409
Disable "Make constructor internal" for annotations #KT-17599 Fixed
2017-04-28 10:55:13 +03:00
shiraji
d542aef7e4
Disable "Make constructor private" for annotations #KT-17600 Fixed
2017-04-28 10:54:54 +03:00
Alexey Andreev
c8c3d24b45
Fix non-suspending labeled loop in suspend function
...
Fix bug when labeled loop, which does not contain suspend calls
in its body, was losing its label
2017-04-28 10:52:14 +03:00
Alexey Andreev
6047746c90
Fix optimization in JS BE
...
Don't apply while condition folding when corresponding break
statement breaks outer loop.
2017-04-28 10:52:13 +03:00
Alexey Andreev
d89ce80d97
Fix temporary variable elimination in JS BE
...
Don't eliminate temporary variable when between its usage and its
definition there's assignment to a non-local variable.
Fix KT-17540
2017-04-28 10:51:30 +03:00
Ilya Gorbunov
8d0eb207e3
Do not hardcode kotlin version in one of maven integration tests
2017-04-27 23:35:18 +03:00
Ilya Gorbunov
71636aec41
Share run configuration to regenerate sources, share vcs and issue tracker settings
2017-04-27 23:34:58 +03:00
Ilya Gorbunov
a50c2ff0a5
Upgrade kotlin gradle plugin used to build libraries to 1.1.2
2017-04-27 21:59:46 +03:00
Mikhail Glukhikh
19021ec1aa
VarianceChecker refactoring: move checkClassOrObject to IDE
2017-04-27 20:58:40 +03:00
Mikhail Glukhikh
b66401a41d
Variance checker: add check for nested local / anonymous classes
...
So #KT-16136 Fixed
2017-04-27 20:58:39 +03:00
Dmitry Neverov
9dd217eee3
Introduce intention to name anonymous parameter #KT-17191 Fixed
2017-04-27 20:58:38 +03:00
Mikhail Glukhikh
bc071bf543
Add parameter info test for #KT-14484 Obsolete
2017-04-27 20:58:36 +03:00
Alexander Udalov
c92aa1a62d
Fix test data in incompleteHierarchyInJava test
...
This likely started to behave differently since d65af8f9
2017-04-27 20:52:33 +03:00
Alexander Udalov
82e6324c45
Support compilation against modular JDK (9+)
...
For more information about the "jrt" file system, see
http://openjdk.java.net/jeps/220 and
https://bugs.openjdk.java.net/browse/JDK-8066492 .
This commit fixes DiagnosticsWithJdk9TestGenerated.testKt11167
#KT-11167 Fixed
2017-04-27 20:48:24 +03:00
Alexander Udalov
a519ab681a
Add diagnostic tests against Java 9
...
These tests currently won't run if you don't have environment variable
JDK_9 set up
2017-04-27 20:35:14 +03:00
Alexander Udalov
7f5d87ea17
Rename PathUtil.getJdkClassesRoots to avoid confusion
...
Two of these methods return roots given a path to the JRE, and the third
one returns roots given a path to the _JDK_.
2017-04-27 20:35:14 +03:00
Alexander Udalov
15efbcae02
Use Class->KClass cache in Class.kotlin extension
...
#KT-17594 Fixed
2017-04-27 20:34:45 +03:00
Mikhail Zarechenskiy
fcf70fda22
Fix exception when classes erroneously have no name
...
#KT-16775 Fixed
Exception appears because of different representation of classes without name. For Kotlin we load them with `SpecialNames.NO_NAME_PROVIDED`, but for Java (for light classes) with `SpecialNames.safeIdentifier`
2017-04-27 18:57:45 +03:00
Yan Zhulanow
4b072d59ac
Minor: Fix test for Android illegal identifiers
2017-04-27 18:52:13 +03:00
Yan Zhulanow
14fde339ef
Minor: Fix Android JPS test
2017-04-27 18:52:12 +03:00
Yan Zhulanow
8354d25800
Android Extensions: Fix availability in Android/JPS projects (KT-17610)
2017-04-27 18:52:11 +03:00
Yan Zhulanow
63243b99fa
Kapt3: Check if the 'tools.jar' is present in the plugin classpath (KT-17456)
...
Kapt3 won't work without the 'tools.jar' file provided, but we shouldn't throw an exception in this case.
This commit adds the warning message (and disables Kapt if it can't be used).
2017-04-27 18:52:10 +03:00
Yan Zhulanow
20e362e363
Kapt3: Do not generate "options not recognized" for "kapt.kotlin.generated" option (KT-17418)
...
"kapt.kotlin.generated" AP option is always present (and it's the way to say the arbitrary processors about the target directory for generated Kotlin source files).
In this commit, the "fake" empty annotation processor is added to consume the option if no other processor does it.
2017-04-27 18:52:09 +03:00
Denis Zharkov
c970763a7f
Fix callable reference resolution regression
...
The regression appeared after
b5a8ffaddc
when we started trying both static and member methods until
first success and when there is no successful
we were just leaving the last one (e.g. private member)
But the actual problem is that we were commiting the trace
in case of single (but incorrect) result in resolution mode of
SHAPE_FUNCTION_ARGUMENTS when we couldn't yet choose the
correct static method
Also we shouldn't choose a shape for callable reference
using only the knowledge that result is single:
it may lead to the wrong inference result
(see test with Pattern::compile)
#KT-17597 Fixed
2017-04-27 18:38:10 +03:00
Mikhail Glukhikh
4b6667f599
Make IntentionBasedInspection deprecated
2017-04-27 18:21:39 +03:00
Mikhail Glukhikh
bb8091a6ca
KT-17503 add check whether callable reference is acceptable in lambda
2017-04-27 18:21:33 +03:00
shiraji
0eceef1519
Add inspection to detect use of callable reference as a lambda body
...
So #KT-17053 Fixed
2017-04-27 18:21:27 +03:00
Mikhail Glukhikh
53e11cbeb5
Create test group: AbstractLocalInspectionTest
...
Goal is to have inspection tests that work on per-file per-case basis
Test group allow both inspection message control and local fixes control
2017-04-27 18:21:15 +03:00
Simon Ogorodnik
de66f76299
Fix regression of sample resolution in library sources
...
Use hack to answer package questions
#KT-17448 fixed
2017-04-27 16:53:07 +03:00
Ilya Gorbunov
99504eb753
Support rendering receiver parameters
...
Otherwise generated coroutine implementation class could not be rendered since one of its members corresponds to receiver parameter descriptor.
2017-04-27 16:38:25 +03:00
Vyacheslav Gerasimov
5f09e18394
Fix Android api issues reporting for generic collection method calls
...
#KT-16712 Fixed
2017-04-27 16:02:37 +03:00
Vyacheslav Gerasimov
9552666aa6
Use platform-25 for android tests
...
Add Android platform-25 to dependencies
Update platform tools to 25.0.3
2017-04-27 16:02:37 +03:00
Mikhail Zarechenskiy
7af10769c9
Enable control flow checks for functions without body
...
Except checks for tail recursive calls
#KT-7796 Fixed
2017-04-27 15:50:18 +03:00
Mikhail Zarechenskiy
a0d7b703f4
Align generic signature for inner classes to work as in Java
...
#KT-10397 Fixed
According to JVMS (p. 4.3.4) inner classes should be separated with `$` in generic signature.
Note that in Java, inner types separated with `.` after first parameterized type, and now we preserve the same behaviour. See tests for clarification.
2017-04-27 15:47:28 +03:00
Mikhail Glukhikh
14e798a1fc
Take imported from object descriptor into account in pseudocode
...
So #KT-15566 Fixed
2017-04-27 15:27:41 +03:00
Alexander Udalov
056eebf69c
Update list of excluded directories in root module
2017-04-27 12:38:01 +03:00
Ilya Matveev
935d42f8ac
Ignore explicitEqualsOnDouble.kt box-test for native backend
2017-04-27 14:55:32 +07:00
Dmitry Jemerov
75a1e8f0a2
Don't show hint for parameter with explicitly specified type
2017-04-26 18:23:45 +02:00
Dmitry Jemerov
7973e033a9
Initial tests for type hints; don't show hint when type is obvious
2017-04-26 18:23:41 +02:00
Dmitry Jemerov
d1cdd6d8ed
Separate logic for argument name hints and type hints
2017-04-26 18:23:16 +02:00
Dmitry Jemerov
108e97b70e
Show parameter hints for ambiguous calls
2017-04-26 18:21:19 +02:00
Dmitry Jemerov
26445397bb
Add varargs tests; show ... before vararg arguments
2017-04-26 18:09:13 +02:00
Dmitry Jemerov
c9639f6ae0
Port some Java tests for parameter hints; fix detected issues
...
Show hints for string templates; correctly apply blacklist for
constructor calls
2017-04-26 18:09:13 +02:00
Dmitry Jemerov
760e43d4f1
Include in MethodInfo only names of arguments actually in the call
...
Needed to apply blacklist for e.g. startsWith more correctly.
2017-04-26 18:09:13 +02:00
Dmitry Jemerov
aad79f4d63
Fix blacklist application by returning parameter names correctly
2017-04-26 18:09:13 +02:00
Dmitry Jemerov
d8f16c0464
Disable inlay type hints by default
2017-04-26 18:09:12 +02:00
Dmitry Jemerov
6cda992204
Separate options for showing types of local vars and properties
2017-04-26 18:09:12 +02:00
Dmitry Jemerov
0132b643ec
Show function return type hint in the end of parameter list
2017-04-26 18:09:12 +02:00
Dmitry Jemerov
8508b8b397
Show parameter hints only before unclear expressions, as in Java
2017-04-26 18:09:12 +02:00
fitermay
8b3f8ce750
Inlay param/type support for kotlin
2017-04-26 18:09:12 +02:00
Vyacheslav Gerasimov
49c8dfbb06
Add gutter icons for Android resource references
...
#KT-16843 Fixed
2017-04-26 18:38:29 +03:00
Vyacheslav Gerasimov
386ec53dd5
Update AndroidTestCase to AS 2.3 + Android tests refactoring
2017-04-26 18:38:29 +03:00
Alexander Udalov
e2c62cbded
Support serialization of built-in ranges as error types
...
This will be needed to move ranges and progressions out of builtins.
Currently they're only used in signatures of "rangeTo" functions on
primitives
2017-04-26 18:10:54 +03:00
Alexander Udalov
f648f0235c
Move ErrorUtils.ErrorTypeImpl to top level ErrorType and J2K
2017-04-26 18:10:53 +03:00
Alexander Udalov
38ea9986ab
Make KotlinType.isError extension instead of member
2017-04-26 18:10:49 +03:00
Mikhail Glukhikh
787a32f4f1
KT-17408 related: fix of two broken tests
2017-04-26 17:31:46 +03:00
Stanislav Erokhin
dce373b807
Create special data flow info for ControlStructure. It will be used in new inference for special calls.
2017-04-26 13:47:53 +03:00
Stanislav Erokhin
dbe867e2c0
Minor. Change upper bound for collection of given candidates.
2017-04-26 13:47:52 +03:00
Stanislav Erokhin
1af733da05
Added isAllowedTypeVariable inside KotlinTypeChecker
2017-04-26 13:47:51 +03:00
Stanislav Erokhin
53ccfcf195
Add util functions getKPropertyType for both receivers and isNumberedKFunction
2017-04-26 13:47:50 +03:00
Stanislav Erokhin
22e667ad65
Removed generic hell from tower resolver
2017-04-26 13:47:49 +03:00
Stanislav Erokhin
863b9f7603
Minor. Change parameter type from Set to Collection.
2017-04-26 13:47:48 +03:00
Stanislav Erokhin
83a82cdd04
Refactoring. Remove descriptor from resolution Candidate.
2017-04-26 13:47:47 +03:00
Zalim Bashorov
794e65b5d6
KJS: remove Rhino library
2017-04-26 13:07:35 +03:00
Zalim Bashorov
fb1c4320b6
KJS: check hashCode property only for objects to avoid extra boxing for primitive values
...
Also in Nashorn everything has hashCode including primitive types,
so the result can be different at Nashorn and at other engines.
2017-04-26 13:07:34 +03:00
Zalim Bashorov
678d2e7c21
KJS: transform labeled blocks to labeled do-while
...
It's a workaround for JDK-8177691.
Such code can appear during inline.
2017-04-26 13:07:33 +03:00
Zalim Bashorov
76fa6ad5c2
KJS: switch to using Nashorn instead of Rhino for JS backend tests
2017-04-26 13:07:30 +03:00
Dmitry Petrov
a39a0abb2a
Traverse store-load chains for POP instructions
...
POP instructions can be only live usages for functional parameters,
e.g., when corresponding invoke is in dead code (KT-17591).
2017-04-26 12:42:45 +03:00
Dmitry Petrov
fe571a7dfa
Normalize local returns before other inlining transformations
...
Local returns normalization can generate POP instructions.
These POP instructions can drop functional parameters, as in KT-17590,
and should be processed in markPlacesForInlineAndRemoveInlinable just
as other POP instructions.
KT-17590 conditional return in inline function parameter argument causes compilation exception
2017-04-26 12:42:33 +03:00
Dmitry Petrov
996a08a3f7
Add tests with loop in store-load chains on noinline function parameters
2017-04-26 12:42:33 +03:00
Dmitry Petrov
e1731373d8
Do not restore stack in default handler for try-finally
...
It never terminates, so the corresponding value on stack can't be used.
However, if this happens in an inlined lambda argument, the inliner is
unable to remove the corresponding ALOAD instruction (because default
handler never terminates, and thus corresponding ALOAD is not used for
lambda invocation).
KT-17573 try-finally expression in inlined function parameter argument fails with VerifyError
2017-04-26 12:42:33 +03:00
Dmitry Petrov
e91f4cf65a
Print generated text to System.err in failed DxChecker.check
...
Otherwise it can mix with exception from test.
2017-04-26 12:42:33 +03:00
Dmitry Petrov
08fb9c2122
Traverse multiple store-load chains for inlined lambda parameters
...
When a try-catch expression is passed as an argument to the inline
lambda parameter, lambda variable on stack is spilled and restored in
several different locations (1 for try-block, 1 for each catch-blocks).
So it's possible that lambda to be invoked comes from multiple loads,
all of which should have the same "root" lambda parameter.
2017-04-26 12:42:33 +03:00
Dmitry Petrov
441be56a40
During inlining, remove POP instructions popping inlined lambdas
...
In cases like KT-17384, where 'break' or 'continue' happens in an argument
to an inlined lambda call, fix-stack transformation sees corresponding
ALOAD for lambda, and inserts corresponding POP instruction before jump.
However, this ALOAD is later removed during inlining.
So, we should also remove the related POP instructions.
2017-04-26 12:42:33 +03:00
Alexey Andreev
38aecb14a2
Improve Number.hashCode implementation in JavaScript
...
Fix KT-13577
2017-04-26 11:52:54 +03:00
Vyacheslav Gerasimov
c0542f7dc0
Remove from changelog items about multiplatform
2017-04-26 11:29:45 +03:00
Dmitry Neverov
f84c5b0339
Do not suggest 'Convert to secondary constructor' for annotation classes
...
#KT-17408 Fixed
2017-04-26 06:37:30 +02:00
Zalim Bashorov
d5867c1ee3
Changes in list of files which size is printed for TeamCity statistics
...
Fix path to kotlin.meta.js;
Add kotlin-test.js to list.
2017-04-25 22:40:16 +03:00
Vyacheslav Gerasimov
a8227461f1
Prettify changelog for 1.1.2 again
2017-04-25 17:29:19 +03:00
Vyacheslav Gerasimov
3c1ff566c5
Prettify changelog for 1.1.2
2017-04-25 16:57:01 +03:00
Kirill Rakhman
76507caf4b
Add intention to convert concatenation to raw string #KT-17503 Fixed
2017-04-25 16:43:52 +03:00
Alexey Tsvetkov
50085722d1
Fix internal visibility check for deserialized typealiases
...
#KT-15495 fixed
2017-04-25 16:27:23 +03:00
Mikhael Bogdanov
b9409523b0
Fix for KT-17588: Compiler error while optimizer tries to get rid of captured variable
...
#KT-17588 Fixed
2017-04-25 15:06:41 +02:00
Simon Ogorodnik
6e8406f73c
Fix completion of 'else' keyword
...
#KT-14665 fixed
2017-04-25 14:44:24 +03:00
Simon Ogorodnik
bd2ad6a089
Tweak keyword completion for lateinit and companion object
...
#KT-13673 fixed
#KT-12293 fixed
2017-04-25 14:42:50 +03:00
Alexey Andreev
3fb15a4423
Fix iml file of js.serializer module
2017-04-25 13:31:26 +03:00
Mikhail Zarechenskiy
63d015ec70
Merge pull request #1055 from JetBrains/rr/matveev
...
Ignore native backend in some box tests
2017-04-25 11:42:51 +03:00
Mikhael Bogdanov
9d021ee1ac
Add infrastructure to run codegen test on jdk 6
...
Perform actual codegen test execution in separate process.
One server process is used to run all codegen tests
through socket connection.
2017-04-25 09:31:17 +02:00
Dmitry Petrov
1ee337d976
Optimize iteration over CharSequence's on JVM
...
KT-7931 Optimize iteration over strings/charsequences on JVM
2017-04-25 10:07:05 +03:00
Dmitry Petrov
bc1e1515fd
Move for-loop generators out of ExpressionCodegen, convert them to Kotlin
2017-04-25 10:07:05 +03:00
Sergey Mashkov
e03a842317
KT-15050 Use more stable way to specify idea compatible version
...
Here we have to specify build number static field
as system properties are out of our control
and they could be wiped out externally
#KT-15050 Fixed
2017-04-25 01:56:08 +03:00
Pavel V. Talanov
f3dd09beaf
Lighter classes: DeprecationLevel.HIDDEN affects codegen
2017-04-24 20:55:50 +03:00
Pavel V. Talanov
337eb883b3
IDELightClassContexts: Use CallResolver to resolve relevant annotation calls
...
Drop code that made decisions based on text
Use CallResolver directly to avoid calling TypeResolver which only returns error types in ad hoc resolve
2017-04-24 20:55:49 +03:00
Pavel V. Talanov
46c6aaddeb
Light classes: do not try to build lighter classes if failed once
...
Avoid multiple exceptions thrown and analysis being unable to complete
2017-04-24 20:55:48 +03:00
Alexey Sedunov
a8c57f11af
Move: Implement more accurate 'protected' visibility check
...
#KT-17545 Fixed
2017-04-24 20:52:12 +03:00
Alexey Sedunov
480982b690
Shorten References: Wrap elements to shorten in smart pointers
...
#KT-17526 Fixed
2017-04-24 20:52:11 +03:00
Alexey Sedunov
c690761715
Move: Do not process imported references when moving entire file
...
#KT-17538 Fixed
2017-04-24 20:52:10 +03:00
Alexey Sedunov
eab6c024c2
Move: Warn about moving to non-Kotlin class
...
#KT-17472 Fixed
2017-04-24 20:52:09 +03:00
Alexey Sedunov
d71b02f972
Move: Improve filtering in "Move nested class" dialog member list
...
Do not suggest inner classes and companion objects
#KT-17515 Fixed
2017-04-24 20:52:08 +03:00
Simon Ogorodnik
3acebc3001
Fix KNPE in KotlinAddImportActionKt.createSingleImportActionForConstructor
...
#KT-17525 fixed
2017-04-24 19:18:13 +03:00
Alexey Andreev
0d7b39eb57
JS: minor code cleanup
2017-04-24 18:39:04 +03:00
Alexey Andreev
feb968e66d
JS: fix generation of names for local declarations
...
Local declarations obtain names prefixed with outer function's name.
Only simple name (i.e. without mangling) of outer function used
in this case. This raises a problem in case of inline functions
with object literals. Currently, they are not copied, but exported
from module. Consider two inline functions foo with different
signatures, both declare object literals. In this case both literals
are exported as foo$f, so only one will be accessible from outside.
2017-04-24 18:39:04 +03:00
Alexey Andreev
88cf37951b
JS: always create aliases for function parameters
...
This is required to make translateAndAliasParameters
behaviour a little more clear.
Also, fix destructuring declaration translator to use parameter aliases
from TranslationContext, when possible.
2017-04-24 18:39:04 +03:00
Alexey Andreev
524dd122e7
JS: move deserialization logic out of createTopDownAnalyzerForJs
...
Remove code that deserializes unchanged descriptors from
`createTopDownAnalyzerForJs`, deserialize in caller instead.
2017-04-24 18:39:03 +03:00
Alexey Andreev
df46417cd7
JS: fix NPE in incremental compilation
...
Fix NPE when compiling project incrementally and a file which
is not recompiled contains try/catch statement
2017-04-24 18:39:03 +03:00
Alexey Andreev
f916d83978
JS: replace consumer in with returning value
...
Refactor some utility functions that take consumer of JsStatement
to return actual statements, so that caller now responsible
for putting these statements to corresponding lists.
2017-04-24 18:39:02 +03:00
Alexey Andreev
a055a038a8
JS: minor fixes after rebasing
...
Multiple minor fixes after rebasing incremental compilation related
branch to actual master
2017-04-24 18:39:02 +03:00
Alexey Andreev
1c2120d7e2
JS: avoid repeated export of the same declaration
2017-04-24 18:30:42 +03:00
Alexey Andreev
dd43d0a9e0
JS: don't use wrapper messages for string, int and double literals. This allowed to decrease binary AST size of stdlib from 2659138 bytes to 2642908 bytes
2017-04-24 18:30:41 +03:00
Alexey Andreev
f4a9b99e4d
JS: fix incremental generation of source maps
2017-04-24 18:30:38 +03:00
Alexey Andreev
0058d2fdf6
JS: add some tests to ensure that AST metadata is correctly serialized and deserialized and visible to JS optimizer
2017-04-24 18:29:52 +03:00
Alexey Andreev
80c1ac8b1b
JS: don't generate metadata for fragments when fragment serialization is turned off
2017-04-24 18:29:51 +03:00
Alexey Andreev
85bd380373
JS: fix performance regression caused by changing approach to detection of main and test function from PSI-based to descriptor-based
2017-04-24 18:29:50 +03:00
Alexey Andreev
dc1ce0e8b5
JS: replace declareFreshName with declareTemporaryName in inliner, get rid of scopes where possible
2017-04-24 18:29:50 +03:00
Alexey Andreev
22f24d13b9
JS: transform coroutines before serializing AST to binary format
2017-04-24 18:29:49 +03:00
Alexey Andreev
02ca374dc9
JS: fix inlining in incremental compilation
2017-04-24 18:29:48 +03:00
Alexey Andreev
c85108602a
JS: add tests for recompilation of only some files in a project
2017-04-24 18:29:46 +03:00
Alexey Andreev
49dacfcd76
JS: add metadata to AST serialization/deserialization
2017-04-24 18:29:19 +03:00
Alexey Andreev
8d2eb344ff
JS: add AST deserializer
2017-04-24 18:29:18 +03:00
Alexey Andreev
4d3a86a183
JS: add AST serializer
2017-04-24 18:29:17 +03:00
Alexey Andreev
83df21329f
JS: add protobuf declarations for JS AST
2017-04-24 18:29:17 +03:00
Alexey Andreev
df4c7048d0
JS: do not create duplicate local variables for packages
2017-04-24 18:29:16 +03:00
Alexey Andreev
cb8189989c
JS: optimize removeUnusedFunctionDefinitions
2017-04-24 18:29:15 +03:00
Alexey Andreev
a1780234ee
JS: when compiling stdlib, prevent builtin class from import when the same class is declared in compiled module
2017-04-24 18:29:14 +03:00
Alexey Andreev
f82f5d0471
JS: add tests for private external declarations
2017-04-24 18:29:13 +03:00
Alexey Andreev
8d2dac4577
JS: fix generation of main call and test run
2017-04-24 18:29:13 +03:00
Alexey Andreev
5b34ff8fa4
JS: don't generate inner name for class functions. Looks like this is not necessary. However, it breaks new pipeline when generating class members, since two distinct names are generated (inner and outer) for one declaration and that confuses Merger
2017-04-24 18:29:12 +03:00
Alexey Andreev
c1627e840b
JS: use eval instead of js in tests to refer local declarations to avoid renaming by resolveTemporaryNames
2017-04-24 18:29:12 +03:00
Alexey Andreev
ce1eabdf6f
JS: generate name table entries for non-internal name so that Merger could merge them in a single JsName. It is required for inlining to properly work on non-toplevel declarations between different files.
2017-04-24 18:29:11 +03:00
Alexey Andreev
ee1e0fc0b1
JS: minor optimization: when attempting to set default value to MetadataProperty, remove value from underlying map
2017-04-24 18:29:11 +03:00
Alexey Andreev
ecdf8a9985
JS: import external declarations, reference them by aliases, not by FQN
2017-04-24 18:29:10 +03:00
Alexey Andreev
435be921f2
JS: when generating class, translate reference to its parent, so that fragment can import corresponding declaration
2017-04-24 18:29:10 +03:00
Alexey Andreev
7d3e3c0299
JS: de-duplicate temporary names in some cases to allow name resolution to make its work better
2017-04-24 18:29:09 +03:00
Alexey Andreev
9e0a06a4aa
JS: refactor JsScope, JsName and related things, since it's became unnecessary to track scopes and declaration order of temporary JsName's
2017-04-24 18:29:09 +03:00
Alexey Andreev
9530ce6c26
JS: when resolving temporary functions, don't rely on JsScope hierarchy, build this hierarchy instead, based on scoping rules for function, var, etc expressions
2017-04-24 18:29:08 +03:00
Alexey Andreev
a6bb5743db
JS: include expandIsCalls in new translator pipeline
2017-04-24 18:29:08 +03:00
Alexey Andreev
714cb60375
JS: support bridges and copying of non-abstract methods of interfaces in new pipeline
2017-04-24 18:29:07 +03:00
Alexey Andreev
83140bc5f7
JS: support inlining in new pipeline
2017-04-24 18:29:07 +03:00
Alexey Andreev
a414cd64c5
JS: support module imports in new pipeline
2017-04-24 18:29:06 +03:00
Alexey Andreev
2354adfa22
JS: support class prototypes in new pipeline
2017-04-24 18:29:06 +03:00
Alexey Andreev
108fcba885
JS: support imports in new pipeline
2017-04-24 18:29:05 +03:00
Alexey Andreev
6711db86ee
JS: reworking translator pipeline to generate multiple fragment each for source file
2017-04-24 18:29:05 +03:00
Alexey Andreev
e909ef984c
JS: prepare all necessary abstractions for new pipeline
2017-04-24 18:29:04 +03:00
Zalim Bashorov
56810c5100
KJS: cleanup RhinoUtils and remove obsolete rhino result checkers
2017-04-24 17:59:10 +03:00
Zalim Bashorov
25dd31a2e0
KJS: introduce new base class WebDemoExamples* tests
2017-04-24 17:59:08 +03:00
Zalim Bashorov
e1cf6445ee
KJS: make OutputPrefixPostfixTest generated and migrate to BasicBoxTest
2017-04-24 17:59:08 +03:00
Zalim Bashorov
030809e3b1
KJS: add generateNodeJsRunner flag to BasicBoxTest to control the generating files for node.js runner
2017-04-24 17:59:07 +03:00
Zalim Bashorov
41ce3936fc
KJS: move some "static" properties of BasicBoxTest to its companion object
2017-04-24 17:59:07 +03:00
Zalim Bashorov
7eb882ed27
KJS: switch sourcemap tests to generated using BasicBoxTest
2017-04-24 17:59:07 +03:00
Zalim Bashorov
725b0100e2
KJS: remove useless StdLibTest
2017-04-24 17:59:06 +03:00
Denis Zharkov
62a55b7b00
Fix false-positive resolution ambiguity when using akka
...
com.typesafe.akka:akka-cluster-sharding_2.12:2.5
akka.cluster.sharding.ClusterSharding has the following methods:
public static ClusterSharding get(ActorSystem var0) {
return ClusterSharding$.MODULE$.get(var0);
}
public static Extension get(ActorSystem var0) {
return ClusterSharding$.MODULE$.get(var0);
}
NB: ClusterSharding <: Extension
None of these methods is synthetic or something, but javac allows
calls like ClusterSharding.get(null) and they get resolved
to the first method returning ClusterSharding
It seems that both javac and IntelliJ resolution algorithms filter out
such clashing declarations choosing the one that has the most
specific return type, the same idea is applied in the change
#KT-17560 Fixed
2017-04-24 17:54:01 +03:00
Denis Zharkov
40e1d5bc23
Optimize KtFile::isScipt/getScript when file is not kts
...
`isScript` gets invoked for each call
(see org.jetbrains.kotlin.resolve.calls.CandidateResolver#checkOuterClassMemberIsAccessible)
And currently it may work for O(|top-level-declarations|),
that is rather slow e.g. for native stubs for gtk
#KT-17562 Fixed
2017-04-24 17:53:20 +03:00
Ilya Chernikov
af4caeaf24
Ignore empty lines at the end of the testdata, remove debug dump
...
should fix source-section plugin tests on windows
2017-04-24 16:50:19 +02:00
Alexey Sedunov
fd41e266fb
Quick Fixes: Add/remove 'suspend' in hierarchy
...
#KT-15903 Fixed
2017-04-24 14:55:37 +03:00
Vyacheslav Gerasimov
0d32ac924a
Update 1.1.2 changelog
2017-04-24 14:07:49 +03:00
Ilya Matveev
629be10a53
Ignore native backend in some box tests
2017-04-24 17:43:14 +07:00
Anton Bannykh
0db3649da1
Added EnvironmentConfigFiles.NATIVE_CONFIG_FILES for Kotlin/Native
2017-04-24 13:20:57 +03:00
Dmitry Jemerov
5315f4d9da
Initial implementation of rainbow highlighting for Kotlin
...
#KT-12629 Fixed
2017-04-22 13:45:36 +02:00
Alexander Udalov
c9769ab454
Do not serialize/deserialize CommonCompilerArguments#errors
...
This prevents .idea/kotlinc.xml from being added with an empty
ArgumentParseErrors object and also fixes
ConfigureKotlinInTempDirTest.testKotlincExistsNoSettingsRuntime11
2017-04-22 02:17:49 +03:00
Ilya Gorbunov
e0a4f9ba76
Rewrite precondition samples and refactor precondition tests
...
Precondition tests are shared for JS target.
Samples do not use assertFailsWith as expression, as it's going to be converted as a special template.
2017-04-21 21:13:25 +03:00
Ilya Gorbunov
2c32bae5ca
kotlin-test: Make assertFailsWith<reified T: Throwable>() common
2017-04-21 20:52:14 +03:00
Ilya Gorbunov
307b132015
kotlin-test: Make assertFailsWith(KClass<T: Throwable>) common
2017-04-21 20:52:12 +03:00
Ilya Gorbunov
ec8ead754f
Run kotlin-test-js tests with kotlin-stdlib-js
...
Rework kotlin-test common tests to make them runnable with qunit.
Change the way how asserter is overridden in js box tests.
Minor: remove unneeded test configs
2017-04-21 20:51:07 +03:00
Ilya Gorbunov
f009e0c665
kotlin-test: Make 'todo { }' function common
2017-04-21 20:50:59 +03:00
Nikolay Krasko
4d0b88e34b
Minor: use 'Searching for' instead of 'Searching'
2017-04-21 15:12:08 +03:00
Nikolay Krasko
666ecdb7d6
Don't iterate through classes for Scala and Clojure
2017-04-21 15:12:08 +03:00
Nikolay Krasko
111f0b1e66
Avoid full references search for languages without PsiClass (KT-14974)
...
Make smart type search work for Groovy.
#KT-14974 Fixed
2017-04-21 15:12:07 +03:00
Nikolay Krasko
102310e3c2
Skip references for invoke when number of arguments in psi is wrong
2017-04-21 15:08:52 +03:00
Nikolay Krasko
d3ff8c12a4
Use dialog wrapper for controlling behaviour from tests
...
Known issue: can't use same approach for modifying Java dialogs
behaviour
2017-04-21 15:08:40 +03:00
Mikhail Glukhikh
247a571f51
Add test for multi-platform find usages #KT-15665 Obsolete
...
+ perform minor AbstractFindUsagesTest refactoring
2017-04-21 14:26:41 +03:00
Dmitry Jemerov
4e8fe18ca8
Fix facet validation: change ArgumentParseErrors to a data class
...
BaseCompilerSettings.validateInheritedFieldsUnchanged() compares
old and new properties of the compiler settings, and the check requires
ArgumentParseErrors.equals() to be correctly implemented
2017-04-21 13:20:49 +02:00
Dmitry Jemerov
7346fee513
Quickfix to enable coroutine support works in Maven projects
...
#KT-17521 Fixed
2017-04-21 13:20:49 +02:00
Dmitry Jemerov
aabd560eef
Quickfix to enable language feature works for Maven project
...
#KT-17520 Fixed
2017-04-21 13:20:48 +02:00
Dmitry Jemerov
f389dc068c
Import project configuration specified as Maven properties
...
#KT-17517 Fixed
2017-04-21 13:20:47 +02:00
Dmitry Jemerov
2fd290567c
Remove unnecessary use of API which is not intended for clients
2017-04-21 13:20:46 +02:00
Dmitry Jemerov
34b5920225
Fix order of files with fixed data
2017-04-21 13:20:45 +02:00
Dmitry Jemerov
37d5a42b53
Delete some dead code which also happens to crash on test startup
2017-04-21 13:20:44 +02:00
Dmitry Jemerov
794a21aa9c
Set default jvmTarget when configuring Kotlin with default configurator
2017-04-21 13:20:34 +02:00
Dmitry Jemerov
98903d4e39
Set default jvmTarget in new JPS projects
2017-04-21 13:20:33 +02:00
Dmitry Jemerov
79f228153c
Set default jvmTarget when configuring Kotlin with Maven
2017-04-21 13:20:32 +02:00
Dmitry Jemerov
08dda665aa
Ensure that idea-maven tests run on TeamCity
2017-04-21 13:20:31 +02:00
Dmitry Jemerov
372a65570c
Set default jvmTarget when configuring Kotlin with Gradle
2017-04-21 13:20:30 +02:00
Dmitry Jemerov
1da1fcceb7
KotlinGradleModuleConfigurator: J2K
2017-04-21 13:20:30 +02:00
Dmitry Jemerov
d4b0e85963
KotlinGradleModuleConfigurator: rename to .kt
2017-04-21 13:20:29 +02:00
Dmitry Jemerov
948699a24b
Set default jvmTarget when creating new Gradle project
...
jvmTarget "1.8" is required to be able to use inline functions from
kotlin-stdlib-jre8.
2017-04-21 13:20:28 +02:00
Dmitry Jemerov
d3682025cb
Reuse repository selection logic in KotlinMavenConfigurator
2017-04-21 13:20:27 +02:00
Alexey Sedunov
f575e2710f
Move: Fix processing of implicit extension 'invoke' calls
...
Also fix bogus "unused import" inspection reported on such calls
#KT-17496 Fixed
2017-04-21 13:32:34 +03:00
Alexey Sedunov
c492f339e6
Quick Fixes: Fix AssertionError on rendering type parameter
...
#KT-17404 Fixed
2017-04-21 13:32:33 +03:00
Alexey Sedunov
b80fbe1192
Change Signature: Avoid creating parameters from scratch
...
#KT-15519 Fixed
2017-04-21 13:32:32 +03:00
Alexey Sedunov
c305a42128
Convert Receiver to Parameter: Place new parameter at the start
...
This affects editor template only since Change Signature already
puts converted receiver at the parameter list start by default
#KT-15543 Fixed
2017-04-21 13:32:31 +03:00
Alexey Sedunov
6f984d8260
Gradle Support: Do not create facet for module without kotlin plugin
...
#KT-17265 Fixed
2017-04-21 13:32:30 +03:00
Denis Zharkov
513655239d
Introduce initializer-related properties into JavaField
...
It's much more convenient to use and implement these
properties instead of manual "pattern matching" in the
JavaPropertyInitializerEvaluatorImpl
2017-04-21 12:56:30 +03:00
Denis Zharkov
a5c352dc9f
Add -Xuse-old-class-files-reading CLI argument
...
By default we use the fast implementation in CLI compiler,
but in the most of the tests the old one is enabled
Also add tests on CompiledJava with the fast class reading
implementation
2017-04-21 12:56:29 +03:00
Denis Zharkov
af202ef5bc
Get rid of wrong assumption that Java* classes are always PSI-based
...
See org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass
as a counter-example, these classes may be used now in CLI too and they
aren't built upon Java PSI
2017-04-21 12:56:29 +03:00
Denis Zharkov
d65af8f951
Introduce custom Java model implementation for class-files
...
It's only used for CLI compiler, and it should improve performance
of loading Java descriptors from class-files
For IntelliJ, it leads to 10-15% percent speedup of Kotlin Builder
Before this change, we were using a Java model based on Java PSI that
also read class files, but do it less effectively since it performs
some extra work, that we don't need, e.g. eagerly reading all
the inner classes
2017-04-21 12:56:29 +03:00
Denis Zharkov
88950521a8
Refactor KotlinCliJavaFileManager: make it return JavaClass
...
It seems to be very natural refactoring considering the
following changes: optimizing KotlinCliJavaFileManagerImpl.findClass
to make it read class files manually instead of requesting PSI
2017-04-21 12:48:31 +03:00
Denis Zharkov
506d7ab3d2
Replace JavaClass.innerClasses with innerClassNames
...
Also add a findInnerClass method that can find an inner class
by its name
This change helps to avoid loading all the inner class files
eagerly (that may be rather slow), while all the names are available
in InnerClass attribute
2017-04-21 12:48:31 +03:00
Denis Zharkov
5936424659
Replace JavaClassifierType.canonicalText with classifierQualifiedName
...
The reason is that canonicalText requires some additional
computations to be done when reading class files, while
in fact we only need a class name of the type
2017-04-21 12:48:31 +03:00
Denis Zharkov
aba8b4e2ba
Add cache for top-level classes' virtual files
...
The reason is that searching for a class in a VirtualFile-based
directory (i.e. in a package) happens for O(|amount-of-files-in-dir|),
and it may be rather crucial for packages with a huge amount
of classes
Note that it was checked that the cache should not take a lot of heap
since we call findClass only for really existing classes:
see org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt:48
For example, there are no more than 10k classes for the whole
intelliJ project (but the cache is flushed for each module)
2017-04-21 12:48:31 +03:00
Denis Zharkov
06ffbb7b93
Minor. Avoid repeating calls to isRaw
2017-04-21 12:48:31 +03:00
Denis Zharkov
aef1ca10f7
Add additional cache for packages' directories
...
It's important because even if we know the root where
the package is located we need to go through its parts,
and it's not as fast as it could be since implementation
of VirtualFile.findChild() traverse all files in the directory
to find the relevant one
2017-04-21 12:48:31 +03:00
Denis Zharkov
e4cb5496b8
Optimize getSingleAbstractMethodOrNull
...
Searching for the single abstract method leads to computing
whole member scopes of given intrefaces, especially when
they contain a lot of methods (i.e. they're definitely not SAMs)
On the other side this method is very hot because it's called
for each Java interface used as a type for some value parameter
(for building SAM adapters)
The idea is to apply some heuristics to understand using only
JavaMethod and supertypes that this interface is definitely not a SAM
2017-04-21 12:48:31 +03:00
Alexander Udalov
db3f70cfe9
Drop unneeded hack relating to matching header class to impl typealias
...
This is not needed anymore because we use a special TypeCheckerContext
which correctly matches header class to impl typealias.
Also fix 'platformModule' in areCompatibleClassifiers: it's not b's
module (b is already the expansion of a typealias), but the module of
"other", original 'impl' classifier
2017-04-20 22:33:26 +03:00
Alexander Udalov
ea727ff3f0
Use header->impl mapping in HeaderImplDeclarationChecker.areCompatibleTypes
...
Construct a special TypeCheckingContext that is aware of the magic
behind the "impl typealias" that implements a "header class"
#KT-16986 Fixed
2017-04-20 22:33:25 +03:00
Alexander Udalov
1ce4612f74
Refactor module usages in HeaderImplDeclarationChecker
...
Instead of a vague name "moduleToCheck", use explicit names
"commonModule" and "platformModule".
2017-04-20 22:13:32 +03:00
Alexander Udalov
a2e050a3b9
Use correct function to find header for impl in IDE
...
Also do not call isHeader/isImpl because the returned declarations are
guaranteed to be isHeader in findCompatibleHeaderForImpl and isImpl in
findCompatibleImplForHeader
2017-04-20 22:13:32 +03:00
Alexander Udalov
af4f96fb52
Refactor HeaderImplDeclarationChecker
...
Build the compatibility map when looking for header given an impl, in
the same way as it's done for the search of impl given a header. The map
is mostly unused now (only its value at key=Compatible is used), but
will be used in the future to improve the diagnostic messages here
2017-04-20 22:13:32 +03:00
Simon Ogorodnik
4978a204f0
Make LibraryDependenciesCache cache again!
...
#KT-17495 fixed
2017-04-20 20:23:11 +03:00
Mikhail Glukhikh
99653b9afc
Refactoring: merge doTest in AbstractMultiModuleHighlightingTest
2017-04-20 19:13:20 +03:00
Mikhail Glukhikh
266d36f289
Refactoring: rename header to common in MultiModuleLineMarkerTest
2017-04-20 19:12:13 +03:00
Mikhail Glukhikh
3a1866b405
Refactoring: introduce doTest in MultiModuleLineMarkerTest
2017-04-20 19:12:11 +03:00
Christopher Horner
8df40eaa46
Add support for RxJava's nullability annotations.
2017-04-20 17:20:39 +03:00
Alexander Udalov
aee5326ca7
CLI: refactor argument validation out of parsing
2017-04-20 16:20:54 +03:00
Alexander Udalov
8aba862e97
CLI: use "--" to separate free arguments from compiler options
...
#KT-9370 Fixed
2017-04-20 16:20:54 +03:00
Zalim Bashorov
baef649fe4
KJS: change asserter to DefaultAsserter for JS Backend tests
...
It required for fix JsCodegenBoxTestGenerated.
Right now QUnitAsserter used as default asserter in kotlin-test
and we don't want to change it now to avoid breaking stdlib-js tests
and maybe user code.
2017-04-20 16:19:06 +03:00
Zalim Bashorov
2f4119a8ae
KJS: remove obsolete code related to Unit testing
2017-04-20 16:19:06 +03:00
Zalim Bashorov
7cf684f624
KJS: remove unnecessary files from testData
2017-04-20 16:19:06 +03:00
Zalim Bashorov
c112542935
KJS: remove unnecessary test runners (mostly for stdlib)
...
Stdlib tests run separately via gradle.
2017-04-20 16:19:05 +03:00
Zalim Bashorov
5ef75e6e2b
KJS: remove PackageTest.java and move actual files to box/
2017-04-20 16:19:04 +03:00
Vyacheslav Gerasimov
dcae66a727
Add quickfix for INAPPLICABLE_JVM_FIELD
...
replaces with 'const' when possible
#KT-10981 Fixed
2017-04-20 12:10:20 +03:00
Vyacheslav Gerasimov
199bff7e70
Add quickfix for 'Illegal inline parameter modifier'
...
Adds inline to function if crossinline is used on parameter
#KT-14046 Fixed
2017-04-20 12:09:53 +03:00
Dmitry Jemerov
49a211b3cd
Ensure that UElement.nameIdentifier.containingFile is a real file
...
This is needed to report inspection problems on UAST elements.
2017-04-20 11:02:56 +02:00
Dmitry Jemerov
d001cea4c3
Fix tests: add ACTION tags for newly added actions
2017-04-20 11:02:40 +02:00
Dmitry Petrov
a3985bbdd3
Substitute underlying constructor when substituting type alias constructor
...
KT-17426 Constructor call of typealiased class gets suspicious type arguemnts
2017-04-20 10:20:36 +03:00
Simon Ogorodnik
02fec6e4a5
Add fine check of type inference when adding <> in completion
...
Add check if type inferred via type parameter of upper bound
of extension receiver or value argument
#KT-16161 fixed
2017-04-19 21:27:31 +03:00
Zalim Bashorov
c021af0fef
KJS: fix non-local return inside catch block
2017-04-19 20:20:21 +03:00
Zalim Bashorov
29e7bcce65
Add explicitly the proguard rule to save JAXPParserFactory#createParser
...
And remove obsolete rules.
2017-04-19 20:18:21 +03:00
Zalim Bashorov
d64140a11c
Add jars to intellij_core explicitly
...
It prevents unintended using jars from core dir,
also, it allowis us gradually remove a dependency on some jars.
2017-04-19 20:18:20 +03:00
Zalim Bashorov
2c69198926
Make return type of KotlinScriptDefinitionProvider.getInstance nullable
...
For example service can be absent in Kotlin JS only compiler.
2017-04-19 20:18:20 +03:00
Anton Bannykh
d5bcf18e5c
JS: disable JVM specific part of internal visibility resolution
2017-04-19 18:53:27 +03:00
Ilya Gorbunov
2db8714fc5
Fix null values being treated as missing in 'put' method of a specialized string-keyed map
2017-04-19 18:32:47 +03:00
Mikhail Glukhikh
8fdb611e3b
Do not try to inline properties from decompiled files
...
This removes GUI freeze for library properties #KT-17234 Fixed
2017-04-19 18:27:29 +03:00
Mikhail Glukhikh
983611a75f
Fix in createBlockStringTemplateEntry (use createExpressionByPattern)
...
This fixes one more broken test for inlining
2017-04-19 18:27:28 +03:00
Mikhail Glukhikh
6571a573f1
Use correct callElement for variable invoke in replacer
...
Check only 'status.isSuccess' before inlining, no descriptor check
Add two tests and fixes two other
2017-04-19 18:27:27 +03:00
Mikhail Glukhikh
4ef0096d46
Refactoring: inline val / fun now use the common inliner
...
This prevents their inconsistent work in some situations
NB: breaks three tests if used alone
2017-04-19 18:27:26 +03:00
Mikhail Glukhikh
e6fa7356e1
Inline: support compound case without containing block #KT-17296 Fixed
2017-04-19 18:27:25 +03:00
Mikhail Glukhikh
ade838bff2
Inline fun: remove recursion inside includesCallOf
...
Probably #KT-17330 Fixed
2017-04-19 18:27:24 +03:00
Ilya Gorbunov
a87da4338f
arrayIterators: Restore index to the previous value after NoSuchElementException has been thrown
...
Relates to #KT-17453
2017-04-19 18:12:58 +03:00
Ilya Chernikov
731dcf5d6f
minor: fix after faulty rebase
2017-04-19 15:22:15 +02:00
Ilya Chernikov
c91a3f8bf0
Add sam-with-receiver and source-sections compiler plugins to maven
...
rename source-sections compiler plugin jar in the dist (add kotlin- prefix),
according to the agreed naming scheme for the artefacts. (The renaming of the
other plugins should follow.)
in addition configure proguard to retain VirtualFile members, since they
are used in the source-sections plugin
2017-04-19 15:22:15 +02:00
Ilya Chernikov
ea71d57808
Use script-runtime properly in IDEA project:
...
use it from the installed plugin for dependent modules (frontend)
use it from bootstrap in the plugin being built
also drop unused daemon-client from the plugin
This makes it consistent with ant build and allow building idea project
without prior ant dist
2017-04-19 15:22:15 +02:00
Sergey Igushkin
2360d5f330
Changed to prepending annotation processor path instead of appending it
...
to classpath and existing annotation processors.
2017-04-19 16:06:55 +03:00
Mikhail Glukhikh
91f7f19902
ExpressionReplacementPerformer: handle string templates accurately
2017-04-19 13:12:59 +03:00
Mikhail Glukhikh
815a367978
ReplacementPerformer: always copy statement to insert #KT-17273 Fixed
2017-04-19 13:12:58 +03:00
Mikhail Glukhikh
0f6b9473e9
Inliner: don't take into account nonexistent PSI to keep parameter
...
So #KT-17272 Fixed
2017-04-19 13:12:57 +03:00
Mikhail Glukhikh
b8cc7c2ca6
Add type arguments more accurately during inlining
2017-04-19 13:12:56 +03:00
Mikhail Glukhikh
f8e1f5e613
Inliner: specify explicit lambda signature for calls with lambdas
...
So #KT-17213 Fixed
So #KT-17395 Fixed
2017-04-19 13:12:55 +03:00
Mikhail Glukhikh
02e9a3d027
Specify lambda signature: handle special parameters correctly
...
So #KT-17372 Fixed
2017-04-19 13:12:53 +03:00
Mikhail Glukhikh
6453e10d44
If necessary, add parameter types while inlining lambda
2017-04-19 13:12:52 +03:00
Mikhail Glukhikh
666133beee
Minor refactoring (.replaced instead of .replace)
2017-04-19 13:12:51 +03:00
Alexander Podkhalyuzin
75d231cc37
Deprecated setting was used for import optimization on the fly. ( #1049 )
2017-04-19 11:57:15 +02:00
AJ Alt
8d8f5aa3e0
Update usage of deprecated sourceMappingURL format
...
The usage of `//@` in sourceMappingURL pragmas was deprecated in favor of `//#`.
The deprecation happened in 2013, and was motivated by incompatibilities in IE.
The Chromium and Mozilla issues tracking the change:
https://bugs.chromium.org/p/chromium/issues/detail?id=239660
https://bugzilla.mozilla.org/show_bug.cgi?id=870361
And the Mozilla documentation on the warning that is issued as a result of using the deprecated syntax:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default
2017-04-19 12:54:45 +03:00
Dmitry Jemerov
c7bcf4bea7
Don't assert element validity in diagnostic code (EA-92848)
2017-04-19 11:49:12 +02:00
Dmitry Jemerov
ffa77c55c4
Handle the case when there's no current project view pane (EA-91198)
2017-04-19 11:49:12 +02:00
Dmitry Jemerov
f35079055a
Don't try to import elements that don't belong to any module (EA-91890)
2017-04-19 11:49:12 +02:00
Dmitry Jemerov
a76d72ea52
Wrap index access in read actions (EA-96128)
2017-04-19 11:49:12 +02:00
Dmitry Jemerov
a96eaa2fa9
Remove incorrect @NotNull annotation on getIcon() (EA-79802)
2017-04-19 11:49:12 +02:00
Dmitry Jemerov
03cef30717
Correctly honor expected type when converting string templates to UAST
...
#KT-17315 Fixed
#KT-17316 Fixed
2017-04-19 11:46:13 +02:00
Dmitry Jemerov
f801c5f3f8
Avoid another case of reading file content when building stubs
...
Do not read file content in isKotlinInternalCompiledFile() if possible
2017-04-19 11:36:10 +02:00
shiraji
83169ad781
"Add open to callable" intention introduced #KT-16786 Fixed
2017-04-19 11:37:48 +03:00
Ilya Chernikov
cdb42c989e
Relax error reporting on script dependencies resolving
...
to avoid exceptions reported on the gradle model problems, e.g. missing
dependencies
2017-04-19 08:14:30 +02:00
Alexander Udalov
134bec6de8
Move dependency on built-ins in IDE higher for common modules
...
See the comment in ModuleInfo
2017-04-18 22:58:56 +03:00
Alexander Udalov
a96b67ea29
Refactor, move TargetPlatform to ModuleInfo
2017-04-18 22:58:56 +03:00
Alexander Udalov
9a8dc14616
Do not add JS/JVM libraries to common library dependencies in LibraryDependenciesCache
...
Currently kotlin-stdlib-common doesn't have serialized built-ins inside,
so in a multiplatform project, it was possible that either JVM or JS
built-ins (depending on the order of entries in the project
configuration) were going to be used for the analysis of a common module
depending on kotlin-stdlib-common. This resulted, for example, in
additional built-in member calls (e.g. "List.stream()") being unresolved
in JVM modules when they used the List instance coming from the common
module (see the added test)
2017-04-18 22:58:56 +03:00
Alexander Udalov
4c2c734733
Minor cleanup in LibraryDependenciesCache
2017-04-18 22:58:56 +03:00
Ilya Gorbunov
59dc0f57fc
Clarify copyRecursively behavior in case of a single file.
2017-04-18 21:26:55 +03:00
Shaun Reich
7ebd86725f
Fix FileTreeWalk doc typo/grammar
2017-04-18 21:26:53 +03:00
Ilya Gorbunov
ea18282f4c
Minor: reformat docs to distinguish summary
2017-04-18 21:26:52 +03:00
Vyacheslav Gerasimov
06c8de02b5
Add intentions for registering Android components in manifest
...
Activity, Service, BroadcastReceiver
#KT-17389 Fixed
2017-04-18 19:04:15 +03:00
Vyacheslav Gerasimov
5b58a6f9e8
Add intentions Add/Remove/Redo parcelable implementation
...
#KT-17465 Fixed
#KT-12049 Fixed
2017-04-18 19:04:14 +03:00
Ilya Gorbunov
37c3d8f204
Sort out warnings related to inline and library functions in stdlib-js
2017-04-18 18:51:20 +03:00
Ilya Gorbunov
6ae19e03d5
Clean warnings and refactor stdlib tests.
...
Merge RangeJVMTest into RangeTest.
2017-04-18 18:51:20 +03:00
Ilya Gorbunov
ac46f1e23d
Cleanup warnings in stdlib-js
2017-04-18 18:51:20 +03:00
Ilya Gorbunov
cb186aabf9
Another workaround for IDEA shared source root limitation
2017-04-18 18:51:20 +03:00
Ilya Gorbunov
4a5d8534c1
Fix array iterators to adhere to Iterator contract
...
#KT-17453 Fixed
Change expected exceptions in tests.
2017-04-18 18:51:20 +03:00
Simon Ogorodnik
2380e0bacc
Optimize PluginDeclarationProviderFactory.getStubBasedPackageMemberDeclarationProvider
...
Add cache for fast package exists check in specific module
#KT-16850 fixed
2017-04-18 17:58:45 +03:00
Simon Ogorodnik
9ca65fcf99
Fix addition of wrong java.lang imports on optimize imports
...
Add check to star importer, to not import already imported fqNames
#KT-15273 fixed
2017-04-18 17:45:45 +03:00
Dmitry Jemerov
dd4a5944f1
Delegate getContaingFile() for UAST declarations to Kotlin origin
...
This is required to be able to report inspection problems on such
elements.
2017-04-18 15:13:34 +02:00
Ilya Chernikov
2a9de93a82
Attempt to eliminate crashes if script template is broken
...
Attempts to fix issues similar to EA-100334 completely
2017-04-18 14:57:31 +02:00
Ilya Chernikov
7754e90ad4
Restore another part of script template resolving for even older legacy code
...
complements d284979
Fixes EA-100334
2017-04-18 14:57:30 +02:00
Nikolay Krasko
5dbf3b6b4d
Allow search usages for declarations when correct isEquivalentTo
...
Now it's possible to do find usages for other languages when light
elements are used.
Revert efb36f4a49 and revise fix of KT-7983:
Don't consider local and non-local class with same fqn equivalent.
#KT-7983 Fixed
2017-04-18 15:25:08 +03:00
Nikolay Krasko
eb941c75f9
Minor: check that invoke() usages search doesn't find overrides
2017-04-18 15:25:08 +03:00
Nikolay Krasko
d0a26cf052
Log shifting to plain text search for tests
2017-04-18 15:25:08 +03:00
Nikolay Krasko
6e3016284a
Test find usages behaviour when failing to text search on Groovy files
...
Set test directory to directory with test files (not relative to
findUsages folder). This way test will be configured as if all testdata
is under source root (previously it was copied into package under path
with findUsages) and resolvers will see classes under root package.
#KT-14974 In Progress
2017-04-18 15:25:08 +03:00
Nikolay Krasko
e1de0b9cd8
Fix bad language check in find usages that caused falling to text search
2017-04-18 15:25:08 +03:00
Nikolay Krasko
331279583d
Restores test failures on unknown directive
2017-04-18 15:25:07 +03:00
Pavel V. Talanov
ec4da854b8
Codegen: fix NPE in NO_ANNOTATION_VISITOR
...
EA-100245 fixed
2017-04-18 14:59:49 +03:00
Pavel V. Talanov
8eb7117bf1
Light class codegen: do not apply compiler plugins
...
Applying plugins leads to failures when matching members in LazyLightClassDataHolder
because plugins rely on analysis results
This decision has its drawbacks (java won't see results of plugin execution)
but more work on light classes is needed if we want to support this usecase
We can argue that plugins should only generate synthetic members
but there is no such restriction atm
2017-04-18 14:59:47 +03:00
Pavel V. Talanov
bea1da5c7a
KtLazyLightClass: do not store references to LightClassDataHolder
...
Otherwise any cached reference to light class can lead to severe memory leaks in IDE
since LightClassBuiderResult holds GenerationState which holds ModuleDescriptor
2017-04-18 14:59:45 +03:00
Pavel V. Talanov
3401529be1
IDELightClassContexts#isDummyResolveApplicable: add missing check
...
Missing check caused exact resolve being applied to every class that had 'equals' overridden
2017-04-18 14:59:43 +03:00
Pavel V. Talanov
10aa9c5910
PsiBasedClassResolver: get default imports without resolution facade
...
Using DefaultImportProvider is expensive in this scenario
2017-04-18 14:59:41 +03:00
Pavel V. Talanov
c436a9af07
TargetPlatform#getDefaultImports(): cache result in all implementations
2017-04-18 14:59:39 +03:00
Pavel V. Talanov
421b785697
Minor: fix erroneous refactoring
2017-04-18 14:59:37 +03:00
Ilya Gorbunov
f22375601b
Remove unneeded suppressions
2017-04-18 12:47:11 +03:00
Ilya Gorbunov
8f452ed046
Cleanup warnings in stdlib and generated code
2017-04-18 12:47:04 +03:00
Ilya Gorbunov
6af986cfdd
Refactor serialization tests and move them to test/io package
...
Add tests for singleton deserializing.
2017-04-18 12:46:52 +03:00
Ilya Gorbunov
b67aed61ce
Fix preprocessor failure to to create directory when the first operation is modification
2017-04-18 12:46:43 +03:00
Sergey Mashkov
96160606ba
Maven: KT-15050 setup logger so IDEA's core could log error
...
Introduce system property kotlin.compiler.X.enable.idea.logger=true
The reason is that I suspect that the error is somewhere at com.intellij.ide.plugins.PluginManagerCore#loadDescriptorFromJar but unfortunately default logger doesn't log messages at "info" log level so we can't see why exactly does it fail.
Users can enable IDEA's logger to see more details.
2017-04-18 12:31:39 +03:00
Alexey Andreev
7e6df03421
Fix improper handling of coroutine interceptors
...
Don't use coroutine facade in following cases:
* When calling coroutine functions in non-suspend mode (i.e.
suspend flag is either false or skipped).
* When passing continuation from suspend function to suspend function.
Use facade only for corresponding intrinsics.
Reason: interceptor should not be called on each suspend function
invocation, it should be called after resume from innermost
suspend function.
Fix KT-17067. The example provided with the issue is very similar to
dispatchResume.kt which passes after these changes.
Add test to prove that KT-17446 is no more reproducible.
2017-04-18 11:22:18 +03:00
Mikhail Zarechenskiy
f3ed75998e
Simplify resolve for control labels by using PSI
...
Diagnostic `NOT_A_RETURN_LABEL` wasn't quite useful and its eliminating allows to simplify label resolver a lot. It could be also added using PSI
2017-04-18 10:23:19 +03:00
Alexey Sedunov
e79a7d3e94
Change Signature: Update test data
2017-04-17 23:00:20 +03:00
Alexey Sedunov
45929fd3e3
Change Signature: Invalidate ChangeInfo after the refactoring
...
The goal is to avoid keeping all semantic information used by
KotlinChangeInfo in UndoableAction produced by the refactoring
#KT-17333 Fixed
2017-04-17 23:00:19 +03:00
Alexey Sedunov
b33b06722d
Change Signature: Support header/impl declarations
2017-04-17 23:00:18 +03:00
Alexey Sedunov
66265972aa
Multiplatform Project: Fix impl-by-header search and vice versa
2017-04-17 23:00:17 +03:00
Alexey Sedunov
e1503d80f2
Test Framework: Move common members to KotlinMultiFileTestCase
2017-04-17 23:00:16 +03:00
Alexey Sedunov
d78828001d
Rename: Support header/impl declarations
2017-04-17 23:00:15 +03:00
Alexey Sedunov
701ba5b59b
Rename: Support rename by caret in multi-module tests
2017-04-17 23:00:13 +03:00
Alexey Sedunov
b65e082425
Test Framework: Fix module creation in multi-module tests
2017-04-17 23:00:12 +03:00
Alexey Sedunov
69ef8e89a9
Move: Fix NPE on moving file to non-source directory
2017-04-17 23:00:11 +03:00
Alexey Sedunov
b229eeeb47
Move: Prevent running refactoring helpers on partial move
...
It may lead to some imports being wringly removed
due to their references being unresolved yet
Also fix NPE on package rename via directory move
2017-04-17 23:00:10 +03:00
Alexey Sedunov
aa0f0ef02d
Presentation: Do not use resolve to compute element description
...
Invoking analysis on EDT may degrade editor performance
2017-04-17 23:00:08 +03:00
Alexey Sedunov
8df502de84
Move To Upper Level: Fix target package computation
...
#KT-13466 Fixed
2017-04-17 23:00:07 +03:00
Alexey Sedunov
fc33d89e28
Move Member out of Companion: Improve conflict checking
...
Also do not show conflict dialog under write action
2017-04-17 23:00:06 +03:00
Alexander Udalov
7a25af0f2f
Fix NPE caused by KotlinCompileMojoBase if no "Xcoroutines" value is passed
...
NPE was happening in CLICompiler.chooseCoroutinesApplicabilityLevel
2017-04-17 18:40:35 +03:00
Zalim Bashorov
9783a31779
Remove kotlin-reflect.jar dependency from util module and move reflectionUtil.kt closer to "clients"
...
Main goal is get rid of kotlin-reflect.jar from modules what required for minimal compiler.jar which can compile Kotlin only to JS to make it smaller.
2017-04-17 18:18:38 +03:00
Zalim Bashorov
f32fcd4ec1
Minor: remove temporary prefix from KotlinScriptExternalImportsProvider.kt
...
Rename was required to preserve git history of original file (see previous commit).
2017-04-17 18:18:36 +03:00
Zalim Bashorov
51e84f7ce4
Move some script related part of frontend to separate module to avoid using kotlin-reflect.jar in frontend module
...
Main goal is get rid of kotlin-reflect.jar from modules what required for minimal compiler.jar which can compile Kotlin only to JS to make it smaller.
2017-04-17 18:18:35 +03:00
Zalim Bashorov
05c3e7e81d
Don't export kotlin-reflect form util module and add it explicitly where it's required.
...
Also, remove kotlin-reflect form container module.
Main goal is get rid of kotlin-reflect.jar from modules what required for minimal compiler.jar which can compile Kotlin only to JS to make it smaller.
2017-04-17 18:18:31 +03:00
Zalim Bashorov
465582c15b
Minor: remove unused UserDataHolderImpl
2017-04-17 18:18:30 +03:00
Mikhail Zarechenskiy
32f609ceee
Check lambda parameter for name shadowing
...
#KT-5160 Fixed
2017-04-17 17:12:44 +03:00
Mikhael Bogdanov
708bfdbd5f
Generate line numbers for function call parameters
...
Before this fix line numbers for function call arguments were not generated,
so if argument was on another line than function call it was
impossible to stop on argument line during debugging.
Now line number for each argument is generated if necessary
(another line than function call line).
#KT-17144 Fixed
2017-04-17 16:09:59 +02:00
Mikhail Zarechenskiy
b60efab62e
Fix using qualified this with labeled function literals
...
#KT-9251 Fixed
2017-04-17 16:21:07 +03:00
Mikhail Zarechenskiy
b17b3f4c63
Resolve local function parameters with function inner scope
...
This allows to use type parameters and value paramters in default value expressions
#KT-7984 Fixed
#KT-7985 Fixed
2017-04-17 16:21:06 +03:00
Mikhail Zarechenskiy
e86d52b681
Fix return type of private members that return anonymous object
...
#KT-16813 Fixed
Anonymous objects returned from private-in-file members should behave as for private class members
2017-04-17 16:21:05 +03:00
Mikhail Zarechenskiy
44170f3357
Fix typo in DSL marker message
...
#KT-17318 Fixed
2017-04-17 16:21:04 +03:00
Mikhail Zarechenskiy
1fbd8f3f53
Support automatic labeling for infix calls
...
#KT-8877 Fixed
2017-04-17 16:21:03 +03:00
Mikhail Zarechenskiy
6a352bccb6
Resolve control label locally when label name clashes with fun name
...
#KT-5354 Fixed
#KT-15085 Fixed
2017-04-17 16:21:02 +03:00
Mikhail Zarechenskiy
1c3f546319
J2K: convert & prettify LabelResolver
2017-04-17 16:21:01 +03:00
Mikhail Zarechenskiy
9ebbb73487
J2K: rename LabelResolver
2017-04-17 16:21:00 +03:00
Alexander Udalov
027b83a252
Minor, pass coroutines state explicitly in maven plugin
2017-04-17 15:51:43 +03:00
Alexander Udalov
dc5e51f4ac
Do not parse/serialize additional compiler arguments in JPS
...
This is mostly a revert of e5a128ab , where the issue of the compiler
failing on repeated command line arguments was worked around. Now the
compiler behaves more properly: it uses the last passed argument and its
value, and prints a warning that several values have been passed. With
this behavior, the workaround is no longer necessary
2017-04-17 15:51:43 +03:00
Ilya Gorbunov
723642c9d4
binary-compatibility-validator: depend on required artifacts to ensure they are built.
...
Read dumped declarations lazily in order not to fail on class initialization.
2017-04-17 15:17:02 +03:00
Ilya Gorbunov
94895c4e4d
Clean warnings in binary-compatibility-validator cases
2017-04-17 14:50:07 +03:00
Mikhael Bogdanov
46cdf0215e
Add codegen tests with substituted bytecode version (1.8->1.9)
2017-04-17 13:22:04 +02:00
Alexey Andreev
b11e33901b
Fix parsing of JavaScript number literals out of integer range
...
Fix KT-17219
2017-04-17 14:17:08 +03:00
Alexander Udalov
b7de272884
CLI: support delimiter for array arguments
...
The " " delimiter is used in kotlin-native (see
K2NativeCompilerArguments)
2017-04-17 11:51:33 +03:00
Alexander Udalov
ae1fb16fe8
Fix compilation of kotlin-gradle-plugin
2017-04-17 11:51:08 +03:00
Alexander Udalov
10f2e9d33a
Revert usages of -X arguments to old form in some places
...
We use the old compiler in Gradle build and in GradleFacetImportTest, so
some changes in f4b6db4 should not have been made yet
2017-04-17 11:33:58 +03:00
Alexander Udalov
072f87ddab
Introduce -Xintellij-plugin-root, deprecate CompilerJarLocator
2017-04-14 20:13:11 +03:00
Alexander Udalov
ce6676baa8
Do not print usage if wrong argument is passed, do not exit with INTERNAL_ERROR
...
This is a normal situation, not an internal error of the compiler, so
return COMPILATION_ERROR instead
2017-04-14 20:07:54 +03:00
Alexander Udalov
ff846e787f
Report warning for non-boolean CLI argument passed multiple times
...
Only if its values are different, see the test
2017-04-14 20:07:54 +03:00
Alexander Udalov
be54e4b93b
Get rid of coroutinesWarn/coroutinesEnable/coroutinesError
...
Use a single coroutinesState instead. Change the coroutines state in
some tests from "warn" to "enable"/"error" to test that deserialization
of older config files works ("warn" is the default value, so it wasn't
testing anything here)
2017-04-14 20:07:54 +03:00
Alexander Udalov
f4b6db4dc0
Change format of -X arguments to require value after '='
...
Report a warning when an argument is passed in the old form (with the
whitespace)
#KT-17264 Fixed
2017-04-14 20:07:54 +03:00
Alexander Udalov
78c0111c6e
Drop cli-parser, use simple reflection-based parser instead
...
The main reason of this change is that major changes are required in how
command line arguments are parsed in kotlinc, and it's much easier to
make them in our own codebase (given that the code is short and simple
enough) than in a third-party library
2017-04-14 20:07:53 +03:00
Sergey Mashkov
007408c792
Maven: rename completion providers
2017-04-14 13:27:09 +03:00
Sergey Mashkov
c890200f08
Maven: show non-stable language/api versions only in internal mode
2017-04-14 13:27:08 +03:00
Sergey Mashkov
a22ed0f7c0
Maven: minor: fix comment
2017-04-14 13:27:08 +03:00
Sergey Mashkov
711398f14f
Maven: eliminate constants in maven.xml
2017-04-14 13:27:07 +03:00
Sergey Mashkov
a427248969
Maven: add more plugin parameters IDE support
2017-04-14 13:27:07 +03:00
Sergey Mashkov
2521dacc25
Maven: KT-17093 Import from maven: please provide a special tag for coroutine option
2017-04-14 13:27:06 +03:00
Sergey Mashkov
5010047b1b
KT-16283 Maven compiler plugin warns, "Source root doesn't exist"
2017-04-14 13:27:05 +03:00
Sergey Mashkov
40a5e646c6
KT-10028 Support parallel builds in maven
...
mark all the mojos as not thread safe so Maven should never run them in parallel
2017-04-14 13:27:05 +03:00
Sergey Mashkov
307fdd1024
KT-16762 Maven: JS compiler option main is missing
2017-04-14 13:27:04 +03:00
Sergey Mashkov
6de0d79a78
KT-16743 Update configuration options in Kotlin Maven plugin
...
deprecate parameters module and testModule
2017-04-14 13:27:04 +03:00
Sergey Mashkov
de35863b57
KT-16743 Update configuration options in Kotlin Maven plugin
...
add javaParameters configuration parameter
2017-04-14 13:27:03 +03:00
Sergey Mashkov
e6b729d38b
KT-16743 Update configuration options in Kotlin Maven plugin
...
deprecate parameters module and testModule
2017-04-14 13:27:02 +03:00
Alexey Andreev
e182290f54
Fix sorting of source files before compilation.
...
This should fix unstable generated JS between recompilations.
2017-04-14 11:46:52 +03:00
Mikhael Bogdanov
a35ad64454
Disable reflection tests on android
2017-04-14 10:33:13 +02:00
Alexander Udalov
7fe9b99087
Support different target platforms for modules in AnalyzerFacade
...
Instead of reusing the same AnalyzerFacade that is used for resolution
of a module to resolve its dependencies, analyze each dependency
module/library with a facade depending on its target platform. Introduce
and use CommonLibraryDetectionUtil in addition to
KotlinJavaScriptLibraryDetectionUtil, to detect common libraries (with
.kotlin_metadata files).
Note that before multi-platform projects, this was not needed because
there were only two platforms (JVM and JS), and JVM module had only JVM
modules/libraries as dependencies, JS module had only JS
modules/libraries as dependencies. Now, for example, a JVM module can
have a common module/library as a dependency, and it would be incorrect
to analyze that dependency with JvmAnalyzerFacade because that facade
does not know anything about .kotlin_metadata files.
The changes in Dsl.kt and KotlinCacheServiceImpl.kt are needed because
PsiElement.getJavaDescriptorResolver, called from some IDE code, started
to fail on a common module, because the container for a common module
does not have the JavaDescriptorResolver
2017-04-14 00:44:00 +03:00
Alexander Udalov
722687acd6
Refactor multiplatform test cases in MultiModuleHighlightingTest
...
Groupt multiplatform test cases in a nested class, get rid of duplicated
code, rename "header" -> "common" where it relates to the common module
2017-04-14 00:43:59 +03:00
Alexey Tsvetkov
c41818b6a7
Minor: use JDK_18 instead of JAVA_HOME to run Maven IC tests
2017-04-13 21:53:28 +03:00
Alexey Tsvetkov
753c99a377
Wrap getDaemonConnection in try-catch
...
Just in case it would throw one day
2017-04-13 21:53:28 +03:00
Alexey Tsvetkov
6b315259d3
Fix "Unexpected message" from daemon when CompilerMessageLocation is null
...
Recently the CompilerMessageLocation.NO_LOCATION was replaced with a null value.
This caused daemon clients to report "Unexpected message" for compiler messages without location.
2017-04-13 21:53:28 +03:00
Alexey Tsvetkov
e160931ec5
Delete daemon client file when Gradle process stops
...
#KT-17177 fixed
2017-04-13 21:53:28 +03:00
Alexey Tsvetkov
34a8896ad4
Minor: rename test KotlinDaemonAdvaced->KotlinDaemonIT
2017-04-13 21:53:28 +03:00
Mikhael Bogdanov
a6c9cf7d3f
Minor. Cleanup code
2017-04-13 19:04:47 +02:00
Mikhael Bogdanov
3df32ad425
Add flag for dex verification
2017-04-13 19:04:45 +02:00
Mikhael Bogdanov
df65b3f6b3
Refactor test framework to process directives in one place
...
Perform directive processing in base test class
2017-04-13 19:04:44 +02:00
Alexander Udalov
c2f275faec
Refactor codegen test utilities
...
Use GenerationUtils.compileFiles instead of
CodegenTestUtil.generateFiles
2017-04-13 19:04:43 +02:00
Mikhael Bogdanov
7613ec54f5
Add run configuration to run common java backend tests under jdk 9
...
With jvmTarget 1.6 and 1.8
2017-04-13 17:54:39 +02:00
Mikhael Bogdanov
a8382c25b2
Add run configuration to run common java backend tests on jdk 8 with jvm target 1.8
2017-04-13 17:54:38 +02:00
Mikhael Bogdanov
806db3852d
Support for custom default jvmTarget in jvm backend tests
2017-04-13 17:54:37 +02:00
Mikhael Bogdanov
2bb5b3881a
Run dex checker only on java 6 files
2017-04-13 17:54:36 +02:00
Mikhael Bogdanov
73d771717c
Don't assign classFileFactory outside generateClassesInFile
...
Otherwise dex cheker wouldn't be called
2017-04-13 17:54:35 +02:00
Alexey Andreev
5c1882bfcc
Unmute test that passes
2017-04-13 17:33:15 +03:00
Dmitry Petrov
e0ebaac70c
Perform additional checks on catch parameter declaration
...
KT-8320 It should not be possible to catch a type parameter type
KT-7645 Prohibit default value for `catch`-block parameter
2017-04-13 16:23:17 +03:00
Dmitry Petrov
5ccfbcbe22
KT-4960 Redeclaration is not reported for type parameters of interfaces
...
When resolving a class body for a class without a primary constructor
(e.g., an interface), no checks were performed for redeclarations
in the corresponding class header.
Creating & initializing a lexical scope of an appropriate kind will do it.
Note that since class has no primary constructor, only type parameters
could be redeclared (and that's KT-4960).
2017-04-13 15:57:24 +03:00
Alexander Udalov
eb0c0a8869
Fix incorrect logic in KotlinJavaScriptLibraryDetectionUtil
...
Previously the lambda almost always returned false, because the library
root is never a JS file with metadata, which led to
processFilesRecursively always returning false, which led to every
library being detected as a Kotlin/JS library here
2017-04-13 14:39:07 +03:00
Nikolay Krasko
01782fb4b9
Fix build: restore lost imports
2017-04-13 14:30:17 +03:00
Alexander Udalov
bbdff8c7ce
Move DeclarationDescriptor.substitute to separate interface Substitutable
...
To get rid of pointless/confusing implementations in ModuleDescriptor,
PackageViewDescriptor, TypeParameterDescriptor and others.
Note that there are still implementations that do not make sense, for
example in those subclasses of VariableDescriptor which are not also
subclasses of CallableMemberDescriptor (e.g. ValueParameterDescriptor).
Those can be removed by making CallableMemberDescriptor (instead of
CallableDescriptor) inherit from Substitutable. However, that would
require more changes in the compiler because CallableDescriptor is used
rather often in places where in fact only CallableMemberDescriptor
instances can appear.
Explicit return types and casts are required in some places now because
there's no single non-trivial supertype for
ClassifierDescriptorWithTypeParameters and CallableDescriptor.
Previously it was DeclarationDescriptorWithVisibility, now it's both
that and Substitutable<...>
2017-04-13 14:16:07 +03:00
Nikolay Krasko
9f037c3c62
Minor: remove warnings caused by ExtensionPointName.create nullability
2017-04-13 13:48:03 +03:00
Nikolay Krasko
baa75fc8d5
Refactoring: move OptionsParser to separate file
2017-04-13 13:48:02 +03:00
Nikolay Krasko
fa22a5c3a4
Minor: clean warnings in AbstractSearcherTest.java
2017-04-13 13:48:02 +03:00
Nikolay Krasko
65c1a2d732
Minor: extract common method to base class
2017-04-13 13:48:02 +03:00
Nikolay Krasko
9748c7d068
Refactoring: move operators searchers to separate package
2017-04-13 13:48:02 +03:00
Kirill Rakhman
d44bf27ec3
Completion of keywords (like constructor) doesn't insert parentheses/braces if they're already there
...
#KT-15603 Fixed
#KT-13524 Fixed
2017-04-13 13:41:41 +03:00
Zalim Bashorov
56d3f90a02
Don't log content of module.xml when Logger is not initialized
...
When Logger is not initialized it returns default logger which prints to stdout and stderr,
so it can lead to different results when run CLI tests locally and on TC.
2017-04-13 13:16:32 +03:00
Alexey Andreev
43c084fde3
Simplify coroutine generation in JS backend
...
Stop making aliasing suspend function descriptor with reference to
instance of state machine. This may cause problems in some cases,
for example, when compiling recursive suspend function. See KT-17281.
Instead, make alias for synthetic continuation parameter. This
additionally required some refactoring, e.g. *always* generating
continuation parameter during codegen.
2017-04-13 12:56:34 +03:00
Ilya Chernikov
f4a4a41525
Restore parts of the template resolving code in the compiler...
...
that was moved to the script-runtime, that it a row caused the incompatibility
with old GSK implementations. Now the legacy template resolving related code
is restored, marked obsolete and wrapped for compatibility with the new code.
2017-04-12 19:48:43 +02:00
Vyacheslav Gerasimov
d8fdd04e7f
Remove custom lint detectors registration from kotlin lint
...
#KT-14970 Fixed
2017-04-12 19:23:43 +03:00
Dmitry Jemerov
2a8933e5a0
Run all Gradle import tests with Gradle 3.5
2017-04-12 15:37:44 +02:00
Alexander Udalov
27c3155ce3
Refactor AnalyzerFacade.setupResolverForProject for better readability
2017-04-12 14:22:34 +03:00
Alexander Udalov
f594a4c018
Drop ModuleDescriptor.sourceKind, move this code to IDE modules
...
This information is only used in IDE and it can easily be computed there
2017-04-12 14:22:34 +03:00
Ilya Chernikov
aaeb53fb8b
Fix compiler client test after introducing nullable CompilerMessageLocation
2017-04-12 11:51:02 +02:00
Dmitry Jemerov
40df565369
Use correct repository for checking if current EAP version is published
...
Logic for determining the Maven repository corresponding to the current
plugin version has been centralized and reused in the version chooser
in "Configure Kotlin" dialog.
#KT-17291 Fixed
2017-04-12 10:41:57 +02:00
Dmitry Jemerov
546040fafd
Change AddKotlinLibQuickFix to support adding multiple jars
2017-04-12 10:41:57 +02:00
Dmitry Jemerov
aee32e6204
New Kotlin projects and Configure Kotlin adds JRE-specific jars
2017-04-12 10:41:57 +02:00
Dmitry Jemerov
aacaa61cf2
JavaRuntimeLibraryDescription: J2K
2017-04-12 10:41:57 +02:00
Dmitry Jemerov
f4db36ad5d
JavaRuntimeLibraryDescription: rename to .kt
2017-04-12 10:41:57 +02:00
Dmitry Jemerov
8000989bb8
Fix updating libraries
...
Use correct order root type for updating jars; correctly find file
in VFS after rename; provide logging instead of exceptions in case
of failure; update library model under write action; locate stdlib
sources under the old name
#KT-17334 Fixed
2017-04-12 10:41:57 +02:00
Mikhael Bogdanov
a4fef1371f
Split resulting test jar into small ones (1000 files per jar)
...
Dex on teamcity has memory problems with large jar
2017-04-11 20:28:25 +02:00
Simon Ogorodnik
c6cdbe7eed
Fix import member quickfix to check receiver
...
#KT-17037 fixed
2017-04-11 20:29:15 +03:00
Vyacheslav Gerasimov
a47bc1492d
Update changelog for 1.1.2 EAP 2
2017-04-11 18:13:14 +03:00
Alexey Andreev
72898b378e
Add and target to prepare running tests in node.js
2017-04-11 16:15:26 +03:00
Alexey Andreev
7077de02e7
Fix passing non-string value to print/println in node.js
...
See KT-15484
2017-04-11 16:15:25 +03:00
Alexey Andreev
dbfa3fce2a
Fix running tests in node.js
2017-04-11 16:15:24 +03:00
Alexander Udalov
3430059b3a
Minor, refactor TargetPlatformDetector.getPlatform
...
Inline dangerous getPlatform(PsiFile) method to prevent it from being
called accidentally instead of getPlatform(KtFile)
2017-04-11 16:06:56 +03:00
Zalim Bashorov
5f0e896843
Minor: simplify isVisible of Visibilities.INTERNAL and write comment on non-obvious line
2017-04-11 15:47:02 +03:00
Zalim Bashorov
712b2c8117
Add tests for KT-12199 to prevent regression
...
#KT-12199 Obsolete
2017-04-11 15:46:13 +03:00
Nikolay Krasko
ab2dbba249
Abstract class icon added (KT-7810)
...
#KT-7810 Fixed
2017-04-11 14:28:11 +03:00
Nikolay Krasko
6898176b43
Abstract extension function added
2017-04-11 14:28:10 +03:00
Denis Zharkov
1596f19fd7
Add javaslang library to kotlin-plugin artifact
...
This change should be contained in 5e449fdc02
But I've forgotten to apply it
2017-04-11 12:52:52 +03:00
Nikolay Krasko
cee54a4111
Revert "Workaround for building against jars from both JDK 6 and JDK 8 on TeamCity"
...
This reverts commit 0cf1c8d900 .
2017-04-11 12:33:07 +03:00
Nikolay Krasko
cc3b6998b1
Minor: fix warnings in KotlinTypeMapper.java
2017-04-11 12:33:07 +03:00
Nikolay Krasko
172bee58b4
Expose connection between mangling internal names in backend and jdiEval
2017-04-11 12:33:07 +03:00
Nikolay Krasko
42868b1364
Fix evaluate for internal functions (KT-15854)
...
#KT-15854 Fixed
2017-04-11 12:33:07 +03:00
Nikolay Krasko
9eae9aa938
Minor: fix warnings and refactoring
2017-04-11 12:33:07 +03:00
Alexey Sedunov
9979c6e361
Move: Fix processing of callable references to Java constructors
2017-04-11 12:11:51 +03:00
Alexey Sedunov
bdaf73411a
Move: Extract MoveToKotlinFileProcessor class
2017-04-11 12:11:50 +03:00
Alexander Udalov
cb4d2994a3
Drop CompilerMessageLocation.NO_LOCATION, use null everywhere instead
2017-04-11 12:08:31 +03:00
Alexander Udalov
861d9a1620
Use null instead of CompilerMessageLocation.NO_LOCATION in MessageCollector
2017-04-11 12:08:31 +03:00
Alexey Sedunov
411a8dc206
Move: Remove duplicating conflict messages from test data
2017-04-11 11:45:13 +03:00
Alexey Sedunov
cd6177534a
Move: Add conflict checking for "Move packages" case
2017-04-11 11:45:12 +03:00
Alexey Sedunov
e21ff23e26
Move: Add conflict checking for "Move directory with classes" case
2017-04-11 11:45:11 +03:00
Alexey Sedunov
87a12ee1c7
Move: Check for conflicts using entire collections of elements to move
2017-04-11 11:45:10 +03:00
Alexey Sedunov
358b5fe548
Move: Force package name change when moving Java files
...
Package statement in Java file is updated too late
when moving the entire containing directory, so we force it
with intercepting MoveFileHandler implementation
2017-04-11 11:45:08 +03:00
Alexey Sedunov
3007b11973
Move: Use MoveFilesWithDeclarationProcessor for files & directories
2017-04-11 11:45:07 +03:00
Alexey Sedunov
22a56a81b9
Move: Drop obsolete code
2017-04-11 11:45:06 +03:00
Alexey Sedunov
f5d106a68f
Refactoring: Drop obsolete KotlinFileReferencesResolver class
2017-04-11 11:45:05 +03:00
Alexey Sedunov
7f115343f9
Kotlin Facet: Drop Gradle/Maven-based version info providers
...
They are obsolete since compiler/library version can be detected
based on module dependencies generated on external model import
2017-04-11 11:45:04 +03:00
Denis Zharkov
aaddc34b54
Optimize control-flow analysis algorithm
...
There's no need to recalculate results if all of the
previous instructions' results remain unchanged.
It's a crucial optimizations because otherwise algorithm
can degrate to O(n * m) [n - instructions number, m - variables number]
even in a linear code like this:
var a_1 = 1
var a_2 = 1
...
var a_m = 1
We perform analysis iteration once, then we repeat it to be sure
that no changes happened and here for each instruction we're
starting to check if recomputed value is the same, that basically
compares maps of all the variables, so it works O(n * m)
After this change on the second iteration we won't recompute new values
as none of predecessor has been changed
2017-04-11 11:26:11 +03:00
Denis Zharkov
5e449fdc02
Optimize control-flow analysis by use of persistent maps
...
The case that it's worth to optimize is functions
with a lot of variables.
After debugging it's recovered that control-flow works nearly
O(n * m) where n is pseudocode size and m is a number of variables:
the algorithm performs O(n) copies of hashmap of size O(m)
Persistent maps should help because we don't need to perform a
copy of them, so the expected performance after the change is applied
is O(n log m)
We've tried pcollections and javaslang, and the latter one has demonstrated
better results
See results before and after optimizations
before:
3da7ba45a7/reports/benchmarks-many-vars-2017-03-14.txt
after with pcollections:
3da7ba45a7/reports/benchmarks-many-vars-persistent-optimizations-2017-03-17.txt
after with javaslang:
d22a871b17/reports/benchmarks-many-vars-javaslang-2017-04-07.txt
2017-04-11 11:26:11 +03:00
Yan Zhulanow
9e61eea758
Support inline properties in debugger class search
2017-04-10 23:25:55 +03:00
Yan Zhulanow
cb9e90183a
Debugger: Fix AbstractPositionManagerTest
...
MockReferenceType can't be used anymore because the new DebuggerClassNameProvider requires much more from it.
The new SmartMockReferenceType implements methods such as nestedTypes() or allLineLocations() properly.
Also, as PositionManager can return more than one class, we should check if any of the classes it returned matches the pattern.
2017-04-10 23:25:54 +03:00
Yan Zhulanow
622430a296
Debugger: Fix AbstractPositionManagerTest
...
MockReferenceType can't be used anymore because the new DebuggerClassNameProvider requires much more from it.
The new SmartMockReferenceType implements methods such as nestedTypes() or allLineLocations() properly.
Also, as PositionManager can return more than one class, we should check if any of the classes it returned matches the pattern.
2017-04-10 23:25:53 +03:00
Yan Zhulanow
fe3c1aff8b
Debugger: Classes for callable references should be treated as synthetic
2017-04-10 23:25:52 +03:00
Natalia Ukhorskaya
42e14961de
Debugger: Find classes using its inner classes (initial implementation)
2017-04-10 23:25:51 +03:00
Yan Zhulanow
3ee65ac499
Kapt: Support specifying javac options (KT-17245)
2017-04-10 22:48:17 +03:00
Sergey Igushkin
8cdb08cbfe
Fixed duplicated kapt options caused by multiple call to args setup
...
Separated kapt args from other plugin options.
Issues: #KT-16965 Fixed
Fix indentation
2017-04-10 20:59:23 +03:00
Sergey Igushkin
ea3adb0629
Implemented resolving the compiler jar using the class loader
...
Added resolving the compiler jar using the class loader urls as the
first step with the fallback to the original resolution method. Also
helps if the compiler is not present in the classpath dependencies.
Issues: #KT-16580 Fixed
Changed to getting plugin version from the applied plugin instead of
the plugin JAR name.
Removed unnecessary working with version of AbstractKotlinPlugin.
2017-04-10 20:55:19 +03:00
Sergey Igushkin
bda59e58d5
Filling in and reverting annotationProcessor
...
Added reverting processor path back.
Appending processor path instead of setting it.
Issues: #KT-17255 Fixed
(cherry picked from commit 843844b)
Added a test checking that -processorpath is set for all Gradle versions
2017-04-10 20:50:34 +03:00
Sergey Igushkin
64278a06cc
Refactoring in AnnotationProcessingManager.kt.
2017-04-10 20:45:03 +03:00
Sergey Igushkin
80daae90e3
Partial fix for the processor path not being set up properly.
...
Issues: #KT-17255
2017-04-10 20:44:12 +03:00
Alexey Tsvetkov
e7e29f2651
Avoid changing java.rmi.server.hostname property
2017-04-10 20:39:34 +03:00
Alexey Tsvetkov
54ee779ba1
Import 'implement' dependency of platform project transitively
...
#KT-16926 fixed
2017-04-10 20:25:48 +03:00
Ilya Gorbunov
e9c47d6498
Minor: validate required environment variables are set.
2017-04-10 19:46:06 +03:00
Ilya Gorbunov
3425f6d3af
Remove dist-quick as it fails on terminal steps anyway.
...
Add compiler-for-maven packing step to dist-quick-compiler-only.
2017-04-10 19:46:06 +03:00
Ilya Gorbunov
37e046f6cd
Provide shortcuts for producing quick compiler for maven and rebuilding stdlib-js from ant.
2017-04-10 19:46:06 +03:00
Ilya Gorbunov
afba967fcf
Use kotlin-stdlib.jar instead of kotlin-runtime.jar as runtime during build
2017-04-10 19:46:06 +03:00
Dmitry Jemerov
655fe87d43
Remove obsolete code for deleting script/kotlin.js
2017-04-10 17:34:13 +02:00
Dmitry Jemerov
62eb9e9909
Check jar name before calling getVirtualFileForJar()
...
#KT-17331 Fixed
2017-04-10 17:32:30 +02:00
Dmitry Jemerov
406714a1f4
Remove warning for running the compiler under Java 6/7
...
Now the compiler won't even start, so no need to check this manually.
2017-04-10 17:30:03 +02:00
Dmitry Jemerov
5a7278b856
Fix test: update Android build tools to release version
2017-04-10 16:13:31 +02:00
Mikhail Zarechenskiy
438f318d3e
Minor, update test data
2017-04-10 16:35:00 +03:00
Mikhael Bogdanov
b51cb9a911
Delete clean reference instructions on dereferencing captured variables
...
Codegen generates clean instructions for ref values (captured vars)
on block exit so we should delete them on dereferencing captured values.
#KT-17200 FIXED
2017-04-10 16:35:03 +05:00
Mikhael Bogdanov
f3e2abfd5f
Don't eliminate redundant casts to multi-dimension arrays
...
Dex doesn't recognize ANEWARRAY [Ljava/lang/Object; types as Object [][], but Object [].
It's not clear is it bug in dex or not
#KT-17200 InProgress
2017-04-10 16:35:01 +05:00
Mikhail Zarechenskiy
86c4ad1165
Drop erroneously used @Deprecated annotation from parameter
...
Annotation @native is deprecated itself and @deprecated on parameter doesn't have message, which cause compilation error after 3c4afcd
2017-04-10 12:48:10 +03:00
Mikhail Zarechenskiy
682fe9e9ca
Don't forget to resolve annotations from constructor parameter
...
#KT-12245 Fixed
2017-04-10 12:48:10 +03:00
Mikhail Zarechenskiy
c9b468581a
Fix type checking of local return inside return expression
...
#KT-16426 Fixed
2017-04-10 12:48:09 +03:00
Mikhail Zarechenskiy
7f287a4230
Support warning about useless cast on safe cast
...
#KT-13348 Fixed
2017-04-10 12:48:09 +03:00
Vyacheslav Gerasimov
107879a78a
Implement getTypeElement for UastKotlinPsiVariable
...
#KT-16849 Fixed
2017-04-10 12:40:33 +03:00
Vyacheslav Gerasimov
1d134ffc72
Register Android api quickfixes for inlined api inspection
...
#KT-14857 Fixed
2017-04-10 12:39:40 +03:00
Vyacheslav Gerasimov
70d24d0108
Fix NoSwingUnderWriteActionException in KotlinAndroidAddStringResource
2017-04-10 12:38:34 +03:00
Pavel V. Talanov
2f159bb64b
Light classes: do not rely on dummy context when data class autogenerated members conflict with declared members
...
Fix related issues with nested classes
2017-04-09 15:10:29 +03:00
Pavel V. Talanov
69c250a1b7
Light class test: avoid checking method visibility when NoLaziness is not specified
...
Allows to avoid putting NoLaziness flag on every test that mentions 'override' modifier
2017-04-09 15:09:15 +03:00
Pavel V. Talanov
32d3a1b4c9
Light classes: generate ACC_STATIC for DefaultImpls classes
...
To provide consistency between light classes and their delegates
IdeLightClass#testExtendingInterfaceWithDefaultImpls still failing since
we do not generate implementations delegating to DefaultImpls of superinterfaces
2017-04-09 15:09:13 +03:00
Pavel V. Talanov
5e351061e8
Light classes: test consistency for inner classes
2017-04-09 15:09:10 +03:00
Pavel V. Talanov
4f701285b1
Light class builder: do not generate methods delegating to DefaultImpls in kotlin classes
...
Class APIs from java point of view stays the same so we can avoid generating those methods
Otherwise we have to calculate all supertypes when getMethods() is called,
which imposes severe performance penalties
We have to pretend these methods are not 'abstract' (also we consider them 'default' for safety)
so java highlighting does not report "class should be abstract" for all inheritors
We have to manually report "class should be abstract" on some of the java inheritors,
specifically those that are implementing interfaces directly
as opposed to extending kotlin classes implementing those interfaces
2017-04-09 15:09:01 +03:00
Pavel V. Talanov
db294da24d
Minor, refactor: Move hasBody() to KtProperty
2017-04-09 15:07:50 +03:00
Pavel V. Talanov
922fde9986
LazyLightClassDataHolder: minor, improve diagnostics
2017-04-09 15:07:48 +03:00
Pavel V. Talanov
8fbd75ce27
AbstractIdeLightClassTest: minor, refactor
2017-04-09 15:07:45 +03:00
Alexey Tsvetkov
0a42a1c104
Minor: fix maven IC tests with custom local repository
2017-04-08 21:14:49 +03:00
Ilya Gorbunov
e7dc7ec005
Rebuild sources for kotlin-daemon-client and compiler-client-embeddable in maven build
...
Do not build these sources in ant.
Do not require them as artifact dependencies.
2017-04-08 19:07:54 +03:00
Ilya Gorbunov
5aabcb6ea3
Update build instructions in ReadMe to include gradle build step.
...
Also update links and overall readme structure.
2017-04-08 08:37:12 +03:00
Ilya Gorbunov
f5647fb27f
Delete temporary proguard configuration for gradle, change the primary one.
2017-04-08 08:32:05 +03:00
Ilya Gorbunov
5aff64078c
Drop helper functions and use ones from stdlib instead.
2017-04-08 08:32:03 +03:00
Ilya Gorbunov
e8e8bec342
Drop unneeded steps from updateDependencies
...
Do not download closure compiler for ant,
do not rebuild markdown anymore,
do not build protobuf-lite.
2017-04-08 08:31:07 +03:00
Ilya Gorbunov
6e961be1a1
No need to fork ant under jdk8 to build annotation-processing
2017-04-08 08:31:03 +03:00
Ilya Gorbunov
eef835f6c1
Remove ant targets that are superseded by gradle build.
2017-04-08 08:31:01 +03:00
Ilya Gorbunov
337fd4e180
Drop poms that are no longer required. Drop separate unit test modules for stdlib js.
2017-04-08 08:28:50 +03:00
Anton Bannykh
93f11a6da3
Update HtmlUnit driver to version 2.24; run tests using JDK 1.8
...
The old version had very limited TypedArray support, which lead to
browser-example crashes.
The new version of HtmlUnit needs JDK 1.8 to run.
2017-04-07 18:52:56 +03:00
Mikhail Glukhikh
767db68daf
Cleanup: when possible, do analyzeFully -> analyze
2017-04-07 15:36:02 +03:00
Mikhail Glukhikh
ba04dac4b7
Cleanup: when possible, do analyzeFullyAndGetResult -> analyzeFully
...
Also, when possible, do analyzeAndGetResult -> analyze
2017-04-07 15:36:00 +03:00
Mikhail Glukhikh
ceff19ee74
Cleanup: leaking this inspection
2017-04-07 15:35:59 +03:00
Mikhail Glukhikh
aed98a745e
Do not use KtClassInitializer as analyzable parent
...
Fixes analyzeFully() semantics making it closer to compiler
Fixes two flaky tests for "leaking this" quick-fixes
2017-04-07 15:35:58 +03:00
Mikhail Glukhikh
55d304a9a5
Minor refactoring: anonymous initializers
2017-04-07 15:35:57 +03:00
Vyacheslav Gerasimov
6b9242075a
Fix MovePropertyToConstructorIntention applicability and type rendering
...
#KT-17238 Fixed
(cherry picked from commit 7f9d88a)
2017-04-07 14:32:06 +03:00
Nikolay Krasko
d65b7a5b4b
Better indent in else-if editing (KT-14601)
...
#KT-14601 Fixed
(cherry picked from commit 25d6d61)
2017-04-07 14:21:45 +03:00
Dmitry Jemerov
da9af682d9
Don't show Kotlin in "Add framework support" for Maven/Gradle modules
...
#KT-16392 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
f1e96709a8
JSFrameworkSupportProvider: J2K
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
ee5ebb8ab7
JSFrameworkSupportProvider: rename to .kt
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
372ab57b65
JavaFrameworkSupportProvider: J2K
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
25830be3a2
JavaFrameworkSupportProvider: rename to .kt
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
5ef2b39804
Don't create multiple copies of KotlinJavaRuntime for multiple modules
...
#KT-17259 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
1488b21143
More consistent configurator names
...
#KT-17138 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
7159550a8f
Show selected configurator in title of "Configure Kotlin" dialog
...
#KT-17251 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
2e33850981
Hide "Configure Kotlin" notification after Kotlin has been configured
...
#KT-17289 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
29eafcbc97
Don't show "Choose Configurator" popup for one available configurator
...
#KT-17287 Fixed
2017-04-07 13:09:58 +02:00
Dmitry Jemerov
02af278766
Hide "Configure Kotlin (JavaScript)" in Android Studio
...
#KT-17288 Fixed
2017-04-07 13:09:58 +02:00
Alexander Udalov
2be8a4f184
Minor, delete obsolete test data
2017-04-07 13:44:02 +03:00
Anton Bannykh
7287645937
JS: fix AMD module integration tests
2017-04-06 21:35:03 +03:00
Ilya Gorbunov
324445fa7d
Create staging sonatype repository manually and change deploy-url parameter.
...
This is required to ensure that both gradle and maven build publish their artifacts
to the same sonatype staging repository.
Override deployment repository url for publishing snapshots to sonatype.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
c5e52b124b
Prepare for publishing to bintray and maven central.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
4bc85f9c0e
.gitignore fine tuning for gradle. Limit existing patterns.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
02293dab9e
Add public api dumps for kotlin-reflect and kotlin-stdlib-jre7/8
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
88e6f2160a
Build and verify runnable samples with gradle.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
97d1ffb036
Do not build modules with maven which are built with gradle.
...
kotlin-maven-plugin-test:
Remove dependency on kotlin-test-parent that is no longer published and required.
Add dependency on kotlin-runtime as it's no longer coming transitively from kotlin-script-runtime.
Change kotlin version test to reflect manifest implementation title changes.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
356f8dd0d1
Killswitch: do not build runtime with ant, switch to gradle artifacts.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
df44f3bfe6
Launch kotlin runtime gradle build from ant.
...
Fork ant to build compiler as it requires a lot of memory.
Pass build.number to gradle build.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
3db1613167
Setup dist task to assemble libs for compiler distribution.
...
Produce special stdlib artifact with annotations for dist.
Put js outputs to dist, they're required for JS backend tests.
Use kotlin-compiler for maven, which has all required dependencies bundled.
Clean local directory repository on clean.
Change paths in tests to compiled artifacts.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
0b2cadc638
Provide a method for common publishing configuration.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
92ef26606b
Refactor build to make manifest specification less error-prone.
...
Use legacy implementation title in manifest of JS stdlib for now.
Change the way common jvm project configurations is applied.
Add missing artifacts to common libraries.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
325ebfbd5f
Use karma plugin to run kotlin-stdlib-js tests.
...
Also create html page to run tests interactively in browser.
Use karma-teamcity-reporter 0.1.2 to workaround https://github.com/karma-runner/karma-teamcity-reporter/issues/38
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
dedf9fe898
kotlin-stdlib-js: copy sources in order to prevent duplicate source root in IDEA
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
026a76e98c
Assemble protobuf-lite with gradle, and use it in kotlin-reflect.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
d1d62d557d
Create task to run kotlin scripts and use it to strip metadata.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
65a800840c
Use single task for empty javadocs.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
c2aa906d77
Build reflection classes with gradle: all from main sourceSet
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
f619dbe631
Build and package reflection with gradle
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
4645fc4b7b
Build reflection classes with gradle
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
7a6621cc85
Migrate stdlib generator to gradle and include it to the main project
...
Use latest released kotlin compiler and stdlib to build it.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
e090a44b71
Migrate binary-compatibility-validator tests to gradle.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
e119f3a042
Make kotlin-test tests compile as tests for multiplatform project
...
Also remove utils not needed anymore.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
f8ebe5593f
Make assertFailsWith common
...
Because headers cannot have default parameters.
This leads to less effective implementation in JVM.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
609355a311
Provide kotlin.AssertionError in kotlin-stdlib-common
...
Remove related workarounds from kotlin-test-common
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
5c0110850d
Preprocess and build JS library tests
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
0e1fc0cff2
Rewrite preprocessor task in gradle without ant
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
8fd8310033
Build and package kotlin-test-js with gradle
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
49ce11f363
Build and package kotlin-stdlib-js with gradle
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
122e63d072
Build kotlin-stdlib-js with gradle
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
846b74885c
Remove some configuration duplication by using 'tasks.withType()'
...
Setup common options of java and kotlin compiler tasks.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
d25b07fe23
Exclude additional test source sets when importing project in IDEA, enable coroutines in stdlib
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
08fa304b6f
Build common standard library headers and kotlin-test (common and jvm) as multiplatform projects.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
780e12f04a
Build stdlib without dependency to kotlin-runtime and kotlin-test.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
decccfd0d1
Update version of kotlin gradle plugin to 1.1.1
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
a49df5aaae
Use gradle 3.4.1
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
d3afc1ba2e
Extract manifest attribute specification to helper function.
...
Specify default jdkHome for all projects.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
5755210498
Tune build options for kotlin-test, kotlin-runtime, kotlin-stdlib, kotlin-stdlib-jre7/8
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
c5aa5ef571
Do not duplicate sources, add non-compiled sources to runtime, dump declarations to json.
2017-04-06 20:32:37 +03:00
Ilya Gorbunov
25e69962f3
Use maven central for dependencies for all projects
2017-04-06 20:32:37 +03:00
Ilya Chernikov
dfdce5ff58
Publish to custom local repo, add copy-only reflect and js-lib
...
Add artifact signing
2017-04-06 20:32:37 +03:00
Ilya Chernikov
35a135cbf6
Add builds for main stdlib, stdlib jre7/8, kotlin.test
2017-04-06 20:32:37 +03:00
Ilya Chernikov
ed9221cb7d
Add script runtime, refactorings
2017-04-06 20:32:37 +03:00
Ilya Chernikov
c2c051cfe8
Prepare gradle config for building libs - bootstrap and runtime
...
Use external gradle plugin (1.1-M04) with compiler.jar from dist
Add empty build scripts for other projects that needs to be built with gradle
2017-04-06 20:32:37 +03:00
Ilya Chernikov
8e3453f0eb
Add gradle wrapper (3.2) to the libraries dir, add appropriate gradle stuff into gitignore
2017-04-06 20:32:37 +03:00
Dmitry Jemerov
9a215bfec6
Show idea.log when running IDEA from IDEA
2017-04-06 19:00:32 +02:00
Ilya Chernikov
a19303e121
Fix environment arg parsing regex - avoid SO on the long strings
2017-04-06 18:49:58 +02:00
Alexey Sedunov
3552b94cdc
Kotlin Facet: Avoid excessive validation
...
#KT-17293 Fixed
2017-04-06 18:54:07 +03:00
Alexey Sedunov
c1066b98f0
Move: Fix warning on companion used as implicit dispatch receiver
...
Do not report conflict if target class is a sublcass of
companion object's containing class
2017-04-06 18:54:02 +03:00
Alexey Sedunov
5c35061afa
Move: Make minor improvements and refactorings
2017-04-06 18:52:45 +03:00
Alexey Sedunov
97789d4a32
Move: Show progress indicator when updating usages
2017-04-06 18:18:34 +03:00
Alexey Sedunov
4a168ff780
Move: Process internal usages after all declarations are moved
2017-04-06 18:18:33 +03:00
Alexey Sedunov
a9e7d3d5cf
Move: Support test data with multiple carets
2017-04-06 18:18:32 +03:00
Alexey Sedunov
18632c3200
Kotlin Facet: Fix facet creation with non-default JVM target
2017-04-06 18:18:31 +03:00
Nikolay Krasko
fc55b532d4
Store only string in closure instead of full type
2017-04-06 16:58:31 +03:00
Nikolay Krasko
76fae363ee
Stop fail tests because of JNI bugs
2017-04-06 16:53:16 +03:00
Alexey Tsvetkov
a047c3682a
Invalidate cache version if corresponding file is empty
...
Sometimes an expression `versionFile.readText()`
returns an empty string, so that `toInt()` fails
with `NumberFormatException`.
It can happen in with both JPS and Gradle.
I could not reproduce the problem,
and it seems to be impossible (under normal circumstances),
because we always write a non-empty string,
and the file is checked to exist before reading.
Maybe it could be caused by an FS error.
The only "solution" to the problem I could think
is to swallow the exception, and assume
that cache version is not valid (so it would cause a rebuild of a module).
#KT-17125 fixed
2017-04-06 15:53:29 +03:00
Alexey Tsvetkov
56182746b5
Fix printing daemon client messages
...
Fixing the problem introduced in the commit 9819de1abd :
the daemon client messages should be reported
when the debug log level is enabled
or when the connection not successful
#KT-17199 fixed
2017-04-06 15:53:29 +03:00
Ilya Chernikov
659002f5ce
minor: Fix daemon shutdown livelock
...
due to wrong minimal aliveness, daemon was in some situations livelocked
in the last session state on shutdown.
2017-04-06 10:02:50 +02:00
Ilya Chernikov
30048f8f49
Fix CRLF handling in source-sections plugin
2017-04-06 10:02:49 +02:00
Ilya Chernikov
0199ec18b1
Add new compiler argument for passing script resolver environment
2017-04-06 10:02:48 +02:00
Ilya Chernikov
234ad39fd6
minor: improve daemon start failure diagnostic
2017-04-06 10:02:47 +02:00
Ilya Chernikov
a309511adf
Add actual sources to compiler and daemon client jars
2017-04-06 10:02:46 +02:00
Ilya Chernikov
88652154c9
Port compiler to the script-runtime with script base classes
2017-04-06 10:02:45 +02:00
Ilya Chernikov
7ceaca133a
Add new artifact kotlin-compiler-client-embeddable.jar
2017-04-06 10:02:44 +02:00
Ilya Chernikov
aebfc2f4a1
minor: move native platform launcher to separate file to make native-platform dependency optional
2017-04-06 10:02:43 +02:00
Mikhail Zarechenskiy
90a8a164b4
Fix false warning about check for instance of nullable type
...
#KT-12269 Fixed
2017-04-05 21:35:09 +03:00
Mikhail Zarechenskiy
0d6b7bb6a1
Prohibit check for instance of a non-reified, non-subtype type parameter
...
#KT-12683 Fixed
#KT-9986 Fixed
2017-04-05 21:35:07 +03:00
Mikhail Zarechenskiy
9fdd5fe5e8
Allow to import private members if they are in the same file
...
#KT-7724 Fixed
2017-04-05 21:35:06 +03:00
Mikhail Zarechenskiy
f518e8ebb8
Prefer stable types to diagnose useless cast
...
#KT-11622 Fixed
2017-04-05 21:35:05 +03:00
Mikhail Zarechenskiy
13eddba1f2
Fix false warning about useless cast in property and property accessor
...
Note that there are some other problems, for example:
`val a = if (true) 1 as Number else 2`, here we'll get useless cast
#KT-9551 Fixed
#KT-9645 Fixed
2017-04-05 21:35:04 +03:00
Mikhail Zarechenskiy
12db3a263e
Don't report useless cast in lambda if it has influence on return type
...
#KT-15161 Fixed
#KT-12690 Fixed
2017-04-05 21:30:32 +03:00
Alexey Tsvetkov
30d6af7aae
Provide incremental compilation for Maven
...
#KT-11916 fixed
To use the IC either:
1. set the `kotlin.compiler.incremental` property to `true` in a pom.xml:
```
<properties>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties>
```
2. pass the `kotlin.compiler.incremental` property in a command line:
```
mvn install -Dkotlin.compiler.incremental=true
```
When IC is on Kotlin plugin is expected to print the warning in the log:
```
Using experimental Kotlin incremental compilation
```
After each call an incremental compiler will also log how many files it has compiled:
```
Compiled %SOME_NUMBER% Kotlin files using incremental compiler
```
Note that the first build will be non-incremental.
For more diagnostic information (such as an exact list of compiled files) use the `kotlin.compiler.incremental.log.level` system property:
```
mvn install -Dkotlin.compiler.incremental=true -Dkotlin.compiler.incremental.log.level=info
```
To force the rebuild just run the 'clean' goal:
```
mvn clean install
```
2017-04-05 21:00:43 +03:00
Yan Zhulanow
21da11fe18
Fix 'kotlin-spring' and 'kotlin-noarg' Gradle plugin importing (KT-17049)
...
Allopen and Noarg plugins now use 'presets' that should be handled in the Gradle importer as well.
2017-04-05 18:13:14 +03:00
mglukhikh
9fa16364e1
Find enclosing element for object literal in delegate #KT-8187 Fixed
2017-04-05 16:38:04 +03:00
mglukhikh
6277476573
Do not add a new label to labeled loop
...
Relevant situation: break / continue in when #KT-16128 Fixed
2017-04-05 15:40:08 +03:00
mglukhikh
d9e1e82948
Destructure is available even without usages #KT-14435 Fixed
2017-04-05 15:07:15 +03:00
mglukhikh
feb9dd4d83
Don't suggest destructuring if at least half components not used
...
So #KT-16828 Fixed
2017-04-05 14:45:48 +03:00
Mikhail Glukhikh
318314f1a4
Fix "must not be null" in KotlinInlineFunctionDialog #KT-17233 Fixed
2017-04-04 19:22:46 +03:00
mglukhikh
8fb818fc74
Don't report 'protected in final' for implicitly protected
...
So #KT-16339 Fixed
2017-04-04 19:22:39 +03:00
mglukhikh
f13997750f
Make destructure intention work on library data classes
...
So #KT-16468 Fixed
So #KT-14402 Fixed
2017-04-04 19:22:31 +03:00
mglukhikh
8a02ce3dc2
KT-16828: use _ when appropriate in destructure intention
2017-04-04 19:22:24 +03:00
Ilya Chernikov
32d0d7a4d5
Remove xerces from compiler uberjar, pack compiler with explicit jar names
...
xercesImpl was unnecessarily added to the compiler uberjar during migration
to the idea platform 171. This caused NCDFE about classes from org.w3c
package.
And to simplify application of this commit and to ensure that only required
jars are packed into the uberjar, the build.xml was altered to use
explicit list of the jars from the ideaSdk/core directory, rather than
a mask.
Fixes #KT-17143 and #KT-17157
(cherry picked from commit 5595bea )
2017-04-04 15:14:46 +02:00
mglukhikh
1b2edf6a0c
KT-15870: run getTargetDirectory() in write action
2017-04-04 15:55:57 +03:00
mglukhikh
ee239d59aa
Set startInWrite... in intention-based quick fix as in intention
...
So #KT-15870 Fixed
2017-04-04 15:55:55 +03:00
Simon Ogorodnik
57c1d8eda4
Fix conversion of assignment as expression in J2K
...
Blockless if's and so with assignment as expression inside
should turn into blockful
#KT-16816 fixed
2017-04-04 14:38:25 +03:00
Simon Ogorodnik
86137e1f65
Fix deadlock in J2K
...
#KT-17230 fixed
2017-04-04 14:38:25 +03:00
Alexey Sedunov
6bf23d5e02
Kotlin Facet: Convert paths to OS-independent form
...
#KT-17223 Fixed
2017-04-04 14:35:12 +03:00
Alexey Sedunov
7e0bb089e2
Kotlin Facet: Suppress selection on plugin options tab
...
#KT-17046 Fixed
2017-04-04 14:35:11 +03:00
Alexey Sedunov
746ec48176
Move: Fix internal reference processing on moving multiple files
...
#KT-17211 Fixed
2017-04-04 14:35:10 +03:00
Alexey Sedunov
a8a9c3bbf4
Kotlin Facet: Fix platform detection in android-gradle projects
...
Sort candidate library names by descending length.
Suppress common library if platform-specific one is also present
#KT-16827 Fixed
2017-04-04 14:35:08 +03:00
Mikhail Glukhikh
7a53b2f4c8
Introduce UNUSED_ANONYMOUS_PARAMETER for anonymous functions
...
It is not reported for 1.0 language version because
renaming to _ is not possible. It has weak warning severity
So #KT-8813 Fixed
So #KT-16875 Fixed
2017-04-04 14:23:30 +03:00
Nikolay Krasko
110fc103de
Run tests with JDK 1.8 and remove hack with downloading libraries from previous ide
2017-04-04 13:22:43 +03:00
Dmitry Jemerov
fe8e02f4cf
Use LibraryJarDescriptor for refreshing jars on plugin update
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
78844dd4aa
Use new path for stdlib sources jar
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
38abc0ca8e
Get rid of RuntimeLibraryFiles and its remaining uses
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
09fbbb369a
Use LibraryJarDescriptor in CustomLibraryDescriptorWithDeferredConfig
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
2bb1b670f7
CustomLibraryDescriptorWithDeferredConfig: J2K
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
ff985314cf
CustomLibraryDescriptorWithDeferredConfig: rename to .kt
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
f9aff3be13
Rewrite configureModuleWithLibrary() based on LibraryJarDescriptor
...
Also remove duplicated logic for identifying Kotlin libraries.
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
06e8f8e5be
Remove obsolete logic for updating source root URL
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
291e888802
Encapsulate library search in LibraryJarDescriptor
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
f9495aa0d7
Introduce and use KotlinPaths.getStdlibPath()
...
Also support renaming .jar file when updating an existing library
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
344f372327
KotlinJavaModuleConfigurator: J2K
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
16c2dec60a
KotlinJavaModuleConfigurator: rename to .kt
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
00d3141ba2
KotlinWithLibraryConfigurator: J2K
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
2059a052c9
KotlinWithLibraryConfigurator: rename to .kt
2017-04-04 11:21:06 +02:00
Dmitry Jemerov
296fe698b8
KotlinAnnotatedElementsSearcher optimization
...
When possible, try to resolve references in types using only the PSI
without building the full resolve session.
2017-04-04 11:14:09 +02:00
Pavel V. Talanov
b9809566e6
Workaround for KotlinJpsBuiltTest js tests
...
Caused by problems with classloading (having two copies of DefaultImplementation class)
2017-04-03 21:44:43 +03:00
Mikhael Bogdanov
16d95d803f
Use jdk 1.8 to run android tests
2017-04-03 19:20:52 +02:00
Nikolay Krasko
d9c57728e2
Try to avoid null exception in getCommandProvider() in debugger tests
2017-04-03 19:05:22 +03:00
Nikolay Krasko
b4ebd6074c
Restore quick doc for it parameter and this of extension function
2017-04-03 19:05:22 +03:00
Nikolay Krasko
eb4e6e6c1a
Ad hoc solution to avoid resolution in language injection by receiver (KT-16995)
...
#KT-16995 Fixed
2017-04-03 19:05:22 +03:00
Yoshinori Isogai
f16736285a
Update JAVA_HOME path to JDK8 ( #1043 )
2017-04-03 17:52:51 +02:00
Alexander Udalov
b5ea6d3e25
Upgrade maven-shade-plugin to 3.0.0
...
A critical bug related to Java 8 bytecode (default/static methods in
interfaces) was fixed in maven-shade-plugin in 3.0.0, which reproduces
for kotlin-compiler-embeddable on Java 9 because the verifier in Java 9
started to check consistency of constant pool references to methods in
interfaces
#KT-17112 Fixed
2017-04-03 18:37:22 +03:00
Alexander Udalov
dc4c8c40bf
Fix Java6BuiltInsWithJDKMembersTest on Linux
...
PathUtil.getJdkClassesRoots() takes the path to the JRE. On macOS, this
is the same as the path to the JDK (for Java 6), so the test worked
there. However for OpenJDK on Linux, there's a separate directory named
"jre" in the JDK root. See JavaSdkUtil.getJdkClassesRoots for more
information on how the JDK roots are found
2017-04-03 18:30:59 +03:00
Alexander Udalov
b368da8456
Do not warn on non-JAR files in classpath
...
#KT-17140 Fixed
2017-04-03 18:18:40 +03:00
Alexander Udalov
64dfa6d33d
Do not add current directory to "kotlin" classpath
...
As "java" does, do not include the current directory to the classpath if
the explicit classpath is specified. This is more stable than always
adding the current directory, and users can easily add the ".:" to the
beginning of the explicit classpath themselves
#KT-17100 Fixed
2017-04-03 18:17:27 +03:00
Alexander Udalov
3b8110f51c
Minor, use "use" to automatically close JarFile
...
JarFile extends Closeable on JDK 8, so we can use "use" here now
2017-04-03 18:05:04 +03:00
Alexander Udalov
cbc893ed17
Minor, drop useless class in cli-runner
...
Use a simple List<URL> instead of Classpath
2017-04-03 18:05:04 +03:00
Alexander Udalov
93d5f6e635
Fix NPE on equals/hashCode of local function references
...
Anonymous classes for local function references implement their
getOwner() as "return null" currently (KT-14291). To avoid NPE in this
case, we now consider two local functions the same if their name and
signature are equal. This is incorrect in general, but unlikely to cause
major problems and is going to be fixed by KT-14291 eventually anyway
#KT-17055
2017-04-03 18:05:04 +03:00
Alexander Udalov
8dc4fa62ac
Minor, drop unused directive and test
...
The directive was only used in this test and it had no effect on the
behavior of the test. The test is removed because it's equivalent to
simple.kt in the same directory
2017-04-03 18:05:04 +03:00
Mikhail Zarechenskiy
bff9ebc0d5
Fix check for instance for types with compatible upper bounds
...
#KT-5246 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
1e56815b3b
Do not show warning about useless elvis for error function types
...
#KT-17214 Fixed
#KT-12112 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
3cdf6c898a
Warn for unnecessary (!!) assertion after method with generics
...
#KT-12276 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
4aa808b250
Fix warning about useless elvis when generics are involved
...
#KT-13648 Fixed
2017-04-03 16:25:32 +03:00
Alexander Udalov
0badc686ca
Minor, inline FunctionCodegen.getSignatureMapper
2017-04-03 14:51:19 +03:00
Alexander Udalov
78e278ec4c
Remove redundant type arguments for Java 8+ in compiler modules
2017-04-03 14:51:18 +03:00
Alexander Udalov
d440f07111
Use Java 7+ diamond operator in compiler modules
2017-04-03 14:51:15 +03:00
Alexander Udalov
37f435da93
Use List.sort instead of Collections.sort
2017-04-03 14:50:33 +03:00
Alexander Udalov
a9f35ae898
Replace Map operations with computeIfAbsent
2017-04-03 14:50:32 +03:00
Alexander Udalov
5ebee6ceca
Use Java 8 lambdas instead of anonymous classes in compiler modules
2017-04-03 14:49:23 +03:00
Alexander Udalov
6aa0f7bb65
Use multi-catch when possible
2017-04-03 14:26:53 +03:00
Alexander Udalov
34f0576135
Invoke "remove unnecessary final" intention in compiler modules
2017-04-03 14:26:52 +03:00
Alexander Udalov
463bbbd386
Use try-with-resources instead of manual try/finally
2017-04-03 14:26:51 +03:00
Alexander Udalov
08b50cab08
Use java.util.function.Predicate instead of Guava
2017-04-03 14:26:50 +03:00
Alexander Udalov
f723ad76f7
Use java.util.function.Predicate instead of Guava in JS modules
2017-04-03 14:26:49 +03:00
Mikhael Bogdanov
7c3ad97df5
Test for obsolete KT-17134: java.lang.VerifyError: Bad type on operand stack
...
#KT-17134 Obsolete
2017-04-01 15:34:56 +02:00
Nikolay Krasko
4dcae54ed1
Refactoring: extract lambda expression element type to separate class
2017-04-01 11:52:47 +03:00
Nikolay Krasko
6201aa4fd9
Re-parse after lambda was converted to block (KT-17156)
...
#KT-17156 Fixed
2017-04-01 11:52:46 +03:00
Ilya Gorbunov
c740c0b177
Do not produce javadoc for kotlin-compiler and do not attach it to maven artifacts
2017-04-01 04:32:01 +03:00
Nikolay Krasko
e7ac7deabd
Fix psi traverse without read action exception in debugger
2017-04-01 01:39:08 +03:00
Anton Bannykh
3eb5ce7d9a
JS: polyfill ArrayBuffer.isView in order to support PhantomJS
2017-03-31 21:20:01 +03:00
Alexander Udalov
dac9ed4a33
Fix compilation of kotlin-script-util
...
See 20d5616
2017-03-31 20:14:13 +03:00
Alexey Sedunov
96b9aba172
Move: Process Kotlin files befoire Java files
...
This ensures that light classes are updated
before changing references in Java files.
#KT-10577 Fixed
2017-03-31 18:24:17 +03:00
Alexey Sedunov
2eb912a30c
Move: Convert AbstractMoveTest to light fixture test case
...
Extract multi-module move test to a separate class
2017-03-31 18:24:16 +03:00
Alexey Sedunov
691322e406
Move: Show file dialog if all elements to be moved are KtFile
2017-03-31 18:24:15 +03:00
Alexey Sedunov
64a2fa2d6b
Move: Allow changing file package without moving to new directory
...
#KT-8370 Fixed
2017-03-31 18:24:14 +03:00
Alexey Sedunov
b5db50f429
Move: Implement Kotlin-specific editor for class name
...
#KT-13192 Fixed
2017-03-31 18:24:13 +03:00
Alexey Sedunov
eaba215bbb
Move: Wrap individual internal usages for better preview
...
Fix unused import removal for internal usages
#KT-9158 Fixed
2017-03-31 18:24:12 +03:00
Alexey Sedunov
3c6358dd91
Move: Fix file preview presentation
...
#KT-8930 Fixed
2017-03-31 18:24:11 +03:00
Alexey Sedunov
270168f50f
Kotlin Facet: Update multi-editor tabs using project-level settings
2017-03-31 18:24:10 +03:00
Alexey Sedunov
b04cbf537f
Kotlin Facet: Fix IAE on null module kind in multi-editor
...
#KT-17145 Fixed
2017-03-31 18:24:09 +03:00
Alexey Sedunov
313f90e7eb
Configuration: Provide title for additional parameters dialog
...
#KT-17094 Fixed
2017-03-31 18:24:08 +03:00
Alexey Sedunov
3f7b28d840
Configuration: Fix behavior of "output directory" control
...
#KT-17088 Fixed
2017-03-31 18:24:07 +03:00
Alexey Sedunov
72436c1738
Light Classes: Fix origin search for KtLightSuperTypeReference
...
Use analyzeFully() when resolving super type references
2017-03-31 18:24:06 +03:00
Dmitry Jemerov
b6a26aa732
Don't delete config and system directories when updating IDEA
2017-03-31 13:18:41 +02:00
Dmitry Jemerov
f3ad2cd1ff
Don't recreate ProjectResolutionFacade on every completion
...
Rely on POM events sent when modifying synthetic file copies during
completion to update the OOCB modification count, and recreate
facade only on OOCB mod count changes.
2017-03-31 12:48:36 +02:00
Nikolay Krasko
0d5913287f
Add line numbers for suspend function to enhance stepping (KT-16025)
...
Stop at function start on step into.
Step at function end on step out.
Both cases should actually be skipped by debugger, but this is postponed
till new backend generation for suspend functions is ready.
#KT-16025 Fixed
2017-03-30 19:48:49 +03:00
Mikhail Glukhikh
8cfcd7e5a6
Inline function: add extra tests taken from intellij-community
2017-03-30 19:42:22 +03:00
Mikhail Glukhikh
b8b7d1f644
Inline function: keep the function if some usages are not processed
2017-03-30 19:42:20 +03:00
Mikhail Glukhikh
091e875551
Inline function: process usages in children-first order
2017-03-30 19:42:19 +03:00
Mikhail Glukhikh
fc0bf47067
Inline function: use "function" in GUI messages
2017-03-30 19:42:17 +03:00
Mikhail Glukhikh
93b624fdbe
Inline function: handle callable references through lambdas
2017-03-30 19:42:16 +03:00
Mikhail Glukhikh
75bb599991
Inline function: handle recursive calls
2017-03-30 19:42:14 +03:00
Mikhail Glukhikh
e79f006659
Introduce dialog for function inlining #KT-6159 Fixed
...
See KotlinInlineFunctionProcessor and KotlinInlineFunctionDialog
2017-03-30 19:42:13 +03:00
Mikhail Glukhikh
b6803af746
KT-6159: generate Unit while code inlining when needed
2017-03-30 19:42:11 +03:00
Mikhail Glukhikh
7de0197a60
Minor: deprecation fix in ScopeUtils
2017-03-30 19:42:10 +03:00
Mikhail Glukhikh
081caadec1
Fix code inlining for expression body with multiple occurrences
...
So #KT-17022 Fixed
2017-03-30 19:42:09 +03:00
Mikhail Glukhikh
96846d0b52
Minor: style fix in KotlinInlineFunctionHandler
2017-03-30 19:42:07 +03:00
Mikhail Glukhikh
77888349cd
KT-6159: rename duplicates met
2017-03-30 19:42:06 +03:00
Mikhail Glukhikh
342118dfa8
Do not perform function inlining if it's not supported
2017-03-30 19:42:05 +03:00
Mikhail Glukhikh
de861066bf
KT-6159: allow local / private functions inlining
2017-03-30 19:42:03 +03:00
Mikhail Glukhikh
127b7c80df
Some inline tests that do not work
2017-03-30 19:42:02 +03:00
Mikhail Glukhikh
1d5b8ea029
KT-6159: Inline function refactoring enabled
2017-03-30 19:42:00 +03:00
Pavel V. Talanov
795a83ee24
LookupTracker.DO_NOTHING is the default implementation of LookupTracker
2017-03-30 18:59:19 +03:00
Pavel V. Talanov
aeda85b256
FileScopeProvider(Impl): use DefaultImplementation annotation
2017-03-30 18:59:17 +03:00
Pavel V. Talanov
2b373a3601
Component container add tools to specify default implementation of a component
2017-03-30 18:59:14 +03:00
Simon Ogorodnik
8bd23d71a7
Fix J2K to apply post convert intentions on EDT only
...
#KT-16754 fixed
2017-03-30 18:48:39 +03:00
Simon Ogorodnik
6cbeffe4b2
Add kotlinx.coroutines to IDEA dependencies
...
Add some cool coroutine-based stuff
Like CoroutineDispatcher for EDT
2017-03-30 18:48:37 +03:00
Dmitry Jemerov
f255f2a1e0
Optimize isReferenceTo() when searching for PsiMethod usages
...
Avoid resolving references when we know from context that a reference
at given location can't resolve to a PsiMethod.
2017-03-30 15:33:11 +02:00
Mikhail Glukhikh
e3f0a604d1
Use library-only sources as resolve scope from library #KT-12264 Fixed
2017-03-30 13:55:56 +03:00
Ilya Gorbunov
322ec0fa32
Do not add library with empty path when libraries argument is empty
...
#KT-17059
-libraries parameter without argument can be passed by maven or gradle, when there are no dependencies specified.
2017-03-30 13:43:55 +03:00
Mikhail Zarechenskiy
fd6ed5aa72
Fix bogus warning about numeric overflow when value is zero
...
#KT-17149 Fixed
2017-03-30 13:27:53 +03:00
Mikhail Zarechenskiy
3820c7653b
Update configuration for bytecode listing tests by directives in files
2017-03-30 13:27:51 +03:00
Mikhail Zarechenskiy
aec0c029e5
Display description of language version in options
2017-03-30 13:27:50 +03:00
Mikhail Zarechenskiy
5750a96b13
Write to configuration files only version without description
2017-03-30 13:27:49 +03:00
Mikhail Zarechenskiy
c512453e16
Show LV=1.2 in IDE only in internal mode
2017-03-30 13:27:48 +03:00
Mikhail Zarechenskiy
5027a76ed4
Add strong warning when trying to compile with experimental LV
2017-03-30 13:27:47 +03:00
Mikhail Zarechenskiy
54f034a636
Place array literals in annotations feature under the version 1.2
2017-03-30 13:27:46 +03:00
Mikhail Zarechenskiy
20d5616d75
Introduce Kotlin language version 1.2
...
Wherein DEFAULT version is still 1.1, which means that version 1.2 should be configured manually
2017-03-30 13:27:45 +03:00
Mikhail Zarechenskiy
283ed85df2
Drop useless parameter and avoid creating sets
2017-03-30 13:27:44 +03:00
Alexander Udalov
3655fc02bd
Support running Kotlin compiler daemon on JDK 9
...
This should have fixed the compiler that is run in Gradle on Java 9, but
there's another issue filed as KT-17112
#KT-17112 Open
#KT-14988 Fixed
2017-03-30 13:05:24 +03:00
Alexander Udalov
a5d70cfa68
Support running Kotlin compiler CLI on Java 9 on Unix
...
Workaround IDEA-170005, IDEA-170494 and similar issues by opening the
required packages from java.base to the unnamed module
#KT-14988 In Progress
2017-03-30 13:04:41 +03:00
Dmitry Jemerov
03a26c4ce0
Set language level 6 for modules using JDK 6
2017-03-29 18:41:00 +02:00
Mikhail Glukhikh
a35b770c8d
Evaluate allImplementingModules lazily #KT-17136 Fixed
2017-03-29 18:17:55 +03:00
Dmitry Jemerov
e66d5d6e1a
Advance Java language level
2017-03-29 17:10:22 +02:00
Simon Ogorodnik
ddcff3c96d
Fix ImportFixBase to compute suggestions not on EDT
2017-03-29 17:35:13 +03:00
Vyacheslav Gerasimov
94b261d701
Add changelog for 1.1.2
2017-03-29 16:00:38 +03:00
Dmitry Petrov
caae6ff2ec
KT-16264 Forbid usage of _ without backticks
...
Forbid underscore-only (_, __, ___, ...) names as callees and as types.
If CHECK_TYPE directive is on, filter out UNDERSCORE_USAGE_WITHOUT_BACKTICKS messages.
2017-03-29 15:47:22 +03:00
Ilya Chernikov
0a3c031528
Optimize and simplify script deps cache and appropriate index rebuilding
2017-03-29 13:29:47 +02:00
Dmitry Petrov
2a97fb17ba
Fix source information mapping in PsiSourceManager
...
Add tests for source information mapping
KT-17108 source information corrupted on PSI -> IR transformation
2017-03-29 13:03:38 +03:00
Anton Bannykh
4086a84622
JS: add suffix '_test' to test module output files to avoid name conflicts (KT-16979)
...
Also stop setting AMD module ids explicitly.
2017-03-28 21:44:56 +03:00
Anton Bannykh
867bd13ce4
JS: make tests dependent on primitive array is checks pass even when -Xtypedarray is disabled (related: KT-17137)
2017-03-28 21:41:20 +03:00
Anton Bannykh
7d4c26c0c1
JS: fix maven SeleniumTest
2017-03-28 21:23:21 +03:00
Pavel V. Talanov
df71116dc5
KtLightElements: fix KtLightMember not extending KtLightDeclaration
...
Fix problem introduced in 4b85fd9fbe
2017-03-28 19:47:13 +03:00
Dmitry Jemerov
6febe1e8a2
Convert RenameTest to light fixture test case
...
Extract multi-module rename test to a separate class.
2017-03-28 15:48:38 +02:00
Yan Zhulanow
228b3c56a3
Minor: fix failing CliTestGenerated#testPluginSimple test
...
Add missing Android Dialog stub cause Android Extensions plugin now generates the synthetic property for Dialog.
2017-03-28 16:08:46 +03:00
Dmitry Jemerov
8ec70f44dc
Log fallbacks to plain text search when searching expressions of type
...
This will help diagnose performance problems in IDEA inspections.
2017-03-28 13:00:56 +02:00
Dmitry Jemerov
f13c1b8d87
Convert MultiFileIntentionTest to light fixture test case
2017-03-28 11:36:29 +02:00
Alexey Andreev
de58786fcc
Regenerate LightAnalysisModeTestGenerated
2017-03-28 11:32:47 +03:00
Alexey Andreev
8fe96664b7
Fix initialization order of enum with companion object in JS BE
...
Make enum entries initialize before companion object. This helps
in situation when companion object initializer refers to enum fields.
JVM be generates <clinit> method which first initializes all enum fields
and then runs companion object initializer. This commit introduces the
similar behaviour in JS BE. The old behaviour was: initialize companion
object in constructor. In enum, constructor is called to initialize
enum fields, so previously companion object was initialized first,
which is incorrect.
See KT-16745
2017-03-28 11:32:46 +03:00
Alexey Andreev
0606ebe0dc
Fix suspend function with default argument
...
In JS BE, fix translation of suspend function with default argument
inherited from interface.
See KT-16658
2017-03-28 11:32:45 +03:00
Alexey Andreev
6ba3812582
Fix inlining of tail call suspend function
...
When inlining tail-call suspend function to regular
suspend function in JS BE, don't forget to insert suspension point.
See KT-16951
2017-03-28 11:32:45 +03:00
Alexey Andreev
466540399c
Fix translation of copy() fun in data class
...
Fix translation of copy() function in data class which has secondary
constructor in JS BE. See KT-16717.
2017-03-28 11:32:44 +03:00
Mikhail Zarechenskiy
b46205f60b
Add tests to check collection literals with varargs
2017-03-28 09:01:57 +03:00
Sergey Igushkin
ae2b4f5ff2
Support omitting version of org.jetbrains.kotlin dependencies
...
Related to #KT-12792
2017-03-28 03:57:38 +03:00
Sergey Igushkin
9ba84df954
Fixed classes copying fail in cases when destinationDir has changed
...
Added @Input to the property returning classes dirs: it will make
Gradle fall back to non-incremental input when the property value
changes.
Issues: #KT-16820 Fixed
2017-03-28 03:53:11 +03:00
Jonathan Leitschuh
cc0ac36fed
Java IC compatibility fix for Gradle 2.14+
...
Added version check to switch between old and new approaches because
Gradle versions before 2.14 have a bug in Java IC.
Added Kotlin classes to Java task input.
Added annotationsFile into task input to include it into up-to-date check.
Related issues: #KT-16585 Fixed
2017-03-28 03:47:21 +03:00
Anton Bannykh
9b34e21619
JS: fixed <Type>Array.iterator methods; added -Xtypedarray compiler key
...
The <Type>Array.iterator used to lack next<Type>() method (KT-16626).
The -Xtypedarray compiler key enables translation of primitive arrays
to TypedArrays, and primitive array`is`-checks (KT-15358, KT-14007,
KT-14614, KT-16056).
2017-03-27 23:09:34 +03:00
Vyacheslav Gerasimov
ba5e78a917
Replace deprecated Iterators.emptyIterator() in JavaContext.java
...
with ContainerUtil.emptyIterator()
2017-03-27 21:35:11 +03:00
Pavel V. Talanov
ca6516c2a2
findDecompiledDeclaration: find builtIns more accurately
...
Use resolveScope of a reference to help searching for builtIn binaries
Do not search non-builtIn descriptors in random scopes
2017-03-27 21:24:45 +03:00
Dmitry Jemerov
265e765ec9
Allow to exclude specific qualified names from import in tests
...
In tests, ImportFix imports the first available candidate. This can
lead to non-deterministic tests when multiple candidates are available.
With this fix, unwanted candidates can be excluded.
2017-03-27 19:48:59 +02:00
Dmitry Jemerov
88372132be
Delete Android facet in teardown
2017-03-27 19:48:58 +02:00
Dmitry Jemerov
79c814636e
Convert AddOpenToClassDeclarationTest to regular multifile quickfix test
2017-03-27 19:48:52 +02:00
Dmitry Jemerov
4f229c3fdc
Convert AbstractQuickFixMultiFileTest to light fixture test case
2017-03-27 19:48:51 +02:00
Dmitry Jemerov
387dbdf3bb
AbstractQuickFixMultiFileTest: J2K
2017-03-27 19:48:50 +02:00
Dmitry Jemerov
d11ea64f00
AbstractQuickFixMultiFileTest: rename to .kt
2017-03-27 19:48:49 +02:00
Dmitry Jemerov
e2f75463d7
Rewrite AbstractQuickFixTest based on light fixture test case
...
Don't reconfigure runtime before every test. For consistency,
mark tests that require the runtime with directives instead of relying
on test file names.
2017-03-27 19:48:43 +02:00
Dmitry Jemerov
34ad19a912
AbstractQuickFixTest: J2K
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
ad59a122ac
AbstractQuickFixTest: rename to .kt
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
9d74657f11
Mark KotlinCodeInsightTestCase as deprecated
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
9a5028c4f2
Convert KotlinShortNamesCacheTest to light test case; cleanup code
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
159c2382b4
Convert KotlinChangeSignatureTest to light test case
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
e9998aa329
AbstractResolveByStubTest: convert to light test case
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
d8bbb8f2ef
AbstractResolveByStubTest: J2K
2017-03-27 19:45:50 +02:00
Dmitry Jemerov
49aaa0edf6
AbstractResolveByStubTest: rename to .kt
2017-03-27 19:45:50 +02:00
Alexander Udalov
ccd3781403
Disallow using named arguments for members of header classes
...
#KT-17083 Fixed
2017-03-27 20:10:18 +03:00
Alexander Udalov
b971ac9312
Allow impl declarations to have flexible types
...
Types of the corresponding parameters (or type parameter bounds, types
in supertypes, etc) are now compatible not only if they're equal, but
also if values of those types are mutually assignable (if "a" is subtype
of "b" and "b" is subtype of "a")
#KT-17005 Fixed
2017-03-27 20:10:17 +03:00
Alexander Udalov
116380a826
Allow impl declarations to have non-stable parameter names
...
#KT-17027 Fixed
2017-03-27 19:50:25 +03:00
Alexander Udalov
633798db18
Render incompatible impl member in "no impl for header" diagnostic
2017-03-27 19:50:25 +03:00
Alexander Udalov
db1f039586
Serialize and deserialize 'header' modifier for descriptors
...
This fixes KT-17001 because now 'header' modifier is loaded correctly
for deserialized members and the standard disambiguation in
OverloadingConflictResolver.compareCallsByUsedArguments takes place,
where header members are discriminated against the corresponding impl
members
#KT-17001 Fixed
2017-03-27 19:50:25 +03:00
Pavel V. Talanov
ee33879031
Light class tests: hidden deprecated affects codegen
...
Provide fix later
2017-03-27 17:59:05 +03:00
Pavel V. Talanov
e822a17c0d
Lazy light classes: can't use laziness for classes with supertypes delegates
2017-03-27 17:59:03 +03:00
Pavel V. Talanov
2291d91109
KtLightMethod: isVarArgs() does not trigger exact delegate computation
2017-03-27 17:59:01 +03:00
Pavel V. Talanov
c4be805962
Light members: allow to get modifier list without computing delegate
2017-03-27 17:58:59 +03:00
Pavel V. Talanov
e84a674504
LazyLightClassDataHolder: rollback optimization on suspected inherited internal visibility
...
Internal visibility affects member names
2017-03-27 17:58:57 +03:00
Pavel V. Talanov
ec895f18f2
Light classes: refactor, move getOrigin to corresponding classes
2017-03-27 17:58:55 +03:00
Pavel V. Talanov
a2511232ab
Lazy light classes: fix visibility modifier in case of inherited protected visibility
2017-03-27 17:58:53 +03:00
Pavel V. Talanov
a81bac0b50
LightClassTest: test corner cases related to inherited visiblity
...
EA-99155
#KT-16899 Fixed
2017-03-27 17:58:51 +03:00
Pavel V. Talanov
4b85fd9fbe
Refactor light members: introduce KtLightMemberImpl
...
Holds common code for fields and methods
2017-03-27 17:58:49 +03:00
Pavel V. Talanov
a44aa8e112
Introduce KotlinOverridableInternalMembersShortNameIndex
...
Keeping track of all potentially overridable internal members
To optimize certain scenarios in light classes
2017-03-27 17:58:47 +03:00
Pavel V. Talanov
24303c8b39
Minor, stubs: isTrait -> isInterface
2017-03-27 17:58:45 +03:00
Alexander Udalov
1c7ac2da5a
Do not use CoreJavaFileManager in KotlinCliJavaFileManagerImpl
...
The inheritance is still needed because of the code in intellij-core,
specifically in JavaCoreProjectEnvironment.addSourcesToClasspath and
CoreJavaDirectoryService.getPackage, which assumes that the
JavaFileManager instance in the project is a CoreJavaFileManager
2017-03-27 17:19:25 +03:00
Alexander Udalov
c67eb84369
Support nested classes in KotlinCliJavaFileManagerImpl.findClass
...
findClass(String, GlobalSearchScope) is invoked for example when we're
resolving supertypes of classes in Java libraries. Previously, it never
found nested classes and falled back to CoreJavaFileManager's
implementation, which lacks a fix for the original issue (KT-12664,
which was fixed in JvmDependenciesIndex in 5a533a52 and 164c72e8 )
#KT-16931 Fixed
2017-03-27 17:19:24 +03:00
Alexander Udalov
f1a1ebae01
Refactor JvmDependenciesIndex
...
- Move collectKnownClassNamesInPackage to the only place where it's used
- Fix warnings/inspections and simplify implementation a bit
2017-03-27 17:19:24 +03:00
Alexander Udalov
801a93edbc
Refactor KotlinJavaPsiFacade.KotlinPsiElementFinderImpl
...
Split KotlinPsiElementFinderImpl into two classes: one is used in the
compiler (boolean field isCliFileManager previously handled that), the
other is used in IDE and possibly other non-CLI scenarios.
Also avoid a possible class cast exception in
KotlinJavaPsiFacade.knownClassNamesInPackage
2017-03-27 17:19:24 +03:00
Dmitry Jemerov
d8dfad875d
Drop pre-1.0 whole-project syntax migration actions
2017-03-27 14:57:44 +02:00
Alexander Udalov
d615aba4cf
Update KotlinVersion.CURRENT to 1.1.3
2017-03-27 10:48:18 +03:00
Mikhail Zarechenskiy
3f1a43a743
Minor, update test data
...
See 8466270 for the reason.
Note that actually we do not report errors on such cases because psiElement is not valid, but in tests for intentions we check all errors
2017-03-27 10:36:10 +03:00
Alexey Sedunov
298ee266c3
Move: Fix conflict checking when switching between similar libraries
...
#KT-17006 Fixed
2017-03-26 12:56:26 +03:00
Alexey Sedunov
45b8cd29e1
Resolution Facade: Add explicit property for file target platform
2017-03-26 12:56:25 +03:00
Alexey Sedunov
87ea13b307
Move: Fix runtime unconfiguration for multiple modules
2017-03-26 12:56:24 +03:00
Alexey Sedunov
1d0162402e
Move: Fix processing of calls and callable references
...
Fix CCE on callable references to Java methods.
Fix qualification of callable references without receivers.
Fix processing of calls/callable references to object extensions
and extension members.
Do not explicate short companion references
#KT-16809 Fixed
2017-03-26 12:56:24 +03:00
Alexey Sedunov
58495555dc
Move: Perform extension import insertion after reference shortening
2017-03-26 12:56:22 +03:00
Alexey Sedunov
b3274acfc0
Refactor KotlinShortenReferencesRefactringHelper
...
Rename refactoring helper and its infrastructure
Add support for different request types
2017-03-26 12:56:21 +03:00
Alexey Sedunov
dc04b200b6
Move: Do not shorten references unaffected by the refactoring
2017-03-26 12:56:20 +03:00
Alexey Sedunov
aad11ff0f4
Shorten References: Skip companion receivers on callable references
...
This is temporary fix due to KT-13934 which prevents resolution
of references like X::foo where foo is a member or extension
of X companion object
2017-03-26 12:56:19 +03:00
Alexey Sedunov
d71cefee8a
Move: Fix "scanEntireFile" values after the refactoring
...
#KT-17032 Fixed
2017-03-26 12:56:18 +03:00
Alexey Sedunov
b818ef0a51
Kotlin Facet: Detect module platform by 'kotlin'/'kotlin2js' plugin
2017-03-26 12:56:17 +03:00
Alexey Sedunov
0ad28228d7
Kotlin Facet: Fix settings initialization
2017-03-26 12:56:16 +03:00
Ilya Gorbunov
d54f11421f
Run gradle unit tests with Java 8
2017-03-25 04:14:17 +03:00
Ilya Gorbunov
6dc4056d5f
Fix missing kotlin-test dependencies
...
(previously it was bundled to kotlin-compiler-embeddable)
2017-03-25 04:13:52 +03:00
Vyacheslav Gerasimov
8c41e44b3b
Fix MovePropertyToConstructorIntention and broken tests
2017-03-24 21:55:27 +03:00
Dmitry Jemerov
efa03e7ad8
Fix project leaks in tests
2017-03-24 19:51:32 +01:00
Yan Zhulanow
eda3b08c31
Kapt3: Fix Maven build on CI
...
'tools_jar_profile' Maven profile is activated only if 'kotlin-annotation-processing-maven-build.txt' exists.
It already works this say for the 'kotlin-annotation-processing' artifact.
2017-03-24 20:02:39 +03:00
Yan Zhulanow
e84eadebdc
Kapt3: Use 'compilerArgs' safely (KT-16990)
...
'android-apt' (com.neenbedankt) adds the 'File' instance to 'compilerArgs' (List<String>).
2017-03-24 20:02:38 +03:00
Alexander Udalov
6d69e37fe9
Update to ASM 6-alpha from intellij 171
...
Will be needed to read module-info files
2017-03-24 19:46:35 +03:00
Alexander Udalov
c99b03d6b3
Remove unused library 'intellij-core-analysis'
2017-03-24 19:46:35 +03:00
Ilya Gorbunov
c98c2d9931
Remove 'nearly_stateless' category, do not mention statefulness for terminal operations.
...
#KT-16994
2017-03-24 19:06:06 +03:00
Ilya Gorbunov
4018db680e
Sequence operation classification regarding their statefulness and laziness.
...
#KT-16994 Fixed
2017-03-24 19:06:06 +03:00
Alexey Tsvetkov
0a4c43a5f1
Fallback to ProcessBuilder when native ProcessLauncher fails
...
#KT-16902 fixed
2017-03-24 19:03:41 +03:00
Alexey Tsvetkov
9d95c841a6
Use connect-and-lease when using daemon in JPS & Gradle
...
Relates to KT-15562 "Service is dying".
This commit includes multiple changes:
1. JPS & Gradle daemon clients are refactored to use `connectAndLease` from `KotlinCompilerClient`.
`connectAndLease` was introduced in previous commits
2. `withKotlin` was removed because `connectAndLease` already covers retrying on connection error
3. Gradle flag files creation is changed:
* client-alive flag file lives as long as Gradle instance lives,
* session-alive flag file lives until the end of a build.
2017-03-24 19:03:36 +03:00
Alexey Tsvetkov
9819de1abd
Improve daemon client debug reports
...
Before this change a daemon client debug messages were printed
only when the client could not connect and the 'kotlin.daemon.verbose'
system property was set up.
Now messages are printed if the debug logging is enabled and
the 'kotlin.daemon.verbose' is set up.
2017-03-24 19:03:32 +03:00
Alexey Tsvetkov
c5324fcc50
Speed up daemon startup when DNS timeouts
...
#KT-16917 fixed
The daemon code contained the following code:
```
ManagementFactory.getRuntimeMXBean().name
```
As it turns out `RuntimeImpl#getName` calls `VMManagementImpl#getVmId`,
which in turn calls `InetAddress.getLocalHost().getHostName()`.
`InetAddress.getLocalHost()` tries to resolve by making a DNS-request.
In case of a DNS-problem or a network misconfiguration,
resolving localhost can be very slow,
so a daemon client can disconnect
by the timeout (10 seconds) and fallback to the non-daemon compilation.
This change removes the call `getRuntimeMXBean().name`
(it is only used for logs).
2017-03-24 19:03:28 +03:00
Alexey Tsvetkov
da24a99b91
Set 'java.rmi.server.hostname' property on client too
...
The RMI documentation (http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/javarmiproperties.html )
says it is useful to set up a `java.rmi.server.hostname`
system property on a client and a server.
When the property is set up on a client, I saw that "RenewClean" threads
stopped listening to my external IP, so all client and server threads
are now only listening the loopback interface.
I also changed the way the property is set up on the server side:
before the change it was passed in jvmargs at a process launcher.
I moved this code directly to the main method of the daemon,
because it is easy to forget to set up the property,
when running the main for debug purposes.
2017-03-24 19:03:24 +03:00
Alexey Tsvetkov
f748dc625c
Minor: print errors to stderr when gradle test build
...
It takes time to find compile errors or exceptions,
when a Gradle test build fails, because a debug log
is very verbose.
This change prints all error messages from Gradle
when a test build fails unexpectedly.
2017-03-24 19:03:19 +03:00
Dmitry Jemerov
961d83fcd4
Bump code cache size (64m is no longer enough under JDK 8)
2017-03-24 16:40:23 +01:00
Dmitry Jemerov
859e3e17b4
Bump code cache size (64m is no longer enough under JDK 8)
2017-03-24 16:37:11 +01:00
Vyacheslav Gerasimov
543f59bf54
Add new quickfix for CanBePrimaryConstructorPropertyInspection
...
MovePropertyToConstructorIntention is used as quick fix
2017-03-24 17:38:52 +03:00
mglukhikh
4700936f66
DFA: count null comparison as identity comparison #KT-16538 Fixed
...
+ minor parameter refactoring
2017-03-24 17:33:42 +03:00
Mikhail Glukhikh
b5aa529901
Make inspection "lambda->reference" off by default #KT-17002 Fixed
2017-03-24 16:20:07 +03:00
Mikhail Glukhikh
b121990368
Don't suggest 'remove let' when 'it' is used multiple times
...
So #KT-16857 Fixed
2017-03-24 16:20:00 +03:00
Mikhail Glukhikh
4687a867c3
Anti-KNPE refactoring of RedundantSamConstructorInspection
...
So EA-84354 fixed
2017-03-24 16:19:47 +03:00
Mikhail Glukhikh
6f4ae2585b
Fix "surround with null check": place check correctly for unsafe call
...
So #KT-16928 Fixed
2017-03-24 16:19:32 +03:00
Mikhail Glukhikh
bbdcf19123
Fix "secondary constructor -> primary" in case of implicit super call
...
So #KT-16903 Fixed
2017-03-24 16:19:18 +03:00
Mikhail Glukhikh
0baae16601
Don't apply "object->lambda" if 'this' is used inside #KT-15250 Fixed
2017-03-24 16:19:04 +03:00
Mikhail Glukhikh
ca92ec0b7b
Fix "Specify explicit lambda signature" when no parameters exists
...
So #KT-15075 Fixed
2017-03-24 16:18:56 +03:00
Vyacheslav Gerasimov
f60a7ffab0
Add intentions to move property from/to primary constructor
...
#KT-4578 Fixed
2017-03-24 15:22:50 +03:00
Alexander Udalov
fef4c8ccd8
Fix VerifyError on bound function reference on generic property
...
Also add a test for obsolete KT-14755
#KT-16929 Fixed
2017-03-24 11:06:15 +03:00
Dmitry Petrov
fc38479f48
References to enum entries should be always generated as GET_ENUM
2017-03-24 10:06:10 +03:00
Dmitry Petrov
64013171e8
KT-16905 Wrong IR for call to inner class constructor through typealias
2017-03-24 10:06:10 +03:00
Dmitry Petrov
d05de88e3e
KT-16904 Wrong IR when applying some operators to superclass properties in constructor
...
Use property accessors for assignment generation for inherited properties in constructor.
2017-03-24 10:06:10 +03:00
Nikolay Krasko
5405c81106
Minor: remove warnings in KotlinDebuggerTestBase
2017-03-23 21:01:42 +03:00
Nikolay Krasko
dfd7b0f388
Delegate step into command to kotlin command provider first
2017-03-23 21:01:42 +03:00
Nikolay Krasko
2c4f702d50
Remove stored contexts in tests to avoid leaks
2017-03-23 21:01:42 +03:00
Nikolay Krasko
2aa1b19ec9
Replace CompilingEvaluatorUtils methods with ClassLoadingUtils
2017-03-23 21:01:42 +03:00
Ilya Chernikov
3b60d56c0b
minor: fixing maven plugin tests
2017-03-23 18:11:40 +01:00
Ilya Chernikov
4d7e64614a
Make daemon tests more stable
...
Probably due to switching to the JDK8, the daemon tests became more flaky.
Making it less reliable on the log file closing. And try to close log files
on the daemon side.
Also improving diagnostics on many tests.
Also weaken parallel daemon start test a bit since it seems it is failing
on the RMI timeouts now.
2017-03-23 18:11:39 +01:00
Ilya Chernikov
c034a73d72
Extract and reuse JarFS-related IO fallback configurator function
...
Partly fixes #KT-16927
2017-03-23 18:11:38 +01:00
Ilya Chernikov
e59f6741c4
Move GradleScriptTemplatesProvider to the optional gradle part of "plugin.xml"
...
Fixes #KT-16649
2017-03-23 18:11:37 +01:00
Ilya Chernikov
8eaeadddfa
Disable flaky statistical benchmark tests for source sections plugin and JSR 223
2017-03-23 18:11:36 +01:00
Ilya Chernikov
3061862d31
Fix classloader extraction from script template
...
fixes #KT-16699
2017-03-23 18:11:35 +01:00
Ilya Chernikov
6b477e9f38
Remove jna from compiler-embeddable
...
It is considered in fact unused in the compiler
Fixes #KT-16862
2017-03-23 18:10:55 +01:00
Ilya Chernikov
319440718c
Add more JSR 223 and repl tests, fix double aggregation of GenericRepl state
...
- repl test with compilation error
- JSR 223 compilable tests
2017-03-23 18:07:45 +01:00
Ilya Chernikov
adc541c3b1
minor: Move sameSignature function into single use site to avoid local build problems
2017-03-23 18:07:44 +01:00
Dmitry Jemerov
b24ce04dea
Convert IntentionTestGenerated to light fixture test case
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
5af423f1b4
Allow configuring kotlin.test in KotlinLightCodeInsightFixtureTestCase
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
036b87a001
KotlinJdkAndLibraryProjectDescriptor: J2K
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
1435f11a9f
KotlinJdkAndLibraryProjectDescriptor: rename to .kt
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
24bdf994a9
AbstractIntentionTest: J2K
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
68ec8b3077
AbstractIntentionTest: rename to .kt
2017-03-23 15:48:33 +01:00
Dmitry Jemerov
199ce6706b
Convert AbstractConcatenatedStringGeneratorTest to light test case
...
Remove explicit library configuration; rely on
getProjectDescriptorFromFileDirective() instead.
2017-03-23 15:48:33 +01:00
Mikhail Glukhikh
1780f7c9a2
Put not-null original type as last possible smart cast target
...
This fixes muted tests testSmartCast (IDE highlighting) and
testNestedSealed (Diagnostics).
Together with commit 555b3f12 this makes #KT-15901 Fixed
2017-03-23 17:17:37 +03:00
Ilya Gorbunov
1cb4580380
Refactor: rename 'check' helper function with more descriptive name, remove 'var result'
2017-03-23 16:48:38 +03:00
Ilya Gorbunov
dce0da68c6
Cleanup: post-cleanup after deprecation cleanup in compiler
...
Replace `takeIf { !expr }` with `takeUnless { expr }`.
Cleanup redundant parethesis as in `listOf((expr))`.
Replace `listOf(expr)` with `expr.let(::listOf)` where the former caused significant indentation change.
2017-03-23 16:48:38 +03:00
Nikolay Krasko
e599688733
"Go to Type Declaration" for extension receiver and 'it' (KT-13013)
...
#KT-13013 Fixed
2017-03-23 13:37:06 +03:00
Nikolay Krasko
daaa59a1ad
Navigate to receiver from this in extension function (KT-16991)
...
#KT-16991 Fixed
#KT-13013 In Progress
2017-03-23 13:37:05 +03:00
Nikolay Krasko
9dfc92c55e
Navigate to lambda declaration from generated 'it' (KT-16992)
...
#KT-16992 Fixed
#KT-13013 In Progress
2017-03-23 13:37:05 +03:00
Nikolay Krasko
c976c3d909
Refactoring: extract common function (some usages were slightly changed)
2017-03-23 13:37:05 +03:00
Alexander Udalov
ccfa42289c
Fix compilation of kotlin-script-util
...
'check' was removed in 579238c3be
2017-03-23 11:46:26 +03:00
Nikolay Krasko
84c473d800
Speed up debugger tests by replacing base output preprocessor
...
Avoid calling InetAddress.getLocalHost() that can be very slow.
Exact connection or disconnection string isn't relevant for tests
anyway.
2017-03-23 00:31:43 +03:00
Nikolay Krasko
9ad705a60a
Remove all allFiles*.out from debugger output
2017-03-23 00:31:42 +03:00
Yan Zhulanow
cba523958e
Android Extensions: Support Dialog classes (KT-16957)
2017-03-22 22:03:22 +03:00
Yan Zhulanow
f1e303e18d
Minor: Update kapt tests for Kotlin 1.1
2017-03-22 22:03:21 +03:00
Yan Zhulanow
9d8adc1882
Minor: Execute kapt in IDEA tests
2017-03-22 22:03:20 +03:00
Yan Zhulanow
e93bc4c00d
Kapt3, minor: Enable parameter name saving in javac ClassReader
2017-03-22 22:03:19 +03:00
Yan Zhulanow
7535778ed4
AllOpen, NoArg: Check for the Gradle plugin in the classpath properly
...
Path segments in the plugin classpath entries are separated by the system file separator, not by '/'.
This fixes KT-16901
2017-03-22 22:03:19 +03:00
Yan Zhulanow
0379254918
Kapt3: Fix compatibility with IC (KT-16753)
...
Kapt does not support incremental compilation for stubs so we should delete source stubs before running annotation processing.
2017-03-22 22:03:18 +03:00
Yan Zhulanow
8ac14ab930
Android Extensions: Allow to disable IDE support (KT-12741)
...
Enable IDE plugin only if it is enabled in the build.gradle file.
2017-03-22 22:03:17 +03:00
Yan Zhulanow
5d4cefcc30
AllOpen: Do not make private members open (KT-16627)
2017-03-22 22:03:00 +03:00
Yan Zhulanow
bb0a46ac17
Kapt3: Ignore inner classes with clashing names (KT-16458)
...
Ignore classes (and references to such classes in declaration signatures) if one of the containing classes has the same simple name. This is forbidden in Java, thus should not be present in kapt source stubs.
2017-03-22 22:02:30 +03:00
Yan Zhulanow
2afc27a462
Initial implementation of kapt for Maven (KT-14478)
2017-03-22 22:02:29 +03:00
Yan Zhulanow
40fa5fb758
Kapt3: Support 'processors' option in Gradle plugin (KT-8558)
...
Also warn if kapt3 options are used without the "apply plugin: 'kotlin-kapt'" specified.
2017-03-22 22:02:28 +03:00
Yan Zhulanow
47ab47d6d1
Kapt3: Support 'processors' option in the compiler plugin (KT-8558)
...
Support specifying qualified names of annotation processors in the kapt3 compiler plugin (feature-parity with javac).
2017-03-22 22:02:27 +03:00
Yan Zhulanow
d30dbf25b5
Kapt1: Allow to use spaces in the collected identifiers (KT-12769)
2017-03-22 22:02:26 +03:00
Yan Zhulanow
948207be30
AllOpen, NoArg: Use the bundled plugins in Maven projects
...
Use the bundled compiler plugins for Maven projects (as we do for Gradle projects already) because the plugin provided as a dependency in the POM file may have an incompatible version.
2017-03-22 22:02:25 +03:00
Yan Zhulanow
4a2e409948
Kapt3: Support Kotlin sources generation (KT-14070)
2017-03-22 22:02:24 +03:00
Ilya Gorbunov
3088586ac3
Add runnable samples for trimIndent and trimMargin.
...
#KT-9786 Fixed
2017-03-22 21:54:46 +03:00
Alexander Udalov
579238c3be
Remove deprecated declarations from project code, cleanup usages
2017-03-22 20:25:54 +03:00
Alexander Udalov
6a049c9ab5
Fix Java6BuiltInsWithJDKMembersTest
...
After update of the project to JDK 8, the default JDK at java.home is
now JDK 8. However, this test relied on the fact that the default is JDK
6. Pass the path to the JDK 6 explicitly
2017-03-22 20:24:28 +03:00
Alexander Udalov
e4ae7ca4ce
Use type substitution when matching header-impl members
...
Previously, type substitution, which is critical for matching generic
header/impl members with each other, was only performed when
checkImplementationHasHeaderDeclaration was called for impl class
(areCompatibleClassifiers creates the correct substitutor). This was
done in areCompatibleClassifiers: a substitutor which maps type
parameters of the header class to type parameters of the impl class was
created.
Now we create the same substitutor when
checkImplementationHasHeaderDeclaration is called for an impl member of
an impl class as well, manually.
#KT-15230 Fixed
2017-03-22 20:19:14 +03:00
Alexander Udalov
4c868be869
Minor, render "header" or "impl" in LazyClassDescriptor.toString
...
This makes debugging of multi-platform compilation much easier
2017-03-22 20:19:13 +03:00
Alexander Udalov
81774926fa
Discriminate header class in resolution from sources in AbstractLazyMemberScope
...
Similarly to getFirstClassifierDiscriminateHeaders, we select the first
non-header class if possible, otherwise we select just the first class.
This makes sure that a reference will never be resolved to a header
class if the corresponding impl class is present.
Note that overall the issue may not be fixed yet, because there are
other scopes where header classes are not yet discriminated
(LazyImportScope, DeserializedMemberScope). However, at this point I
cannot reproduce this problem with these other scopes
#KT-15521 Fixed
2017-03-22 20:18:16 +03:00
Alexander Udalov
93e3bdc1ab
Improve multi-platform integration test
...
Compile the platform-specific code two times: once with the common file
first and the platform file second, and once with the platform file
first and the common file second in the compilation arguments. This is
needed because some issues in the compiler are only reproducible in one
of these two scenarios
2017-03-22 20:18:04 +03:00
Alexander Udalov
82c5c586b1
Minor, remove unnecessary test data files
2017-03-22 20:11:02 +03:00
Dmitry Jemerov
3caf7f112a
Disable JAnsi in tests
...
Workaround for https://github.com/fusesource/jansi/issues/66
2017-03-22 16:22:40 +01:00
Mikhail Zarechenskiy
2a93dea0c4
Use concrete candidate to resolve collection literal
...
This helps to avoid resolution errors when there is local array-like function with the same signature as in built-ins
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
222f101d10
Extract collection literal resolve components to separate Kotlin file
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
8466270bdb
Check that arguments of array function call in annotation are constants
...
#KT-16956 Fixed
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
a2ea518b1a
Allow to use collection literals only in annotations
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
bfe2ddf7c1
Introduce language feature for array literals in annotations
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
0f1acab40d
Support collection literals in the JVM backend
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
859bccb9fc
Propagate resolution results without ambiguity to constant evaluator
...
This allows to get rid of useless diagnostics that some value is not a constant
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
e49b2811ec
Apply constant folding for collection literals to use in annotations
...
Currently this is achieved with several hacks:
- Postpone computation of argument type info when there is no candidate resolver. We have to do this, because we don't have expected type and therefore we could write wrong information to trace
- Presume that for annotation calls there is only one candidate resolver and then resolve arguments with expected type (see `getArgumentTypeInfo`), otherwise because of quadratic complexity of the algorithm resolve would be slow
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
c85f6e7d0e
Resolve collection literal expression as special array-like function
2017-03-22 17:59:58 +03:00
Mikhail Zarechenskiy
d3fd96ceed
Parse collection literals as atomic expressions
2017-03-22 17:59:58 +03:00
Dmitry Jemerov
3c7678092e
Don't mark compiler-created PSI elements as generated
...
This saves some memory on storing the generated flag in the PsiElement
userdata and time required to store the flag.
2017-03-22 13:59:21 +01:00
Alexander Udalov
dc3aa26e3f
Ignore getMembersOfStandardJavaClasses light analysis test
...
See #KT-16616
2017-03-22 14:33:57 +03:00
Alexey Sedunov
56d22277b7
Move: Filter out ConflictUsageInfo instances before running the refactoring
...
#KT-16556 Fixed
2017-03-22 13:36:19 +03:00
Alexey Sedunov
2f136dae1c
Move: KT-8955
...
Fix NPE on moving directory where at least one Kotlin file
contains package directive unmatched by the containing directory
#KT-8955 Fixed
2017-03-22 13:36:18 +03:00
Alexey Sedunov
d1857d68bc
Move: Fix element listener retrieval
...
Get element listener before original declaration is invalidated by the refactoring
2017-03-22 13:36:17 +03:00
Alexey Sedunov
1a8aa6091a
Move: Fix incorrect FqName when moving declaration to default package
...
#KT-15586 Fixed
2017-03-22 13:36:16 +03:00
Alexey Sedunov
1331922963
Move: Fix file rename of move
...
Avoid temporary file rename if the current name doesn't conflict
with other files in the target directory.
Improve protection against exceptions during the refactoring
which may prevent final rename
2017-03-22 13:36:15 +03:00
Alexey Sedunov
92fbca452d
Move: Do not report conflict on usages of inherited protected members
...
#KT-15190 Fixed
2017-03-22 13:36:14 +03:00
Alexey Sedunov
e82b256640
Move: Implement conflict checking for internal members
...
#KT-13190 Fixed
2017-03-22 13:36:13 +03:00
Alexey Sedunov
6f5249ecc7
Move: Fix processing of references to non-real members of companion object
...
#KT-15559 Fixed
2017-03-22 13:36:12 +03:00
Alexey Sedunov
bab762b761
Implement post-refactoring optimization of unused imports
...
#KT-15822 Fixed
#KT-13755 Fixed
2017-03-22 13:36:11 +03:00
Alexey Sedunov
7d185349c8
Move: Fix broken tests
...
Check that constructor call corresponds to class being moved before
transforming outer instance to argument
2017-03-22 13:36:10 +03:00
Alexey Sedunov
13de9aea81
Move: Fix processing of conflicting usages
...
Exclude conflict-associated usages from refactoring.
Move search of file internal usages to MoveKotlinDeclarationsProcessor
2017-03-22 13:36:09 +03:00
Alexey Sedunov
a21f19d613
Move: Use Kotlin declaration mover to handle KtFile
...
IDEA-provided file mover does not process conflicts
#KT-13911 Fixed
2017-03-22 13:36:08 +03:00
Alexey Sedunov
9a3ace423a
Move: Update test data for tests with conflicts
...
Check refactoring result for the case when conflicts are ignored.
Fix move destination when moving to another source root
2017-03-22 13:36:07 +03:00
Alexey Sedunov
38f9e99d91
Kotlin Facet: Fix argument merging
...
#KT-16982 Fixed
2017-03-22 13:36:06 +03:00
Alexey Sedunov
7c7e41592a
Kotlin Facet: KT-16980
...
Avoid reinitialization of module-level settings on each run of
the analyzer in the absence of Kotlin facet
#KT-16980 Fixed
2017-03-22 13:36:05 +03:00
Alexander Udalov
43f1c843ce
Minor, fix typo in docs on built-ins
2017-03-22 13:27:38 +03:00
Dmitry Jemerov
93cb12fed0
Don't keep around an empty value parameters list in FunctionDescriptor
2017-03-22 10:40:19 +01:00
Dmitry Jemerov
3aedf2548c
Don't create empty list for Call arguments
2017-03-22 10:40:19 +01:00
Dmitry Jemerov
51c7fc9f73
Don't use UserDataHolder in SlicedMapImpl, use KeyFMap directly
2017-03-22 10:37:07 +01:00
Dmitry Jemerov
f45511b983
Don't recreate Name instances for special resolve constructs
2017-03-22 10:35:16 +01:00
Matthew Brener
adc19b433e
its --> it's in Char.kt ( #1041 )
2017-03-22 10:29:39 +01:00
Yan Zhulanow
7a5f94129c
Add ClassBuilderMode.KAPT3 tests
2017-03-21 20:49:36 +03:00
Yan Zhulanow
e25e19c4d6
Refactoring: Remove light analysis test data
...
The light analysis test data is not needed anymore cause the light analysis result is now automatically checked against the one from the full analysis.
2017-03-21 20:49:36 +03:00
Yan Zhulanow
c50881fd02
Refactoring: Extract light analysis tests from box tests
2017-03-21 20:49:34 +03:00
Mikhail Glukhikh
23848fa728
Suggest bound references in "Lambda --> Reference" for 1.1+ only
2017-03-21 20:32:15 +03:00
Ilya Chernikov
0f21db1ecb
Copy base script classes to script-runtime before building bootstrap
2017-03-21 16:30:51 +01:00
Ilya Chernikov
08f6b6c93c
minor: get rid of the compiler-test dependency in source-sections test
2017-03-21 16:30:50 +01:00
Ilya Chernikov
1eab936618
minor: Bump rubygrapefruit native-platform version to 0.14
2017-03-21 16:30:49 +01:00
Ilya Chernikov
d439c13fb5
minor: correct measurement error in eval bench test
2017-03-21 16:30:48 +01:00
Ilya Chernikov
4043f491da
minor: replace Pair with data class in daemon client connectAndLease call
...
backport from 1.0.7
2017-03-21 16:30:47 +01:00
Ilya Chernikov
4b430b49a7
Implement source sections compiler plugin
...
allows to compile only parts of the source files, denoted by top-level
"sections" (function with lambda param calls), but preserving original
file line/column numbers for easier diagnostics. Allow e.g. to compile
gradle "buildscript" section without preprocessing original file in
advance. See tests for examples.
2017-03-21 16:30:46 +01:00
Ilya Chernikov
63c276d444
Create extension points and register plugins earlier...
...
to allow plugins to affect source files creation
2017-03-21 16:30:45 +01:00
Alexander Udalov
7dfa3bea18
Update tools & libraries projects to use JDK 8 when needed
2017-03-21 17:45:53 +03:00
Alexander Udalov
33a0ae0fcd
Skip kotlin-maven-plugin integration test if "skipTests" is defined
...
Similarly to kotlin-maven-plugin-test/pom.xml
2017-03-21 17:45:51 +03:00
Alexander Udalov
4273357adf
Skip kotlin-maven-plugin-test tests if "skipTests" property is defined
...
"mvn -DskipTests ..." or "mvn -DskipTests=true ..." should not invoke
any tests
2017-03-21 17:45:51 +03:00
Sergey Igushkin
132393cc64
Fix for androidTest Gradle build
...
Replaced adding Kotlin sources with dependency on copy*KotlinClasses,
which might not be called since Android Gradle plugin sometimes
bypasses the tasks in finalizedBy .
Added a test for androidTest build apart from general build.
Issues: #KT-16897 Fixed
2017-03-21 17:30:59 +03:00
Dmitry Jemerov
ba9213234c
Increase -Xmx for running Ant from AntTaskTestGenerated
...
The current value is no longer sufficient when running under JDK 8.
2017-03-21 15:19:55 +01:00
Sergey Igushkin
498c4dddea
Fix for compatibility with Android Gradle plugin 2.4.0-alpha1
...
Deferred resolution of JAR-to-AAR mapping, since the Android Gradle
plugin now resolves dependencies at execution phase.
Dropped the code related to the Jack toolchain compatibility.
Throwing a build error when Jack is enabled.
Changed warning about Jack into a build error.
2017-03-21 16:56:09 +03:00
Simon Ogorodnik
439e158fb2
Fix failing test after migration to IDEA 171
...
BasicCompletionWeigherTestGenerated$ExpectedInfo.testPreferMatchingThis
Looks like IDEA now rearranges elements with same weight by length and
then alphabetically
2017-03-21 16:47:16 +03:00
Dmitry Jemerov
f0b7891d41
Turn off API usage inspection
2017-03-21 14:44:20 +01:00
Pavel V. Talanov
a03e9d340e
Wrap sourceScope() and binaryScope() using sourceFilterScope
...
To avoid having to wrap at call site
2017-03-21 16:20:02 +03:00
Pavel V. Talanov
06fd1f3c44
Drop unused LibrarySourceHacks
2017-03-21 16:20:02 +03:00
Pavel V. Talanov
dec9fa0324
SourceNavigationHelper: fix navigation to callables
...
Previously we could differentiate between callables with the same name
when relevant type declaration were in the same file only
Problem manifested most severely when several copies of sources were attached
to the same library
2017-03-21 16:20:01 +03:00
Pavel V. Talanov
d9a9d50602
KotlinScriptConfigurationManager#notifyRootsChanges: run synchronously in tests
...
Allows to unmute some of the ScriptConfigurationNavigation tests
2017-03-21 16:20:00 +03:00
Pavel V. Talanov
88447d69cb
Introduce ScriptDependenciesSourceModuleInfo
...
Implement SourceForBinaryModuleInfo api to support navigation
Support in getModuleInfo and KotlinCacheServiceImpl
2017-03-21 16:19:59 +03:00
Pavel V. Talanov
434018f679
ScriptConfigurationNavigationTest: test navigation to kotlin library
2017-03-21 16:19:59 +03:00
Pavel V. Talanov
115474b90f
SourceNavigationHelper: use API to narrow search scope
2017-03-21 16:19:58 +03:00
Pavel V. Talanov
4dee108afe
J2K SourceNavigationHelper: convert to Kotlin and prettify
2017-03-21 16:19:57 +03:00
Pavel V. Talanov
aa74ccf163
J2K SourceNavigationHelper: rename file
2017-03-21 16:19:57 +03:00
Pavel V. Talanov
4c94d931fa
findDecompiledDeclaration: narrow decompiled declaration search scope
...
Search scope of library that descriptor originated from
Introduce API that matches binaries and its' sources via IdeaModuleInfos
2017-03-21 16:19:56 +03:00
Pavel V. Talanov
569e7ac593
getModuleInfo, minor: clarify parameter parameter
2017-03-21 16:19:55 +03:00
Pavel V. Talanov
c7f147d058
Introduce NavigationWithMultipleLibrariesTest
...
Test navigation to library decompiled and source declaration when
there are multiple copies of the same library in project
Related to ba1ee99e97
2017-03-21 16:19:54 +03:00
Pavel V. Talanov
47e77201d5
AbstractNavigateToLibraryTest: refactor, extract utility code
2017-03-21 16:19:54 +03:00
Alexander Udalov
2d1b15b6fb
Drop usages of '-XX:MaxPermSize' in run configurations on JDK 8
2017-03-21 16:09:18 +03:00
Dmitry Jemerov
04b64fa30c
Sort Kotlin versions loaded from Maven by number
...
Otherwise we get 1.0.7 on top of 1.1.1, which is suboptimal
2017-03-21 14:03:25 +01:00
Dmitry Jemerov
8f8db75bb4
getNonConfiguredModules(project, configurator) excludes modules already configured with other configurators
...
#KT-16381 Fixed
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
95bc0813f8
Don't show "Configure Kotlin" notification with an empty list of configurators (context: KT-16070)
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
9f8af1feea
Refactor getNonConfiguredModules(Project)
...
Rename to getNonConfiguredModulesWithKotlinFiles() to match what it
actually does, remove duplicate configurator status check, extract code
for collecting all configurators
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
b86fe60a24
Don't report "can be configured" status if the file is already configured with another Gradle configurator
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
1f96ead801
"Configure Kotlin in project" handles modules from Gradle source roots
...
THose modules are now always collapsed to their base modules.
#KT-11828 Fixed
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
b1a65e4c74
Don't show pre-1.1.0 version of Kotlin in version chooser when configuring JS projects
...
#KT-16400 Fixed
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
8e26d5257f
Don't add stdlib-jre7 or stdlib-jre8 dependencies when configuring Kotlin with pre-1.1 version
...
#KT-16401 Fixed
2017-03-21 14:02:05 +01:00
Dmitry Jemerov
cd4636a1e5
Add current version to "Configure Kotlin in project" version chooser if it is a release version and it wasn't found in the search results
...
#KT-16571 Fixed
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
0f21595e4b
Don't show "Configure Kotlin" if module is configured, project is not
...
Report CAN_BE_CONFIGURED from Gradle configurator only if we didn't
find any file containing valid configuration (normally the top-level
project file in an Android project doesn't have any Kotlin
configuration, so we report CAN_BE_CONFIGURED even though the module
file contains valid configuration)
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
b48b3b3237
Show "Configure Kotlin" notification at most once after project opening
...
Don't show notification after every sync; trigger it from
rootsChanged handler because the root model is not yet updated at
syncDone point
#KT-16590 Fixed
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
0a586291b6
Check jar name before trying to load JS library version
...
#KT-16596 Fixed
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
09b60e3f77
JsLibraryStdDetectionUtil: J2K
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
dffff77a5d
JsLibraryStdDetectionUtil: rename to .kt
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
ad3be8f8b5
Add test for checking JS runtime version
2017-03-21 14:01:37 +01:00
Dmitry Jemerov
1c0acee989
Remove obsolete code for removing obsolete JS library
2017-03-21 14:01:37 +01:00
shiraji
27e1462b00
Apply quick-fix "Make visible" for INVISIBLE_FAKE #KT-16131 Fixed
2017-03-21 13:50:49 +03:00
Alexander Udalov
d4500878cb
Do not strip some classes from xercesImpl.jar in compiler.pro
...
Note that with this config, the kotlin-compiler.jar's size is increased
by 1.5Mb
#KT-16968 Fixed
2017-03-21 13:03:19 +03:00
Alexander Udalov
af5fbef4ea
Use JDK 1.6 to compile modules under "core"
...
Outputs of these modules go into kotlin-stdlib and kotlin-reflect, both
of which must be usable on Java 6
2017-03-21 13:03:18 +03:00
Dmitry Jemerov
d80891e823
Add xercesImpl.jar to core classpath as it's now required for JDOMUtil
2017-03-20 18:46:13 +01:00
Alexey Sedunov
2e3617adbb
Spring Support: Fix tests in IDEA 2017.1
...
Filter out duplicate reference targets.
Fix test data as directory references are available
inside of string literals.
Fix test data as Spring @Autowired inspection
no more reports parameterless methods.
Fix gutter checking as configuration bean references now resolve
to @ComponentScan annotation
2017-03-20 18:46:12 +01:00
Simon Ogorodnik
2804264289
Fix regression of completion inside string templates
...
CompletionContributor should not store offsets inside
replacement zone(part of file which are replaced with
dummy identifier) in offsetMap
#KT-16848 fixed
2017-03-20 18:46:11 +01:00
Dmitry Jemerov
cf18c2243f
Fix test: check highlighting only in one direction
...
Otherwise, when we check the highlighting on one of the files, the text
of the other still contains the <lineMarker> annotation and can't be
indexed as valid Kotlin code.
2017-03-20 18:46:10 +01:00
Alexander Udalov
555b3f12ee
Use LinkedHashSet instead of HashSet in DataFlowInfo.getCollectedTypes
...
This fixes DiagnosticsTestGenerated$Tests.testImplicitIntersection,
which began to fail after update to JDK 8 because the iteration order of
HashMap/HashSet has changed in JDK 8:
http://openjdk.java.net/jeps/180
http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/43bd5ee0205e
2017-03-20 18:46:09 +01:00
Mikhael Bogdanov
211b58ac6e
kt1770.kt test rewrote during migration to 171 platform
2017-03-20 18:46:08 +01:00
Dmitry Jemerov
10aedaf0f4
Adjust test data for IDEA 2017.1
...
Since https://github.com/JetBrains/intellij-community/commit/9c8003c
deprecated methods are considered to be entry points, so the Safe
Delete quickfix is no longer available for them.
2017-03-20 18:46:08 +01:00
Alexander Udalov
999e1061b8
Update test data for ant task tests
...
Looks like javac 1.8 started to report compilation errors a bit
differently here
2017-03-20 18:46:07 +01:00
Alexander Udalov
449d1f6ad2
Fix KotlinVersionsTest, use SAX parser instead of DOM
2017-03-20 18:46:06 +01:00
Alexander Udalov
33e9e660c4
Fix JvmRuntimeDescriptorLoaderTestGenerated
...
- Use FULL_JDK instead of mock JDK in some tests because mock JDK is
created from JDK 6 and full JDK is now JDK 8, so there are differences
in the behavior in the compiler and at runtime
- Remove some '*.runtime.txt' files which were workarounds to JDK 6
reflection issues regarding generic inner classes; code in these tests
is now loaded exactly the same in the compiler and at runtime
- Change supertype in SupertypesAndBounds.kt: the class in the supertype
is not relevant to that test, it checks that annotations can be loaded
on types
2017-03-20 18:46:05 +01:00
Alexander Udalov
3c96099f7c
Fix compileJavaAgainstKotlin tests
...
- Use another API to get file name out of a javac diagnostic
(.getSource().getName()'s behavior changed in JDK 8)
- Delete .txt files for those tests which check that javac reported a
compilation error; the order and content of declarations in those
files is undefined
2017-03-20 18:46:05 +01:00
Nikolay Krasko
4edfd0d960
Move getting source position to manager thread in tests
...
Real usages are performed in this thread too. Using AWT now fails
under runInReadActionWithWriteActionPriorityWithRetries added in
b0e995b41e
2017-03-20 18:46:04 +01:00
Alexey Sedunov
ecd56c6a40
Safe Delete: Fix tests in IDEA 2017.1
...
Now Java refactoring checks for side effects when deleting
arguments, so instantiation of Kotlin FunctionN is treated as
"unsafe"
2017-03-20 18:46:03 +01:00
Alexey Sedunov
b65460c12f
Move: Fix tests in IDEA 2017.1
...
Do not prevent usages search if target directory is not known yet.
Force content root configuration for multi-module tests
2017-03-20 18:46:02 +01:00
Mikhael Bogdanov
496a21254b
Black box update
2017-03-20 18:46:01 +01:00
Alexey Tsvetkov
40574d31ac
JPS tests: avoid using deprecated API
2017-03-20 18:46:00 +01:00
Dmitry Jemerov
3a8cf68541
Keep class file version during shrinking; generate Java 8 bytecode
...
sometimes
2017-03-20 18:45:59 +01:00
Dmitry Jemerov
4cae0538a8
Don't warn about ElementTraversal
...
IDEA now (since commit 6ff87c6) uses this class to build classpath
for Xerces, and we don't use Xerces
2017-03-20 18:45:59 +01:00
Dmitry Jemerov
0638106bf3
Fix NPE in tests when ProjectFileIndex is not available
2017-03-20 18:45:51 +01:00
Dmitry Jemerov
0d86bdd216
Remove Java 6/7 warning from expected output of the compiler
2017-03-20 18:45:51 +01:00
Dmitry Jemerov
2adacf74ac
Reduce -Xmx of "All Non-Compiler Tests" configuration
...
This should prevent VM crashes on TeamCity
2017-03-20 18:45:50 +01:00
Dmitry Jemerov
a8bd529871
Register MetaLanguage.EP_NAME in J2K test
2017-03-20 18:45:49 +01:00
Dmitry Jemerov
61f157e89d
Remove write action around finishLookup(), according to IJ 2017.1 req
2017-03-20 18:45:48 +01:00
Dmitry Jemerov
b9f326bfa1
Register MetaLanguage extension point in ParsingTestCase
2017-03-20 18:45:47 +01:00
Dmitry Jemerov
097ba45783
Fix service and EP registration according to changes in 2017.1
...
Remove ControlFlowFactory (which is now registered in the platform),
register MetaLanguage (new in 2017.1)
2017-03-20 18:45:46 +01:00
Dmitry Jemerov
a539939388
Fix testdata according to contract inference changes in 2017.1
2017-03-20 18:45:46 +01:00
Dmitry Jemerov
ad821e83bd
Fix testdata according to comment selection changes in 2017.1
2017-03-20 18:45:45 +01:00
Dmitry Jemerov
d6709b726e
Fix testdata according to changes in automatic renaming rules in 17.1
2017-03-20 18:45:44 +01:00
Dmitry Jemerov
374cf517e1
Don't try to create "add modifier" fix for read-only elements
...
This fixes a failure of KotlinCleanupInspectionTest on IDEA 17.1.
2017-03-20 18:45:43 +01:00
Dmitry Jemerov
3d98237304
Fix GradleFacetImportTest: run write action only in EDT
2017-03-20 18:45:43 +01:00
Dmitry Jemerov
49a4625368
Fix testdata: Android projects use kotlin-stdlib-jre7
2017-03-20 18:45:42 +01:00
Dmitry Jemerov
12fc89f35d
Update to 171.SNAPSHOT to pick up fix for IDEA-169570; fix compilation
2017-03-20 18:45:41 +01:00
Nikolay Krasko
1d29c81346
! (TODO) Update build test data in 171
2017-03-20 18:45:40 +01:00
Nikolay Krasko
7da424d53f
Port setInPerformanceTest -> setInStressTest
2017-03-20 18:45:39 +01:00
Nikolay Krasko
e57b3651c2
Replace removed method in LibraryPresentationProviders
2017-03-20 18:45:39 +01:00
Nikolay Krasko
615f9d3a1f
Try to avoid exception in getOffset() call
2017-03-20 18:45:38 +01:00
Nikolay Krasko
eb8415a1f3
Use new api from idea 171 in KotlinStepOverInlinedLinesHint
2017-03-20 18:45:37 +01:00
Nikolay Krasko
bcf29e6fbf
Run tests in read action and not in EDT thread
...
Otherwise test will fail because of runInReadActionWithWriteActionPriority call in EDT
2017-03-20 18:45:36 +01:00
Nikolay Krasko
82a2a705fb
Do not wrap analyze into write action priority in tests
...
In tests the code is executed in EDT and runInReadActionWithWriteActionPriority fails
See: MergingUpdateQueue.setPassThrough() and ExternalToolPassFactory() constructor
2017-03-20 18:45:36 +01:00
Nikolay Krasko
95061885b0
Update after separating JPS builders into two modules
2017-03-20 18:45:35 +01:00
Nikolay Krasko
3e6f57b684
Updated nullability in RunLineMarkerContributor
2017-03-20 18:45:34 +01:00
Nikolay Krasko
4f079d2768
LightQuickFixTestCase.parseActionHint() method was removed
2017-03-20 18:45:33 +01:00
Nikolay Krasko
d5aac7df25
Copy dropped method nameToCompare() to test utils
2017-03-20 18:45:33 +01:00
Nikolay Krasko
9f51b12193
Update guava 19.0 sources jar
2017-03-20 18:45:32 +01:00
Nikolay Krasko
ed9e083008
Remove unused import
2017-03-20 18:45:31 +01:00
Mikhail Glukhikh
e6cefba98b
Fix imports vs 2016.3 (ResourceFoldingBuilder)
2017-03-20 18:45:30 +01:00
Mikhail Glukhikh
83a8b041ad
Fix ConfigureProjectTestGenerated / GradleConfigureProject ... for branch 163 (jre7->jre8)
2017-03-20 18:45:29 +01:00
Nikolay Krasko
2eb6c393a4
Move android modules to Java 8 SDK
2017-03-20 18:45:29 +01:00
Dmitry Jemerov
715410a9bc
Workaround for hanging test
2017-03-20 18:45:28 +01:00
Dmitry Jemerov
60a2151a33
Fix compilation
...
(cherry picked from commit 46b9041)
2017-03-20 18:45:27 +01:00
Yan Zhulanow
0995f2700e
doMoveFile() now accepts not-null PsiDirectory
...
(cherry picked from commit 8a16c90)
2017-03-20 18:45:26 +01:00
Yan Zhulanow
59055e28ee
CreateFileResourceQuickFix now accepts ResourceFolderType instead of ResourceType
...
(cherry picked from commit 55f350f)
2017-03-20 18:45:26 +01:00
Ilya Chernikov
4be5fcc14a
Fix test code after UsefulTestCase api changes
2017-03-20 18:45:25 +01:00
Vyacheslav Gerasimov
180ae070ee
Fixed KotlinAndroidResourceQuickFixProvider for AS 2.2
2017-03-20 18:45:24 +01:00
Dmitry Jemerov
594e2b6a77
fix compilation
2017-03-20 18:45:23 +01:00
Dmitry Jemerov
ab5067a0d3
remove write action around closeAndDeleteProject()
2017-03-20 18:45:23 +01:00
Dmitry Jemerov
b10073465c
fix compilation of new lint checks against IDEA 163
2017-03-20 18:45:22 +01:00
Alexey Tsvetkov
05f278ce20
JPS: implement tracking of null annotations
...
#KT-12933 fixed
#KT-14266 fixed
2017-03-20 18:45:21 +01:00
Alexey Tsvetkov
6d958eb32b
Fix dist by ignoring some library classes during compiler shrinking
2017-03-20 18:45:20 +01:00
Dmitry Jemerov
b101550cae
Advance idea.plugins.compatible.build
2017-03-20 18:45:19 +01:00
Dmitry Jemerov
e51018406f
register PsiElementFinder extensions before JavaPsiFacade is registered
2017-03-20 18:45:18 +01:00
Dmitry Jemerov
036bfed984
Add resources_en.jar to properties plugin classpath
2017-03-20 18:45:18 +01:00
Konstantin Bulenkov
fcdd5e0a19
update Kotlin icons according to new IntelliJ style
2017-03-20 18:45:17 +01:00
Dmitry Jemerov
aced2e7eb4
Update compatible build number range
2017-03-20 18:45:16 +01:00
Dmitry Jemerov
a2b0b3d6eb
fix compilation against branch 163
2017-03-20 18:45:15 +01:00
Yan Zhulanow
24c9b6e171
Migrate IDEA plugin code to Android Studio 2.2 (br 145)
2017-03-20 18:45:15 +01:00
Dmitry Jemerov
99af2a809b
Update IDEA to 171.2613.7
2017-03-20 18:45:14 +01:00
Dmitry Jemerov
4d10b18fe1
Fix for 171 platform
2017-03-20 18:44:14 +01:00
Ilya Gorbunov
87c055cc61
Fix progression iterators to respect the Iterator contract.
...
#KT-16923 Fixed
2017-03-20 20:13:54 +03:00
Ilya Gorbunov
e5a28311bc
Fix infinite sequence being terminated prematurely when being iterated without calling hasNext
...
#KT-16922 Fixed
2017-03-20 20:13:54 +03:00
Valentin Kipyatkov
f00ab135d6
Do not insert redundant space
2017-03-20 19:08:03 +03:00
Valentin Kipyatkov
3ec28f1242
Attempt to preserve partial substitution when detecting expected type for smart completion
2017-03-20 19:08:03 +03:00
Valentin Kipyatkov
b5dd2cc540
Completion of lambda parameters
...
Also changed policy for sorting of smart completion items in basic completion
#KT-16800 Fixed
#KT-12002 Fixed
2017-03-20 19:08:02 +03:00
Nikolay Krasko
c6b9aebfcf
Minor: remove warning
2017-03-20 17:49:23 +03:00
Nikolay Krasko
afc0892d1f
Synchronize state of parser and lexer for LONG_TEMPLATE_ENTRY (KT-14865)
...
Lexer monitors "long string template" state end and will produce
LONG_TEMPLATE_ENTRY_END token when it is reached. If parser continues
without waiting for it, it will eventually get handling token that
will produce irrelevant error. Such behaviour also breaks lazy
elements (LAMBDA_EXPRESSION in this case) contract: range of parsed text
in eager mode should be same to one parsed in lazy mode.
#KT-14865 Fixed
2017-03-20 17:47:29 +03:00
Alexander Udalov
87ff70ee0f
Replace JS metadata version with '$ABI_VERSION$' in tests
...
Similarly to the JVM metadata version, this is done in order to avoid
changing any test data when the version is increased
2017-03-20 17:22:29 +03:00
Alexander Udalov
e6f6b0dad5
JS: merge LibrarySourcesConfig into JsConfig
2017-03-20 17:22:29 +03:00
Alexander Udalov
bf90cb5cc0
JS: support -Xskip-metadata-version-check for incompatible ABI libraries
...
Allow the compiler to read such libraries without any errors, at the
risk of crashing with an exception.
Also fix a minor bug in the diagnostic message in LibrarySourcesConfig
and in the corresponding test in KotlinJpsBuildTest
2017-03-20 17:22:29 +03:00
Alexander Udalov
30dfd5cc1b
JS: support '-Xskip-metadata-version-check' to allow pre-release libraries
2017-03-20 17:22:29 +03:00
Alexey Sedunov
a795a256f4
Configuration: Fix behavior of "output directory" control
...
Do not show file chooser twice.
Disable/enable control on component initialization and change of
"Use project settings" option
#KT-16952 Fixed
#KT-16953 Fixed
2017-03-20 17:19:13 +03:00
Simon Ogorodnik
f56af41d1e
Fix TypeAliasConstructorDescriptor's to create only once when required
...
Some IDE features relates onto that same descriptors will remain same
between resolve calls
Fix it to be true for TypeAliasConstructorDescriptor's
#KT-16265 fixed
2017-03-20 16:55:40 +03:00
Sergey Mashkov
23cbb83c75
IDL2K: drop garbage code, refactor to improve readability
2017-03-20 16:51:32 +03:00
Mikhail Zarechenskiy
1a4b9cb228
Show warning for mod from built-ins since API=1.1
2017-03-20 00:45:18 +03:00
Mikhail Zarechenskiy
e4188f889e
Do not show warning for mod from built-ins when LV=1.0
...
#KT-16372 Fixed
2017-03-20 00:41:58 +03:00
Alexey Sedunov
071744a57f
Extract Superclass/Interface: show inapplicability error before choosing the extraction container
...
#KT-15339 Fixed
2017-03-19 17:20:32 +03:00
Alexey Sedunov
eb9c775476
Navigation: Support NEW_AS_CONSTRUCTOR flag for constructor calls
...
#KT-15398 Fixed
#KT-15536 Fixed
2017-03-19 17:20:24 +03:00
Alexey Sedunov
5e8cd654ec
Find Usages: Fix processing of label references in 'return' expressions
...
#KT-7516 Fixed
2017-03-19 17:20:17 +03:00
Alexey Sedunov
275cdbbea7
Rename: Fix renaming of function by label reference inside of lambda argument
...
#KT-7520 Fixed
2017-03-19 17:20:10 +03:00
Alexey Sedunov
b1df91395a
Minor: Use handler autodetection in some rename tests
2017-03-19 17:20:02 +03:00
Alexey Sedunov
871d42f05a
Rename: Support renaming class by short reference to companion object
...
#KT-16108 Fixed
2017-03-19 17:19:55 +03:00
Alexey Sedunov
834cdd63ab
Create from Usage: Support class generation by class literal expression
...
#KT-16188 Fixed
2017-03-19 17:19:48 +03:00
Alexey Sedunov
505a6bcbf2
JPS: Copy project-level settings before use
...
Sharing these settings for reading/writing
between different module during JPS build
may lead to compiler settings
(plugionOptions, in particular) of several
modules to be mixed
#KT-16888 Fixed
2017-03-19 17:19:40 +03:00
Alexey Sedunov
2e1b4cd692
Misc: Fix test
2017-03-19 17:19:33 +03:00
Alexey Sedunov
2bb7bdfc3f
Kotlin Facet: Fix reading of v1 configuration
...
Favor language/api version specified in <versionInfo> element
in case it differs from the one in
<option name="_commonCompilerArguments">
#KT-16861 Fixed
2017-03-19 17:19:26 +03:00
Alexey Sedunov
ca46100581
Kotlin Facet: Add tab for compiler plugin options
...
#KT-15768 Fixed
2017-03-19 17:19:18 +03:00
Alexey Sedunov
c264a2e15f
Configuration: Improve presentation of the settings override warning
2017-03-17 21:08:44 +03:00
Alexey Sedunov
7c1249746f
Kotlin Facet: Show scripting section only if target platform is JVM
...
#KT-16316 Fixed
2017-03-17 21:03:29 +03:00
Alexey Sedunov
f63828ff20
Configuration: Make UI improvements
...
Fix layout
Fix label names
Replace "Generate no warnings" checkbox with "Report compiler warnings"
2017-03-17 21:03:22 +03:00
Nikolay Krasko
f38753ee3c
Remove explicit AppScheduledExecutorService shutdown (commit revert)
...
Revert "Problem: manually shutdown AppScheduledExecutorService to allow compiler stop properly"
The commit was added during update to 162.1024.1 to fix hangs in ant
tasks on teamcity because of some thread created in
AppScheduledExecutorService service.
Remove the commit because can't reproduce those hangs under 162.2946
(Probably 12a079ef41 fixed the hangs).
This should also be addressed in fix for https://youtrack.jetbrains.com/issue/IDEA-169562
This reverts commit 99a75021e1 .
2017-03-17 18:02:11 +03:00
Nikolay Krasko
a63953432e
Set "weak warning" severity for SameParameterValue inspection
2017-03-17 17:27:54 +03:00
Nikolay Krasko
52789df812
Minor: fix warnings in AbstractKotlinParsing.java
2017-03-17 17:27:53 +03:00
Sergey Mashkov
49c2f40f7d
KT-16572 Add links to Mozilla Developer Network to kdocs of classes that we generate from IDL
...
regenerate
2017-03-17 13:04:34 +03:00
Sergey Mashkov
8842b6894e
KT-16572 Add links to Mozilla Developer Network to kdocs of classes that we generate from IDL
2017-03-17 13:04:34 +03:00
Sergey Mashkov
02721a0b7f
KT-16252 IDL2K: Add ItemArrayLike interface implementation to collection-like classes
...
regenerate
2017-03-17 13:04:33 +03:00
Sergey Mashkov
496795dd56
IDL2K eliminate attribute modality change caused by inheritance
...
always override attributes in class if it is inherited from an interface
2017-03-17 13:04:33 +03:00
Sergey Mashkov
a5d6541f1e
KT-16252 IDL2K: Add ItemArrayLike interface implementation to collection-like classes
2017-03-17 13:04:32 +03:00
Vyacheslav Gerasimov
a795313c7d
Add inspection for usages of Kotlin internal declarations in Java
...
#KT-11393 Fixed
2017-03-16 21:12:05 +03:00
Alexander Udalov
bd53922c64
Minor, don't shade com.sampullara in compiler-embeddable
...
See 73b879e
2017-03-16 15:40:06 +03:00
Alexander Udalov
332a0f5adc
Use 'languageVersionSettings' extension instead of key directly
...
Also fix compilation of kotlin-script-util
2017-03-16 14:18:01 +03:00
Alexey Sedunov
0e4c3ec202
Kotlin Facet: Do not present imported -d/-cp in "Additional arguments"
2017-03-16 03:14:41 +03:00
Alexey Sedunov
88a394e892
Kotlin Facet: Validate "additional arguments"
...
Validate consistency of "additional arguments" with respect to settings specified in other UI controls
2017-03-16 03:14:40 +03:00
Alexey Sedunov
fa06965ed6
Kotlin Facet: Add import test for Maven project with submodule
2017-03-16 03:14:39 +03:00
Alexey Sedunov
cf9d7a0470
Kotlin Facet: Detect platform by stdlib dependency in android-gradle projects
...
#KT-16827 Fixed
2017-03-16 03:14:38 +03:00
Alexey Sedunov
040f5f88f2
Configuration: Show warning in project settings if they'are overridden in some modules(s)
2017-03-16 03:14:37 +03:00
Alexey Sedunov
5dc5ca551f
Configuration: Make UI improvements
...
Use JTextField for output file prefix/postfix.
Use TextFieldWithBrowseButton for output directory
Improve layout
2017-03-16 03:14:36 +03:00
Alexey Sedunov
ee36abd73a
Kotlin Facet: Drop obsolete facet detection infrastructure
2017-03-16 03:14:35 +03:00
Alexey Sedunov
5c55b9fbbe
Configuration: Check that project-level common arguments are not changed through platform-specific holders
2017-03-16 03:14:34 +03:00
Alexey Sedunov
ce434585e3
J2K: Convert BaseKotlinCompilerSettings and its inheritors
2017-03-16 03:14:32 +03:00
Alexey Sedunov
f8e5065845
J2K: Convert BaseKotlinCompilerSettings and its inheritors (rename to .kt)
2017-03-16 03:14:31 +03:00
Pavel V. Talanov
f1c0d5316f
Refactor delegate members to light members conversion
2017-03-15 20:55:42 +03:00
Pavel V. Talanov
eedcc19209
J2K KtLightClassBase: rename file
2017-03-15 20:55:41 +03:00
Pavel V. Talanov
04591bb938
LightClassDataHolder: refactor, extract subinterfaces
2017-03-15 20:55:40 +03:00
Pavel V. Talanov
6d595e30c2
ClassFileFactory, minor: make done() public and use in LightClassDataProvider
2017-03-15 20:55:40 +03:00
Pavel V. Talanov
d62db8dc6b
LightClassGenerationSupport: refactor, minor
...
Use typealias where appropriate
Less verbose method names
2017-03-15 20:55:39 +03:00
Pavel V. Talanov
a645dc109a
KotlinLightClassBuilderFactory, LightClassBuilder: refactor, clarify
2017-03-15 20:55:38 +03:00
Pavel V. Talanov
c73e58516b
Refactor LightClassDataProvider: drop LightClassDataProvider class
...
Move code to inheritors
Improve api to avoid getting empty file lists in random places
2017-03-15 20:55:37 +03:00
Pavel V. Talanov
ab0d939626
searchHelpers: remove hack relying on light classes triggering resolve
2017-03-15 20:55:08 +03:00
Pavel V. Talanov
feae5079ed
Light classes: refactor, introduce lazyPub util to reduce verbosity
2017-03-15 20:55:07 +03:00
Pavel V. Talanov
ba185d7616
LightClassDataProvider: refactor, extract class filters to separate classes
2017-03-15 20:55:05 +03:00
Pavel V. Talanov
48cae0e480
KtLightField/Method: Use equality in equivalence checks
...
Avoid computing delegate to determine equivalence
2017-03-15 20:55:03 +03:00
Pavel V. Talanov
8054020f61
IDELightClassContexts: @PublishedApi affects codegen
2017-03-15 20:55:02 +03:00
Pavel V. Talanov
d846d05527
PsiElementChecker: minor
...
Check own members before inners' since it triggers the computation of outer stub
2017-03-15 20:55:01 +03:00
Pavel V. Talanov
d34b73befb
Light class codegen: all objects are considered static
...
Simplify code handling access flag computation
Fix a problem where kotlin nested object wasn't producing a nested light class
2017-03-15 20:55:01 +03:00
Pavel V. Talanov
d94da5af40
Frontend: create component functions for properties with error types
...
Fixes an inconsistency in light classes where we could have different
class structure depending on whether the type was resolved
2017-03-15 20:55:00 +03:00
Pavel V. Talanov
fa58f1b4d7
KtLightMethod(Field): use dummyDelegate to determine modifier properties
2017-03-15 20:54:59 +03:00
Pavel V. Talanov
abf206a134
KtLightMethod(Field): do not use clsDelegate in hashCode && equality checks
2017-03-15 20:54:58 +03:00
Pavel V. Talanov
fee29c47c8
KtLightMethod: use dummy delegate to compute parameter count and isContructor
2017-03-15 20:54:56 +03:00
Pavel V. Talanov
3e7357a5d7
IDELightClassTest: provide tools to check laziness of light class construction
...
StubComputationTracker knows which context was used to construct light class
2017-03-15 20:54:55 +03:00
Pavel V. Talanov
daef8a0eed
Light classes in IDE: Make light class delegate construction a two step process
...
Step 0: Light class object is created, no delegates are computed
Step 1: constructs dummy delegate which can not be relied upon to know signature of any member
It can be used to construct light field and light method objects
(which can correctly respond to some queries) before constructing real delegate
Step 2:
Construct real delegate if dummy delegate is not enough to respond to a query
This speeds up multiple scenarios where getMethods() and getFields() are called on numerous classes
Dummy delegate's faster consruction is achieved by using specially setup dumb analysis instead of ide analysis
Introduce LazyLightClassDataHolder: which manages creation of Step 1 and Step 2 delegates
Introduce MemberIndex: keeping track of member creation order, helps matching light class delegates created in different contexts
KtLightMethod and Field: make use of dummy delegate
KtLightMethod no longer extends LightMethod since it requires eager delegate construction
KtLightMethod now implements PsiAnnotationMethod for convenience (ClsMethodImpl implements PsiAnnotationMethod)
2017-03-15 20:54:55 +03:00
Pavel V. Talanov
ed9e94c632
KtLightModifierListWithExplicitModifiers: fix equals
2017-03-15 20:53:59 +03:00
Pavel V. Talanov
d01aaeb65c
Refactor light classes: Delegate LightClassDataHolder construction to LightClassGenerationSupport
2017-03-15 20:53:58 +03:00
Pavel V. Talanov
00e84fb483
Light classes: Refactor construction
...
Introduce LightClassDataHolder: which now is reponsible for constructing clsDelegate
Move out light big chunk of delegate building logic out of LightClassDataProvider into LightClassBuilder
LightClassData only holds information about single class
2017-03-15 20:53:37 +03:00
Pavel V. Talanov
22fb9ec5e1
Refactor light classes: move light members creation to their respective classes
2017-03-15 20:52:51 +03:00
Pavel V. Talanov
15b063d236
J2K LightClassGenerationSupport: rename file
2017-03-15 20:52:50 +03:00
Pavel V. Talanov
dd2d9c1dc2
J2K LightClassGenerationSupport: convert code
2017-03-15 20:52:49 +03:00
Pavel V. Talanov
71161e218b
Refactor LightClassData: remove redundant entities
2017-03-15 20:52:48 +03:00
Pavel V. Talanov
0a0e628068
Refactor: move code to new package
2017-03-15 20:52:26 +03:00
Pavel V. Talanov
ac368ac182
Light classes test: test methods & fields with same name
2017-03-15 20:52:25 +03:00
Pavel V. Talanov
955fe9e1e6
Light class tests: add tests
...
- test Jvm* annotations with wrong arguments
- test JvmStatic annotation
- test JvmName annotation
2017-03-15 20:52:24 +03:00
Pavel V. Talanov
dbcd141a46
Extract superclass from AnnotationResolver
2017-03-15 20:52:24 +03:00
Pavel V. Talanov
8794005234
JvmPlatform#getDefaultImports: avoid recomputing JvmBuiltins
...
We need to use LockBasedStorageManager() (instead of NO_LOCKS) since getDefaultImports()
can be called concurrently in certain scenarios
2017-03-15 20:52:23 +03:00
Pavel V. Talanov
bbe3b3cabe
WrappedType: introduce WrappedTypeFactory to encapsulate wrapped types creation
2017-03-15 20:52:22 +03:00
Pavel V. Talanov
85420d1ffd
MemberCodegen: Do not try to write inner class metadata for inner class
2017-03-15 20:51:22 +03:00
Pavel V. Talanov
1441aea2ea
Light classes: allow light classes for inner/nested classes to be build separately
...
Avoid analyzing/generating bytecode for outers
2017-03-15 20:51:22 +03:00
Pavel V. Talanov
6924ddeace
Clarify logic in KotlinTypeMapper.mapType() dealing with enum entries
...
This allows to write correct class signatures for enum entries
regardless of whether ASM_TYPE slice was written to
2017-03-15 20:51:20 +03:00
Pavel V. Talanov
6f6a595fef
Refactor FileScopeFactory
2017-03-15 20:51:19 +03:00
Pavel V. Talanov
d7c1993194
FileScopeFactory: postpone default import resolver construction
2017-03-15 20:51:18 +03:00
Pavel V. Talanov
babb3b557d
J2K ImportPath: kotlinify
2017-03-15 20:51:17 +03:00
Pavel V. Talanov
50d0f5bde6
J2K ImportPath: autoconvert
2017-03-15 20:50:12 +03:00
Pavel V. Talanov
91e8d9e211
J2K ImportPath: rename file
2017-03-15 20:49:22 +03:00
Simon Ogorodnik
e7753c31db
Minor: Add Dokka format param to build-docs script
...
To have an ability to change it in TeamCity between custom builds
2017-03-15 19:43:14 +03:00
Simon Ogorodnik
38047240d3
Fix documentation for stdlib
...
Add forgotten files to file list used by
Dokka when generating documentation
2017-03-15 18:26:52 +03:00
Simon Ogorodnik
5c4ba53f42
Optimization of Basic Code Completion
...
Now we first search for simple reference variants, then for extensions
Because extension search is slow
#KT-16856
2017-03-15 17:50:29 +03:00
Simon Ogorodnik
4906ddfc29
Optimization of Basic Code Completion
...
Now we don't perform code formatting on temporary psi used
in ShadowedDeclarationFilter
#KT-16856
2017-03-15 17:50:20 +03:00
Mikhail Glukhikh
bbab0f11ca
Cleanup: fix some "leaking this" warnings
2017-03-15 17:36:08 +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
Mikhail Glukhikh
d0cc1635db
Cleanup: apply "Use synthetic property access syntax"
2017-03-15 16:13:40 +03:00
Mikhail Glukhikh
1375267996
Cleanup: apply redundant curly braces in string template inspection
2017-03-15 16:13:22 +03:00
Mikhail Glukhikh
e37800d056
Cleanup: apply redundant string template inspection
2017-03-15 16:12:59 +03:00
Igor Chevdar
10ea2883f7
Supported KProperty2 and KMutableProperty2 for delegated properties
...
Consider this code:
object Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): String {
return ""
}
}
class A {
val String.ext by Delegate
}
then the type of <p> is KProperty2 (it has 2 receivers).
Test fix + review fixes
2017-03-15 12:20:57 +03:00
Alexander Udalov
d58d75c6ef
Refactor "do not check impl" flag for multi-platform projects
...
Instead of LanguageFeature, make it an AnalysisFlag, which is more clear
2017-03-15 11:03:05 +03:00
Alexander Udalov
56201a6dc4
Refactor skipMetadataVersionCheck flag
...
To make addition of other flags easier in the future, provide a more
abstract 'isFlagEnabled' in LanguageVersionSettings
2017-03-15 11:03:04 +03:00
Alexander Udalov
7a240b63c7
Use LanguageFeature.State enum instead of CoroutineSupport
2017-03-15 11:03:03 +03:00
Alexander Udalov
34e131c928
Refactor LanguageVersionSettings.isApiVersionExplicit
...
Pass it in the CompilerConfiguration instead of LanguageVersionSettings.
This is better because LanguageVersionSettings is accessible everywhere
in front-end and back-end, and this flag should not be used there
2017-03-15 11:03:01 +03:00
Alexander Udalov
32826c1686
Introduce LanguageFeature.State, drop coroutines-related pseudofeatures
...
Previously there were three LanguageFeature instances -- Coroutines,
DoNotWarnOnCoroutines and ErrorOnCoroutines -- which were handled very
awkwardly in the compiler and in the IDE to basically support a language
feature with a more complex state: not just enabled/disabled, but also
enabled with warning and enabled with error. Introduce a new enum
LanguageFeature.State for this and allow LanguageVersionSettings to get
the state of any language feature with 'getFeatureSupport'.
One noticeable drawback of this approach is that looking at the API, one
may assume that any language feature can be in one of the four states
(enabled, warning, error, disabled). This is not true however; there's
only one language feature at the moment (coroutines) for which these
intermediate states (warning, error) are handled in any way. This may be
refactored further by abstracting the logic that checks the language
feature availability so that it would work exactly the same for any
feature.
Another issue is that the difference among ENABLED_WITH_ERROR and
DISABLED is not clear. They are left as separate states because at the
moment, different diagnostics are reported in these two cases and
quick-fixes in IDE rely on that
2017-03-15 11:03:00 +03:00
Alexander Udalov
cf7048dd0f
Do not inject CompilerConfiguration into compiler front-end
...
Inject LanguageVersionSettings instead; all information relevant to the
analysis should be now passed via an instance of LanguageVersionSettings
(which should be renamed to a more general name in the future).
This is partially a revert of d499998 and related commits
2017-03-15 11:02:59 +03:00
Alexander Udalov
a879cb0cfd
Minor, take LanguageVersionSettings in CompilerDeserializationConfiguration
2017-03-15 11:02:58 +03:00
Alexander Udalov
ac530ac49c
Move skipMetadataVersionCheck flag to LanguageVersionSettings
...
This makes it possible to avoid the CompilerConfiguration instance in
injectors, because CompilerDeserializationConfiguration was the only
left component that required it.
LanguageVersionSettings is not a good name for this entity anymore, it
should be renamed in the future
2017-03-15 11:02:58 +03:00
Alexander Udalov
f5d4dd33da
Inject JvmTarget into some JVM-specific call checkers
...
This makes it possible to drop CompilerConfiguration from
CallCheckerContext, which in turn helps to avoid passing the entire
CompilerConfiguration instance through front-end
2017-03-15 11:02:57 +03:00
Alexander Udalov
573c6ab5d4
Move JvmTarget to frontend.java, introduce TargetPlatformVersion
...
Previously JvmTarget was declared in module 'util' which is accessible
for example from 'frontend', which is not very good.
Also add a superinterface named TargetPlatformVersion which is going to
be used in platform-independent injectors in 'frontend' in the following
commits. Use it in one place (LanguageVersionSettingsProviderImpl.kt)
instead of DescriptionAware because TargetPlatformVersion sounds like a
better abstraction than DescriptionAware here
2017-03-15 11:02:56 +03:00
Denis Zharkov
d2cd5d46fa
Minor. Use static method from super class
...
It was a code with warning
2017-03-15 10:47:12 +03:00
Denis Zharkov
dcc98e3839
Improve check for statements-only postfix templates
...
Before this change the check was quite complicated
because of cases like:
for (i in 1..9)
foo(i)<caret>
It's not located in a block, but in the same time it's a stament.
So we had a tricky heuristics that if is parent is not a block, then
we should check if element isn't used as expression.
Of course this heuristics is wrong, e.g. for import/package nodes.
The solution is to reuse similar logic from BasicExpressionTypingVisitor.
it has been checked once that statement container is one of:
- KtBlockExpression
- KtContainerNodeForControlStructureBody
- KtWhenEntry
So there's no need to check anything else
#KT-14986 Fixed
#KT-14483 Fixed
2017-03-15 10:47:12 +03:00
Denis Zharkov
78ffe47bf8
Fix samples for 'iter' postfix template
...
#KT-14727 Fixed
2017-03-15 10:47:12 +03:00
Denis Zharkov
bd88919411
Refine predicate for 'iter' postfix template
...
Use IterableTypesDetection to determine if the given expression may be iterated
#KT-14134 Fixed
#KT-14129 Fixed
2017-03-15 10:47:12 +03:00
Denis Zharkov
465a424af4
Refactor postfix template selector
...
Allow to specify predicate by KtExpression instead of type predicate
It will be used for `for` template which need a context to determine
whether the expression is iterable
2017-03-15 10:47:12 +03:00
Vyacheslav Gerasimov
b8ebc087e2
Add inspection for calls of function with lambda expression body
...
Added "Unused return value of a function with lambda expression body" inspection with quickfix "Remove '=' token from function declaration"
#KT-10393 Fixed
2017-03-15 00:22:31 +03:00
Vyacheslav Gerasimov
087551ad61
Implement quick fix for "Invalid type of annotation member"
...
Quickfix changes array of boxed type to array of primitive type
#KT-8568 Fixed
2017-03-15 00:21:24 +03:00
Vyacheslav Gerasimov
b8563f7fcf
Fix KotlinUastTypesTest.testCycleInTypeParameters
2017-03-15 00:20:40 +03:00
Mikhail Glukhikh
cab80812ef
KT-13111: lambda --> reference supports also object members
2017-03-14 18:45:08 +03:00
Mikhail Glukhikh
631f58f27f
Lambda --> reference: correct handling of companion references
...
Reference receivers are named more accurately now #KT-13341 Fixed
2017-03-14 18:45:06 +03:00
Mikhail Glukhikh
2c692de98f
KT-13111: lambda --> reference support methods called via this now
2017-03-14 18:45:05 +03:00
Mikhail Glukhikh
19db4869e6
Lambda --> reference: correct handling of parameter-less function
...
Issue #KT-15556 Fixed
2017-03-14 18:45:04 +03:00
Mikhail Glukhikh
b6974a88c5
Refactoring: convert lambda --> reference intention
2017-03-14 18:45:02 +03:00
Mikhail Glukhikh
3a14a5c461
Lambda --> reference supports bound references now #KT-13111 Fixed
2017-03-14 18:45:01 +03:00
Mikhail Glukhikh
831467891c
Reference --> lambda supports bound references now #KT-16292 Fixed
2017-03-14 18:45:00 +03:00
Yan Zhulanow
f6734e74e1
Minor, SamWithReceiver: Fix services for kotlinc CLI execution
...
Move service files to META-INF to support execution from CLI (using PluginCliParser).
2017-03-14 18:36:40 +03:00
Mikhael Bogdanov
23698f93e0
Fix reification for crossinline lambdas inlined into object literal
...
Inline lambda could capture reified parameter of containing inline function ('a' function)
when it is inlined in another one.
If it's inlined in any anonymous object we should track it and
add reification marker to such anonymous object instance creation
to rewrite it on inlining bytecode of 'a' function.
#KT-15997 Fixed
2017-03-14 15:54:13 +01:00
Alexey Sedunov
6b6d7a5030
Configuration: Don't create kotlinc.xml if the settings don't differ from the defaults
...
#KT-16647 Fixed
2017-03-14 15:33:11 +03:00
Alexey Sedunov
e8749e639c
Kotlin Facet: Add link to project-level compiler settings UI
...
#KT-16022 Fixed
2017-03-14 15:33:10 +03:00
Alexey Sedunov
8c91dc579a
Kotlin Facet: Show project-level settings when "Use project settings" is selected
...
#KT-16023 Fixed
2017-03-14 15:33:09 +03:00
Alexey Sedunov
9bbea47f93
Kotlin Facet: Parse and merge compiler arguments specified in <arg> elements instead of appending them (to avoid duplication)
...
#KT-16776 Fixed
2017-03-14 15:33:08 +03:00
Alexey Sedunov
e5a128ab2e
JPS: Parse and merge additional arguments with primary ones instead of
...
appending them (to avoid duplication)
#KT-16788 Fixed
2017-03-14 15:33:07 +03:00
Alexey Sedunov
73b879ea89
Misc: Include cli-parser 1.1.2 sources into the project under different package and drop original library dependency
...
This would allow building the project with Kotlin JPS plugin on TeamCity where older library takes precendence due to appearing earlier in JPS classpath
2017-03-14 15:33:06 +03:00
Dmitry Jemerov
e037e9de39
Do not cache contents in VFS when reading contents of .jar files
...
This follows the standard IDEA policy of caching file contents.
2017-03-14 13:06:47 +01:00
Dmitry Jemerov
8d1d76cdae
Try to recover from corrupt VFS data for a .kotlin_module file
...
#KT-13135 Fixed
2017-03-14 13:06:29 +01:00
Mikhail Zarechenskiy
da53317357
Fix exception when type parameters appear in object declaration
...
#KT-14536 Fixed
2017-03-14 01:10:00 +03:00
Mikhail Zarechenskiy
0568bc3ef1
Add note about JS to the changelog
2017-03-13 21:09:17 +03:00
Mikhail Zarechenskiy
fd80c0d1d1
Remove KT-15200 from the changelog
...
It was postponed until 1.1.2
2017-03-13 20:38:43 +03:00
Mikhail Zarechenskiy
05ef705609
Add IGNORE_BACKEND directive for native automatically
...
Also parse correctly case IGNORE_BACKEND: JS, NATIVE
2017-03-13 19:56:13 +03:00
Dmitry Jemerov
006062499c
Optimize imports (to fix compilation under 171 branch)
2017-03-13 16:34:48 +01:00
Mikhail Zarechenskiy
774aa720b4
Update Changelog for version 1.1.1
2017-03-13 16:45:25 +03:00
Dmitry Petrov
a0a8beee82
Handle TypeAliasDescriptor in AdaptiveClassifierNamePolicy
...
(as ClassDescriptor)
2017-03-13 14:15:27 +03:00
Mikhael Bogdanov
ce3b455f57
Fix for KT-16801: Accessors of @PublishedApi property gets mangled
...
#KT-16801 Fixed
2017-03-13 10:51:10 +01:00
Dmitry Petrov
c46164481a
KT-15871 Unnecessary boxing for equality operator on inlined primitive values
...
Allow kotlin.jvm.internal.Intrinsics#areEqual for boxed values.
Rewrite to primitive equality.
NB we can't do that for Float and Double, because java.lang.Float#equals
and java.lang.Double#equals behave differently from primitive equality comparisons.
2017-03-13 09:04: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
Dmitry Petrov
ec403bfdbc
KT-16245 Redundant null-check generated for a cast of already non-nullable value
...
KT-16194 Code with unnecessary safe call contains redundant boxing/unboxing for primitive values
KT-12839 Two null checks are generated when manually null checking platform type
Recognize some additional cases of trivial null checks and trivial instance-of checks.
A variable is "checked for null", if it is:
- a function parameter checked with 'INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull'
- checked for nullability with 'IFNULL/IFNONNULL'
- checked for nullability with 'INSTANCEOF'
(if objectref is instance-of T, then objectref is non-null)
Before analyzing nullability, introduce synthetic assumptions for execution branches
where a variable is guaranteed to be null or not null. For example, the following bytecode:
ALOAD 1 // Ljava/lang/String;
IFNULL L
<non-null branch>
L:
<null branch>
is transformed to
ALOAD 1
IFNULL L1
NEW java/lang/String
ASTORE 1 // tells analyzer that variable 1 is non-null
<non-null branch>
L:
<null branch>
L1:
ACONST_NULL
ASTORE 1 // tells analyzer that variable 1 is null
GOTO L
After the analysis is performed on a preprocessed method,
remember the results for "interesting" instructions
and revert the preprocessing transformations.
After that, perform bytecode transformations as usual.
Do not transform INSTANCEOF to-be-reified, because reification at call site
can introduce null checks. E.g.,
inline fun <reified T> isNullable() = null is T
...
assert(isNullable<String?>())
2017-03-13 09:04:31 +03:00
Dmitry Petrov
3c09a26e16
KT-5248 Don't wrap variable if it is captured only in inlined closures
...
Remove non-escaping Ref's on bytecode postprocessing pass.
2017-03-13 09:04:31 +03:00
Dmitry Petrov
3fc106572e
Make redundant null check optimization independent of boxing optimization algorithm.
...
Run DCE after each single redundant null check optimization pass.
2017-03-13 09:04:31 +03:00
Ilya Matveev
eda43c8b45
Mute tests with standard collection extensions in native
2017-03-10 19:59:37 +03:00
Ilya Matveev
29e5ad5abe
Mute tests with '::class' in native backend
2017-03-10 19:59:37 +03:00
Ilya Matveev
8a3fa2e4e5
Fix expected SMAPs after test muting for native
2017-03-10 19:59:37 +03:00
Ilya Matveev
a5e4e0284e
Mute some box tests for native backend
...
This patch mutes the following test categories:
* Tests with java dependencies (System class,
java stdlib, jvm-oriented annotations etc).
* Coroutines tests.
* Reflection tests.
* Tests with an inheritance from the standard
collections.
2017-03-10 19:59:37 +03:00
Alexander Udalov
d21d362f0f
Allow enum entries in double colon LHS with LV = 1.0
...
#KT-16782 Fixed
2017-03-10 19:44:00 +03:00
Denis Zharkov
39055229a1
Add diagnostic info to assertion on type argument consistency
2017-03-10 18:17:50 +03:00
Vyacheslav Gerasimov
830bf62d94
Fix SOE from UAST in containsLocalType
...
containsLocalType now properly handles start projections
#KT-16680 Fixed
2017-03-10 17:30:21 +03:00
Simon Ogorodnik
4e98394c38
Fix Sample reference to resolve cross-module packages correctly
...
Now @sample links to FqName in IDE will be resolved correctly
Cause now we resolve packages over all modules in project
#KT-14710 fixed
2017-03-10 15:33:47 +03:00
Nikolay Krasko
688802de51
Check breakpoints work in delegate initializer
...
Additional test after review
2017-03-10 14:59:37 +03:00
Nikolay Krasko
e6ee933b27
Fix "smart step into" for classes with complex hierarchy (KT-16667)
...
#KT-16667 Fixed
2017-03-10 14:58:21 +03:00
Nikolay Krasko
6d9b519bb2
Use new utility method for getting lexical scope
...
It's expected that for call expressing some nearest parent will have
lexical scope written in binding context. Under this circumstances it's
refactoring.
2017-03-10 14:58:17 +03:00
Nikolay Krasko
0a7a73d4be
Refactoring: extract method for getting lexical scope without facade
2017-03-10 14:58:16 +03:00
Nikolay Krasko
9120ccc054
Fix breakpoints in inline calls in fields initialization (KT-16525)
...
Backend generates properties initializer in constructor context
#KT-16525 Fixed
2017-03-10 14:58:15 +03:00
Nikolay Krasko
d886cd7d06
Fix breakpoints when inline call is in qualified expression (KT-16062)
...
Scope is stored for DOT_QUALIFIED_EXPRESSION not directly for
CALL_EXPRESSION.
#KT-16062 Fixed
2017-03-10 14:58:14 +03:00
Nikolay Krasko
2719016539
Fix search of correspondent call expression by element (KT-11234)
...
getStrictParentOfType() looks for nearest parent of given type
In complex expressions like:
SamConversion.doAction({
inlineCall {
{
// here <--
}()
}
})
doAction was found twice, while inlineCall was skipped.
See code:
// call(param, { <it> })
lambdaExpression?.typedParent<KtValueArgument>()?.typedParent<KtValueArgumentList>()?.typedParent<KtCallExpression>() ?:
// call { <it> }
lambdaExpression?.typedParent<KtLambdaArgument>()?.typedParent<KtCallExpression>()
#KT-11234 Fixed
2017-03-10 14:58:13 +03:00
Nikolay Krasko
b240ae791c
Minor: extract variable
2017-03-10 14:58:12 +03:00
Denis Zharkov
52d11eb22b
Minor. Revert workarounds for problem on KClass from annotation
...
See KT-9453 for clarification
2017-03-10 13:49:07 +03:00
Denis Zharkov
82d7a269ed
Minor. Make sure that implicit contract of mapSignature is satisfied
...
For ordinary functions mapSignature doesn't use original descriptor
and maps the given descriptor itself, but for constructor it obtained
the original value parameters.
Necessary `getOriginal` calls were added to the call-sites
2017-03-10 13:49:06 +03:00
Denis Zharkov
394c68c326
Minor. Move unwrapping of FunctionImportedFromObject
...
It should not affect the semantics, because mapSignatureWithCustomParameters
can only be called with FunctionImportedFromObject from mapSignature.
At the same time it's very nice to have all of these kinds
of custom unwrapping in the same place
2017-03-10 13:49:06 +03:00
Denis Zharkov
530214fcee
Minor. Simplify mapping to callable method
...
There's no need in unwrapping for TypeAliasConstructorDescriptor
because mapSignatureSkipGeneric/mapDefaultMethod already do it
in some moment, and ConstructorDescriptor has getConstructedClass method
for mapping its owner
2017-03-10 13:49:05 +03:00
Denis Zharkov
be90f7d331
Make type aliases constructors return correct original descriptors
...
The problem was that when resolving super-calls we used known substitutor
when creating a type alias constructor, thus its original return itself,
while it's expected that it should return the descriptor before substitution
The main idea of the fix that `createIfAvailable` should always return
unsubstituted constructor.
Note that known substitutor for type alias constructor should be based
on abbreviation.
The test change seems to be correct as PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE
is already reported.
Beside this, resolution behavior isn't expected to be changed dramatically
2017-03-10 13:49:05 +03:00
Denis Zharkov
2b21280ba9
Unwrap underlying typealias constructor earlier
...
The problem is very subtle (see the test): when generating a signature
for an object literal we also were mapping its super-class
(a type alias here).
Although we did unwrap its underlying constructor to map it properly
we did too late (after obtaining value parameters from the type alias constructor descriptor).
Another problem is that TypeAliasConstructorDescriptor.getOriginal
in the case does return itself, while it's expected to return
unsubstituted version
Note: everything works for common calls for such constructors
because they mapped through mapCallableMethod which contains
another custom unwrapping of type alias constructors
#KT-16555 Fixed
2017-03-10 13:45:37 +03:00
Denis Zharkov
8761ef6694
Minor. Rename mapSignature overload to mapSignatureWithCustomParameters
2017-03-10 13:45:37 +03:00
Denis Zharkov
7173e56393
Make computation of arguments for raw types lazy
...
See how we translate raw types to Kotlin model:
RawType(A) = A<ErasedUpperBound(T1), ...>
ErasedUpperBound(T : G<t>) = G<*> // UpperBound(T) is a type G<t> with arguments
ErasedUpperBound(T : A) = A // UpperBound(T) is a type A without arguments
ErasedUpperBound(T : F) = UpperBound(F) // UB(T) is another type parameter F
Stack overflow happens with the following classes:
class A<X extends B> // NB: raw type B in upper bound
class B<Y extends A> // NB: raw type A in upper bound
when calculating raw type for A, we start calculate ErasedUpperBound(Y),
thus starting calculating raw type for B => ErasedUpperBound(X) => RawType(A),
so we have SOE here.
The problem is that we calculating the arguments for these raw types eagerly,
while from the definition of ErasedUpperBound(Y) we only need a type constructor
of raw type B (and the number of parameters), we don't use its arguments.
The solution is to make arguments calculating for raw types lazy
#KT-16528 Fixed
2017-03-10 13:30:33 +03:00
Mikhael Bogdanov
f2fea9a04a
Generate unboxing operation on boxed class not Number.class when possible
2017-03-10 10:04:30 +01:00
Mikhael Bogdanov
5e80d80797
Fix for KT-16732: Type 'java/lang/Number' (current frame, stack[0]) is not assignable to 'java/lang/Character
...
#KT-16732 Fixed
2017-03-10 10:04:29 +01:00
Mikhail Glukhikh
32bdb6becb
KT-16714 related refactoring of tryRunWriteAction (now runWriteAction is not used if intention is called from J2K)
2017-03-10 10:46:49 +03:00
Alexey Sedunov
faa0dff649
Kotlin Facet: Do no present compiler plugin classpaths and options in additional arguments string
...
#KT-16313 Fixed
2017-03-09 23:06:52 +03:00
Alexey Sedunov
cc20c66bfc
Kotlin Facet: Fix platform detection by Maven execution goals
...
#KT-15947 Fixed
#KT-16342 Fixed
2017-03-09 23:06:47 +03:00
Alexey Sedunov
e8640b441d
JPS: Fix earlier configurations with incorrect combination of language and API version
2017-03-09 23:06:42 +03:00
Alexey Sedunov
811b8978c2
Kotlin Facet: Escape additional compiler arguments when converting them to string and unescape before parsing
...
#KT-16700 Fixed
2017-03-09 23:06:38 +03:00
Alexey Sedunov
c5ee28da05
Kotlin Facet: Detect module platform by gradle plugin
...
#KT-16703 Fixed
#KT-16342 Fixed
2017-03-09 23:06:33 +03:00
Alexey Sedunov
26537cd8fc
Kotlin Facet: Distinguish compiler arguments specified for different source sets
...
#KT-16698 Fixed
2017-03-09 23:06:28 +03:00
Alexey Sedunov
0e583aa929
Kotlin Facet: Update Gradle import test data to use 1.1.0 plugin
2017-03-09 23:06:23 +03:00
Alexey Sedunov
278cc71c4a
Kotlin Facet: Reuse configuration serialization in JPS (previous implementation is not usable after configuration refactoring)
2017-03-09 23:06:18 +03:00
Alexey Sedunov
641a9a7153
Kotlin Facet: Get rid of duplicating data in facet configuration
2017-03-09 23:06:12 +03:00
Alexey Sedunov
19ea18a340
Kotlin Facet: Correctly enable/disable "output directory" field when changing "Use project settings" option
...
#KT-16317 Fixed
2017-03-09 22:48:44 +03:00
Dmitry Jemerov
01a9d9a284
Support lazy conversion of parent chain; correctly check expected class
2017-03-09 17:07:43 +01:00
Dmitry Jemerov
8c3936a0ee
Update to UAST 0.12
2017-03-09 17:07:43 +01:00
Simon Ogorodnik
3bf7223448
Internal Kotlin packages now should be completable in parent packages
...
Internal packages which are hard-excluded from completion and
imports now should be visible there if file package are parent of
excluded one
e.g kotlin.jvm.internal.* now visible from kotlin and kotlin.jvm
#KT-16214 fixed
2017-03-09 19:05:10 +03:00
Dmitry Petrov
27bf51c73f
All multifile class tests should have 'TARGET_BACKEND: JVM' directive.
2017-03-09 17:22:28 +03:00
Dmitry Petrov
6a68eb218f
KT-16077 Redundant private getter for private var in a class within a JvmMultifileClass annotated file
2017-03-09 17:22:28 +03:00
Dmitry Jemerov
c9df227fef
Add more tests for coroutines; use higher-level API to check that changes have been applied
2017-03-09 13:57:45 +01:00
Dmitry Jemerov
73a2c8c436
Test quickfixes for updating language/API version and coroutine support in Gradle projects
2017-03-09 13:41:57 +01:00
Dmitry Jemerov
5d461ec6df
Support updating language/API level specified with compact options
2017-03-09 13:41:57 +01:00
Dmitry Jemerov
4261880340
Add test for enabling coroutines/bumping language level, fix several breakages
2017-03-09 13:41:57 +01:00
Sergey Igushkin
999ef51653
Added gradle-plugins properties with fqnames
...
Added .property files to make the plugins available by fqnames in
order to publish them to Gradle Plugin Portal.
#KT-5756
(cherry picked from commit 991de64)
2017-03-09 14:13:40 +03:00
Dmitry Jemerov
cbccb68948
Fix logic for searching inner classes in LazyResolveBasedCache.findInPackageFragments()
...
#KT-14058 Fixed
2017-03-09 11:47:21 +01:00
Alexander Udalov
9f2ce3c521
Refactor synthesized invokes creation in resolution
...
Instead of verifying that the container of an 'invoke' is a
FunctionClassDescriptor instance, make sure that it's a function class
checking its FQ name instead (classId + isBuiltinFunctionClass calls).
This makes sure that we will create synthesized invokes in a setting
where function classes are not FunctionClassDescriptor instances
synthesized by the compiler, but ordinary classes from sources or
binaries as well, as is going to be the case in kotlin-native
2017-03-09 11:29:39 +03:00
Dmitry Petrov
d188de3086
KT-6014 Wrong ABSTRACT_MEMBER_NOT_IMPLEMENTED for toString implemented by delegation
...
Members declared in interface or overriding members declared in super-interfaces
can be implemented by delegation even if they override members declared in super-class
(NB for interface this can be only 'kotlin.Any').
2017-03-09 09:38:48 +03:00
Mikhail Glukhikh
5e8afd26e1
Do not run write actions from J2K #KT-16714 Fixed
...
Also #EA-97363 Fixed
2017-03-09 09:37:35 +03:00
Dmitry Petrov
f950ff4b8f
'ConstructorDescriptor#getConstructedClass()' should be used to obtain a descriptor for constructed class
...
(it can be different from 'getContainingDeclaration()' in case of type alias constructor).
KT-15109 Subclass from a type alias with named parameter in constructor will produce compiler exception
KT-15192 Compiler crashes on certain companion objects: "Error generating constructors of class Companion with kind IMPLEMENTATION"
2017-03-09 09:23:38 +03:00
Dmitry Petrov
9a2c9ed30e
KT-13342 Unqualified super call should not resolve to a method of supertype overridden in another supertype
2017-03-09 09:16:21 +03:00
Dmitry Jemerov
954c1d853d
Correctly locate build.gradle for modules created from source sets
...
(cherry picked from commit ecce92d)
2017-03-08 15:08:41 +01:00
Dmitry Jemerov
a2f7808ab1
Don't check Java version in LauncherScriptTest
2017-03-08 14:07:47 +01:00
Dmitry Jemerov
263cf85c5c
Fix project leak in IdeReplExecutionTest
2017-03-08 13:47:09 +01:00
Dmitry Petrov
11caa03427
KT-16713 Insufficient maximum stack size
...
1. Analyze method node with fake jumps for loops to make sure that
all instructions reachable only through break/continue jumps are processed.
2. Fix stack for break/continue jumps.
3. Drop fake jumps for loops, analyze method node again.
4. Fix stack for try/catch and beforeInline.
2017-03-08 09:56:08 +01:00
Mikhail Glukhikh
80063b6f91
Quick-fix for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE added #KT-15966 Fixed
2017-03-07 19:06:16 +03:00
Ilya Gorbunov
b83b534374
Add missing SinceKotlin to IntStream.toList.
2017-03-07 18:22:11 +03:00
Ilya Gorbunov
c038d3e9a3
Mark all api in kotlin.reflect.full package with SinceKotlin(1.1), since it actually appeared in that package only in 1.1. #KT-16557 Fixed.
...
It doesn't matter that some functions were since 1.0 in the old package.
2017-03-07 18:22:11 +03:00
Kirill Rakhman
646f50dd66
Extract method refactoring should order parameters by first usage
...
Fixes #KT-16198
2017-03-07 18:10:02 +03:00
Ilya Gorbunov
1296c5444b
Fix warning that failed maven plugin smoke test.
2017-03-07 13:56:11 +03:00
Ilya Gorbunov
61e8848aa2
Add samples for sequence building API.
2017-03-07 13:32:39 +03:00
Ilya Gorbunov
a04e6de047
Add groupingBy and eachCount sample.
2017-03-07 13:31:44 +03:00
Ilya Gorbunov
75ae42121b
Improve sample comments.
...
Improve sample for lastIndex property.
2017-03-07 13:31:44 +03:00
Mikhail Zarechenskiy
578dd1dc42
Update Changelog for Kotlin 1.1.1-RC
2017-03-07 12:12:04 +03:00
Dmitry Petrov
d096f1d381
'while' and 'do-while' loop generator fixes.
...
Generate 'do-while' loop body as IrComposite, because variables declared
in loop body should be visible in loop condition.
Wrap 'do-while' loop in IrBlock so that variables declared in loop body
are not visible outside of the loop.
Generate 'while' and 'do-while' loops as expressions of type Unit.
2017-03-07 11:56:52 +03:00
Dmitry Petrov
cb61c358ea
Always generate primitive boolean constants as expressions of type 'kotlin.Boolean'.
2017-03-07 11:56:52 +03:00
Dmitry Petrov
1bbbc1ca1c
KT-16684 hashCode doesn't check data class property value of generic type for null
2017-03-07 11:56:52 +03:00
Dmitry Petrov
68fab55251
Minor: cleanup unused imports
2017-03-07 11:56:52 +03:00
Dmitry Petrov
6bc6c1b6cc
KT-16671 Calls to members imported from objects should be desugared in PSI2IR
2017-03-07 11:56:52 +03:00
Dmitry Petrov
4ba8268a29
KT-16669 Exception in PSI2IR on type alias constructor in supertypes list
2017-03-07 11:56:52 +03:00
Dmitry Petrov
e4683a1e9f
KT-16666 IMPLICIT_INTEGER_COERCION expression should have non-nullable type
2017-03-07 11:56:52 +03:00
Dmitry Petrov
8c32719f3d
Render 'type' for IrTypeOperatorCall expressions, update testData.
2017-03-07 11:56:52 +03:00
Dmitry Petrov
b3aeddac85
Refactor: generalize postfix order transformation in InsertImplicitCasts
2017-03-07 11:56:52 +03:00
Dmitry Petrov
8e8f83656f
KT-16618 IMPLICIT_INTEGER_COERCION isn't generated for global properties and default parameters
2017-03-07 11:56:52 +03:00
Sergey Igushkin
ee6aae7219
Enabled incremental compilation by default in Gradle plugin.
...
#KT-16546 Fixed
(cherry picked from commit 06715c5)
2017-03-07 11:32:26 +03:00
Alexey Andreev
ef38761dc2
JS: unmute now passing tests and mute test that passed by accident.
2017-03-07 10:46:09 +03:00
Alexey Andreev
a6ca2906d8
JS: add tests for reflection against external classes
2017-03-07 10:46:08 +03:00
Alexey Andreev
723c9be5a0
JS: fix class literal expression with primitive classes. See KT-16545
2017-03-07 10:46:08 +03:00
Alexey Andreev
8567db10b5
JS: fix coroutine transformation of callable references to local functions. See KT-16164
2017-03-07 10:46:07 +03:00
Dmitry Petrov
18fb70b32f
Potential fix for KT-16673
...
See also:
http://stackoverflow.com/questions/42571812/unsupportedoperationexception-while-building-a-kotlin-project-in-idea
'original' for SamAdapterFunctionScope.MyFunctionDescriptor#doSubstitute should exactly match 'this.original',
so we can just provide it by default in SamAdapterFunctionScope.MyFunctionDescriptor#newCopyBuilder.
2017-03-06 22:00:09 +03:00
Dmitry Jemerov
268f7b715c
"Configure Kotlin plugin updates" shows 1.2 and doesn't show 1.0.x
2017-03-06 19:50:58 +01:00
Ilya Chernikov
50e7973fc0
Implement verification workaround for annotation-like class InvalidScriptResolverAnnotation
...
fixes #KT-16621
2017-03-06 16:31:52 +01:00
Sergey Mashkov
243f718193
EA-88059 - assert: CompositeElement.addChild
...
ensure parent element for anchor elements so we never try to insert at wrong place
2017-03-06 17:34:36 +03:00
Sergey Mashkov
4637dcde33
EA-86479 - ISE: PomFile.<init>
...
don't apply any inspections for inappropriate pom files
2017-03-06 17:34:35 +03:00
Mikhael Bogdanov
ff9fe85507
Fix for KT-16614: Report inability to inline 1.8 bytecode into 1.6 bytecode as an error, no as an exception
2017-03-06 15:15:22 +01:00
Vyacheslav Gerasimov
5e4459f41d
Fix broken MultiFileHighlightingTest
...
Android resource folding builder should not run in non-Android projects
2017-03-06 14:31:01 +03:00
Alexander Udalov
0111c4d581
Allow references to nested class constructors in objects in LV = 1.0
...
#KT-16598 Fixed
2017-03-06 11:03:24 +03:00
Alexander Udalov
7c22113c34
Refactor serialization of package FQ name extension
...
Instead of requiring to pass it in SerializerExtensionBase's
constructor, pass it always in serializePackage. This is more
straightforward and helps in a situation where one SerializerExtension
instance is used for the whole module, not one per-package
2017-03-06 11:03:24 +03:00
Kirill Rakhman
c952e26cbb
Fix NPE caused by Rename Refactoring of backing field when caret is after the last character
...
#KT-16605 Fixed
2017-03-06 11:01:38 +03:00
Kirill Rakhman
1bad04db50
Fix Can't rename implicit lambda parameter 'it' when caret is placed right after the last character
...
#KT-14401 Fixed
2017-03-06 11:01:38 +03:00
Ilya Chernikov
e3391175d9
Rewrite parallel daemon start test to make it tougher but more robust
2017-03-05 11:29:54 +01:00
Anton Bannykh
4c6b9b695c
JS: mute some tests with extension functions in external declarations
2017-03-03 21:39:40 +03:00
Anton Bannykh
fcffd190d0
JS: prohibited extension function arguments in external functions; removed extension receiver in jQuery declarations.
2017-03-03 20:37:59 +03:00
Sergey Igushkin
73e94ffde0
Added a test for the fix of KT-16434.
...
(cherry picked from commit 5a6d06f)
2017-03-03 18:04:23 +03:00
Sergey Igushkin
6605ba80e7
Fix for androidTest variants of Android Gradle build.
...
Added a workaround reflection call to TaskManager to create a
javac task since it is missing for androidTest variants with jack.
Added source configuration with the tested variant to make
the tested sources visible to the compiler.
#KT-16434 Fixed
(cherry picked from commit 84efd05)
2017-03-03 18:04:12 +03:00
Mikhail Glukhikh
0432e2e947
Quick-fix to add noinline to parameter with suspend function type + AddInlineModifierFix refactoring #KT-16074 Fixed
2017-03-03 17:28:37 +03:00
Mikhail Glukhikh
d9710ea4ff
#EA-97027 Fixed
2017-03-03 17:28:35 +03:00
Mikhail Glukhikh
8965bb8977
Navigation: new icons for header <---> impl #KT-15842 Fixed
2017-03-03 17:28:34 +03:00
Vyacheslav Gerasimov
1376c8f8cf
Implement quickfixes for Android Lint api issues
...
#KT-16624 Fixed
#KT-16625 Fixed
#KT-14947 Fixed
2017-03-03 16:22:36 +03:00
Vyacheslav Gerasimov
a907ec92b5
Implement Android resource reference folding
...
#KT-15451 Fixed
2017-03-03 16:18:20 +03:00
Vyacheslav Gerasimov
39010ab847
Fix broken isReferenceTo checking code for Android extensions
...
#KT-16132 Fixed
2017-03-03 16:17:52 +03:00
Alexander Udalov
25c1828288
JS: write and load pre-release flag on binaries
2017-03-03 13:33:51 +03:00
Alexander Udalov
de8dd37e44
Change DeserializedContainerSource.presentableFqName to String
...
To allow outputting something other than "Class 'XXX'" in the diagnostic
message for declarations deserialized from JS
2017-03-03 13:33:51 +03:00
Alexander Udalov
f120865350
Combine cls stub builders for built-ins and JS
2017-03-03 13:33:51 +03:00
Alexander Udalov
297eb952bc
Extract common parts of built-ins and JS decompilers
2017-03-03 13:33:51 +03:00
Alexander Udalov
b52b90c182
Extract serialization of packageFqName extension to SerializerExtensionBase
2017-03-03 13:33:51 +03:00
Alexander Udalov
4e91dadfab
Combine decompiler deserializers for built-ins and JS
2017-03-03 13:33:50 +03:00
Alexander Udalov
bafa0ec1ee
Minor, don't throw exception on empty proto message
2017-03-03 13:33:50 +03:00
Alexander Udalov
5a00a97cf1
Extract common parts from deserialization of built-ins and JS
2017-03-03 13:33:50 +03:00
Alexander Udalov
3cb8f1ab20
Drop BuiltIns protobuf message, use ProtoBuf.PackageFragment instead
2017-03-03 13:33:50 +03:00
Alexander Udalov
a36e457c12
Introduce PackageFragment protobuf message for kjsm/builtins/common metadata
2017-03-03 13:33:50 +03:00
Alexander Udalov
2b1b1fb0d4
Merge VirtualFileKotlinClassFinder into VirtualFileFinder
...
VirtualFileKotlinClassFinder was the only direct subclass of VirtualFileFinder
2017-03-03 13:33:50 +03:00
Alexander Udalov
abb5bc6aba
Simplify VirtualFileFinder and their factories' hierarchy
...
Since there's no JsVirtualFileFinder anymore, inline JvmVirtualFileFinder into
VirtualFileFinder and drop "Jvm" prefix everywhere
2017-03-03 13:33:50 +03:00
Alexander Udalov
ee0874a26d
Drop JsVirtualFileFinder and its factory, refactor nearby
...
The only remaining usage was in KotlinRuntimeLibraryUtil.kt where we only
needed to check whether there's at least one file in a given package indexed by
KotlinJavaScriptMetaFileIndex. Move that logic to a public extension, drop
everything else
2017-03-03 13:33:50 +03:00
Alexander Udalov
67699bf17e
Rename metadata version index and its subclasses
2017-03-03 13:33:50 +03:00
Alexander Udalov
57877bb007
Add default value to js_code_binary_version in js.proto
...
By default, assume the version is 1.0.0
2017-03-03 13:33:49 +03:00
Mikhael Bogdanov
a03ed6f742
Fix for KT-16581: VerifyError when calling default value parameter with jvm-target 1.8
...
#KT-16581 Fixed
2017-03-03 11:21:42 +01:00
Ilya Chernikov
ffe3453937
Do not pollute IDEA log with fake script dependencies
2017-03-03 10:59:28 +01:00
Mikhail Glukhikh
3060ecc066
Minor build fix: "Convert to apply" is now applicable only with 2+ calls with the same receiver
2017-03-03 11:10:01 +03:00
Dmitry Petrov
634d9834de
Wrong receiver is generated for variable-as-function call on object.
...
Move 'generateExpressionForReferencedDescriptor' to CallGenerator,
use it in 'generateCall',
add PSI-free versions of some utility methods so that call elements can
be generated when we're already deep in ResolvedCall generation
and have forgotten about PSI.
2017-03-03 10:15:59 +03:00
Mikhail Zarechenskiy
d573962259
Add test for class delegation with private constructor
...
#KT-16583 Obsolete
2017-03-02 18:34:59 +03:00
Mikhail Zarechenskiy
e2dcec62d3
Fix access to top-level declarations inside anonymous initializer
...
#KT-16583 Fixed
2017-03-02 18:34:51 +03:00
shiraji
0e5603f644
Implement an intention converting several calls with same receiver to with/apply/run #KT-12183 Fixed
2017-03-02 16:56:56 +03:00
shiraji
c2e5fc5215
Move KtDotQualifiedExpression.deleteFirstReceiver to Utils.kt
2017-03-02 16:56:53 +03:00
Alexander Udalov
39d0cd7237
Test that all Kotlin versions in the project are consistent
...
There are two different tests: the one that checks that all versions are
consistent (but not equal, because some versions are major.minor.patch,
but some only major.minor), and the one that checks that versions of all
subprojects of the Maven projects are exactly equal (1.1-SNAPSHOT
currently)
#KT-16455 Fixed
2017-03-02 16:36:51 +03:00
Denis Zharkov
6fb83c2ba3
Force wrapping java classes from annotation methods into KClasses
...
Before this change such wrapping happened only during coercion,
i.e. when a call-site expected a KClass instance.
But when call-site expects Any, for example, no wrapping happened,
and raw j.l.Class instance was left on stack.
The solution is to put wrapping code closer to generation of annotation's
method call itself to guarantee that necessary wrapping will happen.
#KT-9453 Fixed
2017-03-02 15:19:09 +03:00
Denis Zharkov
415c3d57af
Fix substitutor for synthetic SAM adapters
...
When synthetic member comes not from the receiver type itself,
but from one of its supertypes it doesn't make sense to subsitute
the member with receiver type, we should obtain relevant supertype
and use it instead.
#KT-16578 Fixed
2017-03-02 15:06:59 +03:00
Anton Bannykh
9e5ecc11b7
JS: fixed Double.NaN behaviour (KT-13610).
2017-03-02 14:29:50 +03:00
Dmitry Petrov
f636ab21f8
Use proper descriptor for (generic) property assignment.
...
Insert IMPLICIT_INTEGER_COERCION only if Int is coerced to an integer type.
2017-03-02 14:25:58 +03:00
Dmitry Petrov
97fbbc74e6
KT-16440 ClassConstructorDescriptorImpl has null returnType
...
Set constructor return type in FunctionDescriptorResolver#createConstructorDescriptor
(it seems to be the only place where ClassConstructorDescriptorImpl#initialize(...)
is called, but returnType is not set).
2017-03-02 14:25:58 +03:00
Dmitry Petrov
dc1d92855d
KT-16438 Strange dispatch receiver for descriptors of delegated members
...
Provide proper dispatch receiver parameter for delegated members.
Use dispatch receiver parameter for delegated members in IR generation
for delegated member body (and check that the receiver has corresponding type).
2017-03-02 14:25:58 +03:00
Dmitry Petrov
c92f118e5e
Refactoring: introduce CopyBuilder for CallableMemberDescriptor and PropertyDescriptor.
...
Allow providing new dispatchReceiverParameter via CopyBuilder
(required for proper dispatch receiver for delegates).
2017-03-02 14:25:58 +03:00
Dmitry Petrov
9baaf607a3
KT-16566 Support destructuring declarations for lambda parameter in psi2ir
2017-03-02 14:25:58 +03:00
Dmitry Petrov
c226707a80
KT-16554 Local function with default arguments have no IR elements for them
2017-03-02 14:25:58 +03:00
Igor Chevdar
ab3681e164
Package level delegated properties have no dispatch receiver.
2017-03-02 12:33:01 +03:00
Igor Chevdar
3ef612f05a
Added dispatch receiver to delegation implementing property
2017-03-02 12:33:01 +03:00
Simon Ogorodnik
6dd75f697a
Fix Show implementation to show inheritance through type-aliases
...
Show implementation(Ctrl-Hover) now should show classes which inherit such class through type-alias
#KT-15200 fixed
2017-03-01 23:05:19 +03:00
Yan Zhulanow
593fbadc98
Force using the 'kotlin-stdlib-jre7' artifact when configuring Android modules with JDK >= 1.8 as Dex can't process our 'kotlin-stdlib-jre8' artifact.
...
This fixes KT-16530: Configure Kotlin in Project inserts dependency to kotlin-stdlib-jre8 in Android projects.
2017-03-01 18:50:22 +03:00
Yan Zhulanow
060095d39f
Remove kotlin-annotation-processing artifact from the serialized compiler options. It is unused in kapt3 (or if no annotation processor dependencies are provided) but is still imported into the IDEA module files. This leads to compilation error due to the plugin incompatibility.
...
Incompatibility reason: kotlin-annotation-processing has references to the shaded intellij-core, so, being provided to the unshaded kotlinc from the Kotlin plugin, it throws the AbstractMethodError.
This fixes #KT-16184.
2017-03-01 18:50:22 +03:00
Kirill Rakhman
2506bb6673
Inspection checking that destructuring variable name matches the name of different component #KT-12004 Fixed
2017-03-01 18:24:48 +03:00
Dmitry Jemerov
af7de9a0c5
Warn when running the compiler under Java 6 or 7
...
(cherry picked from commit 5537800)
(cherry picked from commit 5614874 )
2017-03-01 16:21:57 +01:00
Simon Ogorodnik
000da2f6d0
Fix of <ERROR CLASS>-es pointing to public TypeAliases
2017-03-01 16:09:24 +01:00
Dmitry Jemerov
78b4cbdb69
Don't generate documentation for option that doesn't work in Gradle
2017-03-01 16:09:23 +01:00
Alexey Andreev
0c0e0aab09
JS: add some docs to declarations related to interop
2017-03-01 16:09:21 +01:00
Dmitry Jemerov
322379e6ae
Assorted stdlib KDocs
2017-03-01 16:09:01 +01:00
Dmitry Jemerov
1d86bd5610
Build multiplatform stdlib docs
2017-03-01 16:08:38 +01:00
Dmitry Jemerov
adc937c57d
Extract separate target for preprocessing JS stdlib sources
2017-03-01 16:08:28 +01:00
Kirill Rakhman
8d425a6f94
Add intention to add missing components to destructuring assignment #KT-16258 Fixed
2017-03-01 18:00:55 +03:00
Mikhael Bogdanov
4d47c0fd63
Partial fix for KT-16193: Incremental compilation generates invalid bytecode for crossinlined functions; avoid IllegalAccessError
2017-03-01 14:45:11 +01:00
Alexander Udalov
3ad4f18e1a
Update grammar to Kotlin 1.1
...
Also drop obsolete comments and inline some trivial rules
2017-03-01 14:50:36 +03:00
Mikhail Zarechenskiy
875fdef917
Add tests for obsolete issues
...
#KT-15913 Obsolete
#KT-12248 Obsolete
2017-03-01 14:07:09 +03:00
Anton Bannykh
318014e4ab
Test vararg with Java behaviour only for JVM backends
2017-03-01 13:58:57 +03:00
Mikhail Glukhikh
91cd590395
Change log: note about javaClass added
2017-03-01 10:14:57 +03:00
Denis Zharkov
a7fc32c8da
Add diagnostic on calling inner classes constructors without receiver
...
Otherwise there will be just an unresolved reference that doesn't give
any useful information
#KT-8959 Fixed
2017-03-01 09:59:01 +03:00
Denis Zharkov
1e0ae04aba
Minor. Convert if to when
2017-03-01 09:59:00 +03:00
Denis Zharkov
b5a8ffaddc
Fix resolution of callable references
...
When there is unsuccessful (e.g invisible) result of one kind (static/non-static)
and there is a successful candidate for another kind, choose the latter one.
Note, that we have to postpone commiting trace until we choose one of the results,
otherwise errors of unsuccessful results are reported
TODO: Maybe it makes sense to report all results when all of them are
unsuccessful (NONE_APPLICABLE or something like this)
#KT-16278 Fixed
2017-03-01 09:59:00 +03:00
Dmitry Petrov
dd61a5b2c6
KT-16553 Underscore variable values shall not be evaluated
...
Do not generate 'componentN' calls for '_' in destructuring assignment.
2017-03-01 09:25:38 +03:00
Dmitry Petrov
63b16e14d8
KT-16536 Wrong IR generated for '++x'
...
Make psi2ir confirm to JVM BE behavior for prefix increment/decrement.
TODO reconsider after design decision (in 1.2?).
2017-03-01 09:25:38 +03:00
Dmitry Petrov
885f397cdd
KT-16535 'provideDelegate' convention is not supported in IR
...
Implement provideDelegate convention support.
NB delegate type now depends on 'provideDelegate' convention resolution.
2017-03-01 09:25:38 +03:00
Dmitry Petrov
6046b25f56
Minor: silence that irritating KT-14030
2017-03-01 09:25:38 +03:00
Dmitry Petrov
045a12ddc6
Minor: constructor IrExpressionBodyImpl(IrExpression)
2017-03-01 09:25:38 +03:00
Dmitry Petrov
e66c2621af
KT-16436 Incorrect primitive constants handling
...
Expression '1.unaryMinus()' is resolved as Int::unaryMinus call with Int receiver.
However, this expression is implicitly coerced to a different integral type (Byte, Short, Long)
based on results of constant evaluation.
Introduce IMPLICIT_INTEGER_COERCION type operator to handle such cases.
TODO: should we use it for simple constant expressions like '1' and '-1'?
2017-03-01 09:25:38 +03:00
Dmitry Petrov
d0134f2c64
KT-16437 Incorrect type inference for some when coerced to Unit
...
If the result of 'when' is not used in an expression,
this 'when' expression has type 'Unit' despite of whatever FE has inferred.
2017-03-01 09:25:38 +03:00
Dmitry Petrov
e2e57e5b6d
KT-16439 Generated methods of data classes have no expression for default arguments
...
Provide default argument expressions for generated 'copy' declaration.
2017-03-01 09:25:38 +03:00
Dmitry Petrov
0f1f354ba6
KT-16486 Strange IR for delegated members
...
Delegated implementations should refer to delegate field:
$this: GET_FIELD <delegate_field> ...
receiver: <this_for_containing_class>
2017-03-01 09:25:38 +03:00
Alexander Udalov
abbbdb5771
Update KotlinVersion.CURRENT to 1.1.2
2017-02-28 20:24:33 +03:00
Alexander Udalov
559da842c0
Clear reflection caches in black box codegen tests
...
To prevent tests from altering outcomes of the subsequent tests.
Also expose the clearCaches method (in the internal class
ReflectionFactoryImpl) so that it can be used in other places in similar
circumstances
2017-02-28 20:19:58 +03:00
Alexander Udalov
e19c1b5364
Drop MockTypeAliasDescriptor, use MockClassDescriptor instead
...
It's irrelevant whether the non-found classifier is a class or a
typealias
2017-02-28 20:19:58 +03:00
Alexander Udalov
12b48f86e7
Do not load error classes in ReflectionTypes
...
Previously ReflectionTypes.find returned an error class in case a class
is not found in the module dependencies. The problem with this approach
is that each call site should call ErrorUtils.isError on the result and
report an error if needed, in order to stop this type from reaching the
codegen, which can't handle error types.
Now we create a MockClassDescriptor instance instead. It's not an error
class, so it'll be handled correctly in the codegen. Also its scope is
empty and errors are reported on any non-trivial usage (see
MissingDependencyClassChecker), so this approach is not worse than error
classes
#KT-16484 Fixed
2017-02-28 20:19:58 +03:00
Alexander Udalov
794cc1e3be
Refactor API of NotFoundClasses
...
Move deserialization-related stuff to TypeDeserializer, because it's
going to be used in other places besides deserialization
2017-02-28 20:19:58 +03:00
Alexander Udalov
86994f81c3
Refactor ClassId.getOuterClassId, make it nullable
2017-02-28 20:19:57 +03:00
Mikhael Bogdanov
21de67cac1
Fix for KT-16532: Kotlin 1.1 RC - Android cross-inline synchronized won't run
...
Finnaly markers are used only for non-local return processing and are removed after inlining to non-inline functions, same deletion should be performed on inlining to anonymous objects
#KT-16532 Fixed
2017-02-28 15:40:04 +01:00
Alexey Sedunov
387c91f957
Kotlin Facet: Do not concat "additional argument" string as configuration gets duplicated
...
KT-16548 Fixed
2017-02-28 16:07:58 +03:00
Anton Bannykh
6608e97d35
JPS JS: simplified the code and added tests for the missing meta.js case (e.g. empty sourceroot; fixed by yole in 00ed0248d9a23701dbef52da02259d174a9999e7)
2017-02-28 16:05:16 +03:00
Anton Bannykh
2d9392aad4
JS: fixed callable reference to a class constructor within object (KT-16411).
2017-02-28 15:55:50 +03:00
Mikhail Glukhikh
6ed3672f8d
Change log for 1.1 (release)
...
(cherry picked from commit afd6e0d )
2017-02-28 11:46:25 +03:00
Denis Zharkov
ecec87cbc7
Refine signature calculation for methods with default parameters
...
The problem was that he number of mask parameters for defaults when
generating methods declaration was being calculated upon resulting signature
(with additional parameters: extension receivers, enum name/ordinal),
while on call-sites the masks number was calculated by the arguments number
in resolved call, i.e. by the number of real value parameters.
And because of the additional synthetic parameters (like enum.ordinal) these
two numbers could be different.
The solution is just to use value parameters number in both places.
Note, that we only count value parameters from the original sourse
declaration, ignoring synthetic ones generated by backend (e.g.
Continuation for suspend functions)
#KT-14565 Fixed
2017-02-28 10:42:07 +03:00
Denis Zharkov
9e03b712de
Use flexible upper bound of parameter's type for vararg argument
...
See the issue and the test. The problem was that when generating
call to `foo` method in member scope of `AT<*>` its resulting descriptor
after substitution and approximation was: fun foo(x: Nothing..Array<out Nothing>).
This signature is correct, but when using this parameter type
for generating a vararg argument the assertion is violated that
the type of the argument must be an array
(by default we're using lower flexible bound everywhere)
The solution is using upper bound for flexible types that should
always have a form of Array<out T> for varargs (even for such corner cases)
both for Kotlin and Java declarations.
#KT-14607 Fixed
2017-02-28 10:40:54 +03:00
Alexey Sedunov
14dad61fe5
Kotlin Facet: Import more configuration options from Maven
...
(cherry picked from commit dca696f )
2017-02-28 03:06:54 +03:00
Alexey Sedunov
90c2b14051
Kotlin Facet: Import Maven option specified in <jvmTarget> element
...
#KT-16329 In Progress
2017-02-28 03:05:13 +03:00
Nikolay Krasko
b9b4cce293
Set JVM target from facet settings on compiler configuration creation
...
Otherwise analyse in IDE is perfomed under default JVM target and wrong
diagnostics are reported.
#KT-16329 In Progress
2017-02-28 02:32:59 +03:00
Roman Elizarov
266d7c15fe
Documentation for createCoroutine/createCoroutineUnchecked
2017-02-27 16:48:24 +03:00
Nikolay Krasko
f0be88fc07
Use doResume name for suspend lambdas context (KT-16481)
...
#KT-16481 Fixed
2017-02-27 14:49:13 +03:00
Nikolay Krasko
dffbe0f707
Count JVM class name for inlined function from base declaration
...
Drop code with naive removing all anonymous classes.
Breakpoints now works when inline call is in anonymous call.
2017-02-27 14:49:12 +03:00
Nikolay Krasko
cd92e3fc98
Refactoring: use constants instead of string literals
2017-02-27 14:49:11 +03:00
Ilya Chernikov
fa5728b288
Use Void instead of Unit in RMI calls, should fix EA-82064
...
("Could not initialize class Kotlin.Unit")
(cherry picked from commit b3a1311 )
2017-02-24 16:58:25 +01:00
Ilya Chernikov
00e8dfe1be
Use sessions with connection to eliminate async shutdown problems
...
(cherry picked from commit 78d334b)
2017-02-24 16:58:25 +01:00
Ilya Chernikov
4202bde550
Make daemon connection more reliable by retrying on certain exceptions
...
(cherry picked from commit 74a0711)
2017-02-24 16:58:25 +01:00
Ilya Chernikov
c7a2422314
minor: Make parallel daemong start test less demanding
2017-02-24 16:58:25 +01:00
Ilya Chernikov
6d9ecc60ef
Skip metadata version check in repl, improve JSR 223 template compatibility
2017-02-24 16:58:25 +01:00
Ilya Chernikov
a16f412b48
Add eval in eval benchmark tests
2017-02-24 16:58:25 +01:00
Ilya Chernikov
1ae95853e7
Fix merging errors
2017-02-24 16:58:25 +01:00
Ilya Chernikov
d3682b7f7d
Implement JSR 223 script template with eval functions, some fixes
2017-02-24 16:58:25 +01:00
Ilya Chernikov
63aae56b11
Get rid of eval on daemon completely, fixes also JSR 223 examples
2017-02-24 16:58:24 +01:00
Ilya Chernikov
a3a782613a
Cleanup
2017-02-24 16:58:24 +01:00
Ilya Chernikov
1032f0d39c
Fix java 8 repl tests
2017-02-24 16:58:24 +01:00
Ilya Chernikov
b9469a9308
Fix script-util after changes in repl infrastruct
2017-02-24 16:58:24 +01:00
Ilya Chernikov
75234701c7
Fix remote repl state facade
2017-02-24 16:58:24 +01:00
Ilya Chernikov
b23911fd59
Reintroduce history check between compile and eval, place generation into code line and id
2017-02-24 16:58:24 +01:00
Ilya Chernikov
7b2ea001c1
Fix state conversion, fix tests
2017-02-24 16:58:24 +01:00
Ilya Chernikov
c5bc58ad32
Implement remote part of the new repl state handling
2017-02-24 16:58:24 +01:00
Ilya Chernikov
f9dedab8c8
Extract repl state as a separate object
2017-02-24 16:58:24 +01:00
Anton Bannykh
3eb5b3e08c
JS: changed BoxedChar visibility to internal
2017-02-24 13:46:29 +03:00
Dmitry Jemerov
5c9f0df256
Download specific build of IJ 162, not a snapshot
2017-02-24 11:19:43 +01:00
Nikolay Krasko
6b62686019
Add blank lines tab to Kotlin code style UI with two basic options
...
KEEP_BLANK_LINES_IN_CODE
KEEP_BLANK_LINES_IN_DECLARATIONS
#KT-15504 In Progress
2017-02-22 20:13:28 +03:00
Nikolay Krasko
bc90d52873
Minor: remove warnings in KotlinSpacingBuilder.kt
2017-02-22 20:13:24 +03:00
Nikolay Krasko
6a4590839c
Don't merge two lines in formatter after line comment (KT-16032)
...
#KT-16032 Fixed
2017-02-22 20:12:19 +03:00
Nikolay Krasko
20f92c6200
Use own kotlin settings for spacing instead of default set
...
Mostly affected by settings:
- KEEP_LINE_BREAKS,
- KEEP_BLANK_LINES_IN_DECLARATIONS
- KEEP_BLANK_LINES_IN_CODE
Allow settings KEEP_LINE_BREAKS in UI.
2017-02-22 20:04:34 +03:00
Nikolay Krasko
5ed5f8f048
Minor: reuse DO_RESUME_METHOD_NAME constant instead of literal
2017-02-22 19:58:50 +03:00
Alexander Udalov
a9678010a8
Invert LanguageFeature responsible for warning on coroutines
...
The problem was that LanguageVersionSettingsImpl.DEFAULT did not have
"WarnOnCoroutines" as a feature and so it was manually added to the settings,
but only in two places: in the compiler and in the IDE
2017-02-22 18:55:48 +03:00
Dmitry Jemerov
e3dab96715
Add Trove4j license
2017-02-22 16:04:33 +01:00
Ilya Gorbunov
6e8f227121
Drop ERROR deprecations in JS library that were introduced in 1.1-rc
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
b393c66426
Drop ERROR deprecations from kotlin-reflect.
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
c0c01d6e49
Drop HIDDEN deprecations from kotlin-stdlib.
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
8e951dee16
Drop remaining ERROR deprecations from kotlin-stdlib-js.
...
Leave only `native`, `parseInt`, `parseFloat` and `noImpl`.
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
eebb820060
Do not refer to java packages in common completion tests
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
3cea5c4510
Drop entire java.util package from kotlin-stdlib-js
...
#KT-6561 Fixed
2017-02-22 17:28:02 +03:00
Ilya Gorbunov
5867d27fb7
[Standard Library] Take the javaClass deprecation back as its replacement is often inconvenient.
2017-02-22 17:27:20 +03:00
Alexander Udalov
d124912c91
Specify language / API version in .idea/kotlinc.xml
2017-02-22 14:45:57 +03:00
Anton Bannykh
909d83c3af
JS: Force Rhino to load files using UTF8 encoding. Fixes failing kt14597 on windows agents.
2017-02-22 14:39:46 +03:00
Alexey Andreev
66f5a12cc4
JS: fix translation of && and || operators when their RHS declare temporary variables. See KT-16350
2017-02-22 11:10:07 +03:00
Dmitry Jemerov
c6bfb02754
Move JsAnalyzerFacade to ide-common module to enable its use in Dokka
2017-02-21 18:39:21 +01:00
Stanislav Erokhin
0a24bf1613
Fix type deserialization for suspend function types which was written by pre-release compiler.
...
Notes: if arity == 0, it means that type was `suspend () -> String` => arguments.size == 1, and it means that SuspendFunction0 has only one type argument and it is return type.
2017-02-21 17:26:07 +03:00
Stanislav Erokhin
81df7645e0
Fix potential CCE -- use unwrappedType after instanceof check.
2017-02-21 17:19:50 +03:00
Mikhael Bogdanov
d24ebf711b
Fix for KT-16441: NoSuchFieldError: $$delegatedProperties when delegating through provideDelegate in companion object
...
#KT-16441 Fixed
2017-02-21 13:01:40 +01:00
Mikhael Bogdanov
a8625b632d
Fix for KT-16411, KT-16412: Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside object
...
#Fixed KT-16411
#Fixed KT-16412
2017-02-21 11:40:25 +01:00
Denis Zharkov
85f9e2e47b
Fix CCE in generated code that happens when comparing boxed chars
...
The problem was that when obtaining char from the wrapper,
codegen used int as expected type that led
to a ClassCastException: java.lang.Character cannot be cast to java.lang.Number
The solution is using coercion to chars, it's still correct,
because of implicit widening coercion in JVM from C to I
#KT-15105 Fixed
2017-02-21 12:33:45 +03:00
Denis Zharkov
378acbf7ec
Minor. Clarify method patchOpcode contract
2017-02-21 12:33:45 +03:00
Alexander Udalov
21449763ab
Add extension CompilerConfiguration.languageVersionSettings for convenience
2017-02-21 10:58:19 +03:00
Alexander Udalov
103bd6dbde
Minor, convert CommonConfigurationKeys to Kotlin
2017-02-20 16:18:00 +03:00
Alexander Udalov
d499998655
Inject CompilerConfiguration instead of LanguageVersionSettings
...
LanguageVersionSettings can be read from the configuration. Also, the
configuration may be used for other stuff, not related to language version
settings, soon
2017-02-20 16:18:00 +03:00
Alexander Udalov
4b31e75550
Refactor createContainerForLazyResolve/createLazyResolveSession
2017-02-20 16:18:00 +03:00
Alexander Udalov
ee1152bc98
Simplify injection of LanguageVersionSettings into JVM analysis
...
Pass the LanguageVersionSettings instance inside the CompilerConfiguration,
since it's needed anyway. In compiler and tests, the configuration comes from
KotlinCoreEnvironment; in IDE, we're constructing it in JvmAnalyzerFacade
2017-02-20 16:18:00 +03:00
Denis Zharkov
f2aacf774e
Get rid of redundant not-null assertion for parameter
...
The problem was that in `Function<T>.apply(T)` T is now not-platform,
so when checking if not-null assertion is needed for parameter in SAM,
it's defined by the upper bounds of T that is a platform (Any..Any?),
and while it's definitely not marked as nullable it's still nullable
in a sense that it can contain null as a value.
So the solution is obvious
#KT-16413 Fixed
2017-02-20 15:46:49 +03:00
Dmitry Jemerov
1bb7a617ad
Don't overwrite explicitly specified language version in facet with version from dependencies; add tests for setting language version based on dependencies
...
(cherry picked from commit fc2b9f6)
2017-02-20 11:32:11 +01:00
Denis Zharkov
a3baca829f
Drop KotlinTarget.INNER_CLASS entry
...
In most of the cases it was used together with CLASS_ONLY and vice versa
They only case when CLASS_ONLY was used without INNER_CLASS
is possibleParentTargetMap.COMPANION_KEYWORD.
But after diagnostic NESTED_OBJECT_NOT_ALLOWED has been introduced,
there's no sense in the restriction of exactly the companion's parent
For clarification see test data changed
2017-02-20 13:24:42 +03:00
Denis Zharkov
d1b17f050b
Prohibit objects inside inner classes
...
#KT-16232 Fixed
2017-02-20 13:24:42 +03:00
Denis Zharkov
5b9b003e02
Prohibit inner sealed classes
...
#KT-16233 Fixed
2017-02-20 13:24:42 +03:00
Alexey Andreev
86d1c7b7ec
JS: fix absence of temporary variable in secondary constructors. See KT-16377
2017-02-20 11:31:38 +03:00
Alexey Tsvetkov
3b222f13f3
Replace daemon's message after start with constant string
...
#KT-15783 fixed
When a daemon client cannot find an existing daemon, it starts a new one.
The client waits for a daemon to start and initialize.
Then the daemon is expected to signal that it is ready for compiling by printing message in stdout.
Before this change the message was the daemons' run path (a directory where all daemons store
their "flag" files).
However the path printed by the daemon was not matched by the path expected by the client somehow
on Windows for a user with a username containing non-English letters.
This commit replaces the message with the constant string.
2017-02-18 19:35:06 +03:00
Alexey Tsvetkov
b2de822fd4
Start daemon with explicit server ip address to prevent host name resolution
2017-02-18 19:35:06 +03:00
Denis Zharkov
0d8f64353a
Fix JVM signature mapping for multi-dimensional arrays
...
#KT-11314 Fixed
2017-02-17 17:50:43 +03:00
Dmitry Jemerov
83d64e8eba
Don't replace explicitly configured project settings with autodetected ones
...
(cherry picked from commit f16f975 )
2017-02-17 14:44:37 +01:00
Nikolay Krasko
7bae72113b
Rename: ExtraSteppingFilter -> KotlinExtraSteppingFilter
2017-02-17 15:57:11 +03:00
Nikolay Krasko
f7391f6c1a
Minor: refactoring
2017-02-17 15:57:11 +03:00
Nikolay Krasko
d58707972d
Keep empty bodies for declarations with comments (KT-16078)
...
#KT-16078 Fixed
2017-02-17 15:57:11 +03:00
Denis Zharkov
e16b0524b6
Fix inline codegen on local functions inside inlined lambda
...
The problem was that anonymous classes wasn't regenerated
although they capture another anonymous class that is a subject
for regeneration
#KT-8689 Fixed
2017-02-17 13:48:19 +03:00
Alexey Tsvetkov
dfb60ba4ac
Minor: remove the word 'experimental' from Gradle IC description
2017-02-16 21:27:04 +03:00
Alexey Tsvetkov
62a15e803b
Avoid storing absolute paths in SyncOutputTask
...
#KT-16003 fixed
2017-02-16 21:26:50 +03:00
Alexey Tsvetkov
6e0f3b7f1f
Avoid having -d and -module set at the same time
...
#KT-14619 fixed
2017-02-16 21:26:50 +03:00
Alexey Tsvetkov
667c00e3ed
Copy compiler arguments from compile task to kapt task
...
#KT-15994 fixed
2017-02-16 21:26:50 +03:00
Dmitry Jemerov
3225c93ce0
Don't pass paths to non-existing metadata files from dependent modules
2017-02-16 19:16:19 +01:00
Mikhail Glukhikh
797813a8d4
Change log update (final) for 1.1-RC
2017-02-16 18:55:14 +03:00
Dmitry Jemerov
6aa3c26f78
Disable facet detection; force detection of API/language level from dependencies on project opening
2017-02-16 16:51:09 +01:00
Dmitry Jemerov
58713270bb
Ask to update runtime library when increasing language version for module
2017-02-16 16:50:47 +01:00
Alexander Udalov
de2117663c
Fix overload resolution ambiguity on *Array.clone() with runtime 1.0
...
#KT-16371 Fixed
2017-02-16 18:46:05 +03:00
Alexander Udalov
9d11f0b92f
Minor, check every deserialized value in refsAreSerializable.kt
2017-02-16 18:00:19 +03:00
Alexander Udalov
1ee2053a16
Make callable references Serializable on JVM
...
#KT-11254 Fixed
2017-02-16 18:00:18 +03:00
Dmitry Jemerov
4d451356eb
Quickfixes to enable unsupported and experimental features handle API level correctly and support updating the runtime library
2017-02-16 12:41:42 +01:00
Dmitry Jemerov
ea228a2fa8
Fix testdata for SimpleKotlinRenderLogTest
2017-02-16 11:43:16 +01:00
Alexander Udalov
612481f0f4
Fix stub builder for builtins after cdeabf26b4
2017-02-16 10:35:07 +03:00
Alexander Udalov
cdeabf26b4
Fix NPE from KotlinBuiltInDecompiler
...
This happened because of bae955aafd : similarly to the corresponding code in
the compiler, the IDE should also skip the metadata for kotlin.Cloneable when
decompiling built-ins because the deserializer is not going to resolve this
class from the metadata
2017-02-16 01:31:44 +03:00
Mikhail Glukhikh
4d4e2c5c94
Change log for 1.1-RC updated
...
(cherry picked from commit 4897af1 )
2017-02-15 20:53:44 +03:00
Alexander Udalov
8e407d548a
Suggest to provide explicit dependency on new kotlin-reflect
...
In case when there's kotlin-stdlib 1.1 and kotlin-reflect 1.0 in the classpath
2017-02-15 20:43:25 +03:00
Alexander Udalov
71fcb07fad
Infer API version from older runtime in compiler's classpath
...
For example, if you invoke kotlinc 1.1 with kotlin-stdlib 1.0 in the classpath,
we now infer -api-version 1.0 automatically
2017-02-15 20:43:25 +03:00
Alexander Udalov
b56639a775
Filter out files with the same paths in runtime version checker
...
To prevent listing them several times in the diagnostic message
2017-02-15 20:43:25 +03:00
Alexander Udalov
8457ab7c58
Report warnings instead of errors in runtime version checker
2017-02-15 20:43:25 +03:00
Alexander Udalov
ba84338862
Support smart cast for nullability in LHS of class literal
...
#KT-16291 Fixed
2017-02-15 20:43:25 +03:00
Alexander Udalov
bae955aafd
Serialize metadata for Cloneable and discard it during deserialization
...
#KT-16358 Fixed
2017-02-15 20:43:25 +03:00
Alexander Udalov
46bd64f59a
Rename FunctionImpl -> FunctionBase, restore abstract class FunctionImpl
...
This fixes the IncompatibleClassChangeError which happens when kotlin-reflect
1.0.x and kotlin-stdlib 1.1.x are in the classpath
#KT-16358 In Progress
2017-02-15 20:43:25 +03:00
Dmitry Jemerov
41f7950ab8
UAST tests: don't null out the application if we have a valid one that we restored from a previous test
2017-02-15 18:21:37 +01:00
Anton Bannykh
4c808e8691
JS: concat vararg arguments using Kotlin.concat and Kotlin.concatPrimitive functions in order to be binary compatible with (Kotlin PrimitiveArray -> JS TypedArrays) mapping.
2017-02-15 18:58:29 +03:00
Ilya Gorbunov
a903c4ab0e
Change log clarifications regarding stdlib
...
(cherry picked from commit ba857a83ff )
2017-02-15 18:17:11 +03:00
Dmitry Jemerov
7704310359
Fix Kotlin facet autodetection so that it actually works and stores the correct language/API level based on project dependencies
2017-02-15 15:48:43 +01:00
Mikhail Glukhikh
3bc322c2ce
Change log for 1.1-RC updated
2017-02-15 17:45:47 +03:00
Dmitry Jemerov
f06d46fe9a
Advance until-build to 172.*
2017-02-15 14:43:53 +01:00
Yan Zhulanow
8e9536f61d
Revert "Kapt3: Add generated source files to Java compile task after kapt execution. Filter only .java files."
...
This reverts commit 82c2ce3a33 .
2017-02-15 16:28:33 +03:00
Yan Zhulanow
35b41b9401
Kapt3: Fix annotation processor option passing
2017-02-15 16:28:26 +03:00
Dmitry Jemerov
95bfe8668d
UAST tests no longer leave a disposed application around
2017-02-15 12:56:21 +01:00
Alexey Sedunov
5d65e6bc9b
Kotlin Facet: Facet migration workaround for the case pre-1.1-beta -> 1.1.rc+ (reset useProjectSettings to false for old configurations)
2017-02-15 14:40:09 +03:00
Alexey Sedunov
2e01f62afe
Kotlin Facet: Detect language/API version by stdlib when "Use project settings" is enabled, but project-level language/api version is not specified explicitly
2017-02-15 14:40:04 +03:00
Alexey Sedunov
0d2122bb1d
Kotlin Facet: Do not rewrite language/API version based on compiler arguments if they do not contain explicit language/API version
2017-02-15 14:30:41 +03:00
Alexey Sedunov
2790fcf4bd
Kotlin Facet: Synchronize version info on opening the configuration editor
2017-02-15 14:30:40 +03:00
Dmitry Jemerov
060a865fb1
Use correct resolution facade for resolving cross-module links in KDoc comments
...
#KT-15647 Fixed
2017-02-15 12:08:18 +01:00
Mikhail Glukhikh
4b7380bea4
Change log for 1.1-RC added
2017-02-15 12:49:22 +03:00
Alexander Udalov
8e3cb912c7
Make Ref classes for shared vars Serializable
...
#KT-14566 Fixed
2017-02-15 10:46:48 +03:00
Alexander Udalov
c10524586a
Use proguard to remove unused symbols from kotlin-reflect.jar
...
#KT-16268 Fixed
2017-02-15 10:46:48 +03:00
Alexander Udalov
2e8bfde2e7
Move -Xskip-metadata-version-check from JVM to common arguments
...
To be used in JS
2017-02-15 10:46:48 +03:00
Alexander Udalov
a1a71a01b1
Drop JvmMetadataVersion.skipCheck, support this correctly
...
Pass the value of this flag via DeserializationConfiguration
2017-02-15 10:46:48 +03:00
Alexey Sedunov
e1463f9e0f
Kotlin Facet: Fix detection of pre-1.1-beta JS-stdlib dependencies
2017-02-14 18:28:44 +03:00
Mikhail Zarechenskiy
5515a63911
Replace KotlinBuiltIns.isBuiltIn with corresponding package checking
...
Method `isBuiltIn` may not work correctly as built-ins are becoming
more and more like a usual dependency. Also behaviour of this method is
depend on the target platform.
2017-02-14 16:21:17 +03:00
Alexey Sedunov
8c84717cbc
Kotlin Facet: Reset all coroutine support flags before importing them frm Gradle
2017-02-14 16:19:21 +03:00
Vyacheslav Gerasimov
a2e429a912
Fixed exception in getUastLocation of class annotation argument
...
#KT-16326 Fixed
2017-02-14 15:56:37 +03:00
Stanislav Erokhin
b6fa10cf9e
Disable some features when LV=1.1 API=1.0.
...
Feature list:
- bound callable references
- local delegated properties
- coroutines.
#KT-16017 Fixed
2017-02-13 20:29:38 +03:00
Dmitry Jemerov
be0211cd49
Ugly deadlock workaround for KT-16149: members of DataBindingComponent are calculated via annotations search which causes resolve reentrering
2017-02-13 17:20:10 +01:00
Simon Ogorodnik
2490318f93
KT-16076 Completion inserts FQN kotlin.text.String
...
KT-14831 Don't add import statement and FQN on converting lambda to reference if typealias is used
KT-16088 Completion wrongly inserts FQN for `kotlin` package
#KT-16076 fixed
#KT-14831 fixed
#KT-16088 fixed
2017-02-13 16:48:14 +03:00
Ilya Gorbunov
fee676a281
Introduce 'takeUnless' function which is like 'takeIf' but with the predicate inverted.
...
#KT-7858
2017-02-13 16:07:34 +03:00
Sergey Igushkin
9e1afe71f2
Fixed Kotlin2Js output not being the output of the compileKotlin2Js tasks.
...
Therefore, fixed Kotlin2Js output not present in JAR.
Reworked the clean behavior in regard to compileKotlin2Js tasks.
Fixed duplicate source roots passed to the compiler.
Issues:
- #KT-15829 Fixed
- #KT-16267 Fixed
- #KT-15902 Fixed
2017-02-13 15:44:05 +03:00
Anton Bannykh
ad313750e7
JS: Fixed lateinit property initialization
2017-02-13 14:56:50 +03:00
Alexey Sedunov
1452d7e4a6
Kotlin Gradle Plugin: Extend implicit argument set
2017-02-13 14:53:18 +03:00
Alexey Sedunov
75c56d58ae
Line Markers: Do not attempt to resolve suspend call candidates which are not call-like expressions
2017-02-13 14:53:17 +03:00
Alexey Sedunov
add16dec3d
Extract Function: Fix detection of suspend calls containing extracted parameters
...
#KT-16251 Fixed
2017-02-13 14:53:17 +03:00
Alexey Sedunov
574a0e629e
Kotlin Facet: Fix stdlib dependency detection
2017-02-13 14:53:16 +03:00
Alexey Sedunov
7fbca4e122
Kotlin Facet: Scan classpath backwards when looking for kotlin-gradle-plugin dependency
...
#KT-15899 Fixed
2017-02-13 14:53:15 +03:00
Alexey Sedunov
330beebb2c
Kotlin Facet: Check contradictory values of "coroutine support" option
...
#KT-16109 Fixed
2017-02-13 14:53:14 +03:00
Alexander Udalov
9397b16bb9
Minor, fix typo in comment
2017-02-13 14:10:19 +03:00
Alexander Udalov
407815449a
Minor, improve error message
2017-02-13 14:09:58 +03:00
Alexander Udalov
57f2feb6fb
Fix unreported deprecation on variables called as functions
...
#KT-16272 Fixed
2017-02-13 14:09:53 +03:00
Alexander Udalov
6793861fd4
Add target FIELD for SinceKotlin, annotate CallableReference.receiver/NO_RECEIVER
2017-02-13 14:09:43 +03:00
Alexander Udalov
20d856fa77
Minor, remove blank line in extra help
2017-02-13 14:09:38 +03:00
Alexander Udalov
8fee62a8c5
Minor, explain what CompilerMessageSeverity.STRONG_WARNING is
2017-02-13 12:11:16 +03:00
Alexander Udalov
4c9afb9d20
Move testable IS_PRE_RELEASE flag to KotlinCompilerVersion
...
It'll be used in the JS back-end as well soon, so
DeserializedDescriptorResolver is not the best place for it
2017-02-13 12:11:15 +03:00
Stanislav Erokhin
3efda0e45a
Reserve yield if it isn't function call.
2017-02-13 02:53:37 +03:00
Ilya Chernikov
9eae929084
Fixes after review
2017-02-11 16:27:27 +01:00
Ilya Chernikov
39d204c550
Adjust test after introducing shutdown delay
2017-02-11 16:27:26 +01:00
Ilya Chernikov
cb7de0e262
Implement more reliable daemon election, fixes KT-15562
...
also making shutdown more reliable
2017-02-11 16:27:25 +01:00
Ilya Chernikov
ebf9e386b0
Add test reproducing "Service is dying" problem (KT-15562)
2017-02-11 16:27:24 +01:00
Alexey Andreev
7192529733
JS: drop support of old library format
2017-02-10 21:04:50 +03:00
Ilya Chernikov
82320bdf7d
Make maven/aether dependencies optional in the script-util
...
(cherry picked from commit 8197240 )
2017-02-10 16:03:06 +01:00
Ilya Chernikov
46894da981
Get rid of daemon-client dependency on openapi, making others "provided"
...
(cherry picked from commit 175d74c )
2017-02-10 16:02:55 +01:00
Ilya Chernikov
f6fd9441e9
Move scripting options into separate panel
...
(cherry picked from commit c06592e )
2017-02-10 14:44:36 +01:00
Dmitry Petrov
20dc1a047d
KT-16250 Handle type alias as imported name qualifier
...
#KT-16250 Fixed
2017-02-10 16:32:07 +03:00
Denis Zharkov
5f843f6759
Fix intrinsic for String.plus for explicit calls
...
#KT-14567 Fixed
2017-02-10 16:05:15 +03:00
Denis Zharkov
fcb4db0226
Remove redundant ACC_VARARGS on methods generated with @JvmOverloads
...
#KT-15424 Fixed
2017-02-10 16:05:15 +03:00
Denis Zharkov
1f179a6f01
Add test on obsolete issue
...
#KT-15196 Obsolete
2017-02-10 16:05:15 +03:00
Denis Zharkov
b989bfce59
Fix VerifyError with @JvmStatic annotated getter
...
The problem was that for property getter 'context.getContextDescriptor()'
references the containing property, while 'context.getFunctionDescriptor()'
the accessor itself
#KT-15594 Fixed
2017-02-10 16:05:15 +03:00
Denis Zharkov
dd275eda78
Minor. Refine class name: JvmStaticGenerator -> JvmStaticInCompanionObjectGenerator
2017-02-10 16:05:15 +03:00
Dmitry Jemerov
87187437ab
Update UAST to version 1.0.11
2017-02-10 13:55:25 +01:00
Ilya Chernikov
da2f310895
Convert line endings when creating ReplCodeLine, fixes KT-15861
...
(cherry picked from commit 894ee4c )
2017-02-09 22:00:30 +01:00
Ilya Gorbunov
c6cb389591
JS kotlin.dom: deprecate asElementList harder.
...
Minor: correct exception message.
2017-02-09 22:15:51 +03:00
Ilya Gorbunov
9a7405adc6
Make javaClass extension property inline to remove further references from Kotlin.
2017-02-09 22:15:25 +03:00
Ilya Gorbunov
63f591bde9
Deprecate some utils and provide sensible replacements from stdlib.
2017-02-09 18:21:51 +03:00
Anton Bannykh
c7d4a4edf4
JS: test property inline through fake override
2017-02-09 15:46:06 +03:00
Stanislav Erokhin
58c2466a52
Minor. use when instead of if sequence.
2017-02-09 15:42:33 +03:00
Stanislav Erokhin
b616ef0a40
Do not force resolve descriptors for explicit imports. Create lazy scope instead.
2017-02-09 15:42:30 +03:00
Stanislav Erokhin
cc429cd865
Fix NewKotlinTypeChecker for case SimpleType with CapturedTypeConstructor.
...
Usually, we have only CapturedType with such constructor.
We should prevent creation such types in the future (KT-16147).
Also added test for KT-14740 where this problem originally appears.
2017-02-09 15:32:18 +03:00
Alexander Udalov
7147008e21
Fix functionFromStdlib.kt by making the member accessible
...
#KT-16263 Open
2017-02-09 14:56:27 +03:00
Dmitry Petrov
a4f9e46c08
Fix https://ea.jetbrains.com/browser/ea_reports/1337846 :
...
Properly handle AbbreviatedTypeBinding for error types.
Get rid of code duplication.
2017-02-09 12:36:52 +03:00
Mikhael Bogdanov
b1e2db21d3
Fix for KT-16225: enumValues non-reified stub implementation references nonexistent method
...
#KT-16225 Fixed
2017-02-09 10:23:32 +01:00
Alexey Sedunov
ba73269ee0
Kotlin Facet: Do not show implicit compiler arguments in "Additional arguments" field
2017-02-09 11:41:05 +03:00
Alexey Sedunov
52102d359a
Kotlin Gradle Plugin: Expose default compiler arguments via compilation task API
2017-02-09 11:41:04 +03:00
Ilya Gorbunov
ec01200997
Introduce ItemArrayLike interface and replace multiple asList adapters with the single one.
2017-02-08 23:31:58 +03:00
Ilya Gorbunov
41c980bcab
Massive deprecations in kotlin.dom
2017-02-08 23:31:58 +03:00
Ilya Gorbunov
365f8d0256
Drop pre-1.0 deprecated dom helpers.
2017-02-08 23:31:58 +03:00
Simon Ogorodnik
a9f2f5c7d0
Fix for complete slowdown of DefaultImportProvider after introducing languageVersion for default imports
...
KT-16243 Very slow completion after variable of type `ArrayList`
#KT-16243 fixed
2017-02-08 21:30:32 +03:00
Ilya Gorbunov
e9f40c41c2
Minor: refactor and rename parameters.
2017-02-08 20:16:10 +03:00
Ilya Gorbunov
31da36bedf
Minor: Add test cases for adding and removing null value to/from set.
...
Fix unused value in removeAll test.
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
c37540c727
Minor: fix missing angle bracket.
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
287a513f23
Provide KDoc for js collection implementations.
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
2269b9839f
Restrict visibility of AbstractMap.SimpleEntry in JS
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
fc7b1c8611
KDoc for mutable abstract collections.
...
Document abstract overrides.
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
ef5e53b37b
KDoc for read-only abstract collections
2017-02-08 20:13:22 +03:00
Ilya Gorbunov
7c54c48e00
Add a note about generic parameter variance to Iterable, Collection, List, Set, Map and their mutable counterparts.
...
Minor: correct docs, code formatting.
2017-02-08 20:13:22 +03:00
Alexander Udalov
ccbfa2e81d
Fix Member.getKPackage and temporarily revert functionFromStdlib.kt
2017-02-08 20:02:49 +03:00
Alexander Udalov
6d16ea0a3a
Fix reflection on top level declarations from other modules
...
The main problem here is that moduleName that is being passed to KPackageImpl
is useless: as can be seen in
ClosureCodegen.generateCallableReferenceDeclarationContainer, the name of the
current module is always written to the class file for a callable reference,
not the name of the module of the referenced declaration. This resulted in
reflection not loading the correct .kotlin_module file and subsequently not
finding the required file facade for a top-level function.
The commit does not fix the issue with the incorrect module name written in the
back-end, but workarounds it. It turns out, reflection can figure out the name
of the module of the referenced declaration itself by parsing the header from
the given java.lang.Class object for a single-file/multi-file package facade
and extract the package_module_name protobuf extension. Similar code was
already there in Member.getKPackage() in ReflectJvmMapping.kt but it did not
support multi-file classes, of which there are a lot in the standard library;
this is now supported
#KT-12630 Fixed
#KT-14731 Fixed
2017-02-08 19:23:18 +03:00
Alexander Udalov
8a79482c5c
Minor, rename packageFacadeProvider -> packagePartProvider
2017-02-08 19:23:18 +03:00
Yan Zhulanow
131570080d
Kapt3: Generate import statements in stubs
2017-02-08 19:01:17 +03:00
Yan Zhulanow
69a063b0b2
Kapt3: Serialize annotation processor options to base64 to support spaces in option values
2017-02-08 19:01:16 +03:00
Yan Zhulanow
8479618632
Kapt3: Invoke integration tests with the Kotlin runtime in the compile classpath (this fixes integration tests, nullability annotations from org.jetbrains were not found)
2017-02-08 19:01:15 +03:00
Yan Zhulanow
823781ea6c
Kapt3: "$annotations" are not always ACC_PRIVATE now (see also KT-15993)
2017-02-08 19:01:14 +03:00
Yan Zhulanow
2553513205
Kapt3: Allow users to disable error type correction (and now it's disabled by default)
2017-02-08 19:01:13 +03:00
Yan Zhulanow
297f8d4161
Kapt3: Use the javac's finalCompiler log to determine if there were any annotation processing errors (KT-16176)
2017-02-08 19:01:13 +03:00
Yan Zhulanow
62092f31cc
Minor: Update test data because of KT-15697
2017-02-08 19:01:12 +03:00
Yan Zhulanow
de3cb4567f
Minor: Remove obsolete JAVA_FILE_PARSING_ERROR constant, fix corresponding test
2017-02-08 19:01:11 +03:00
Yan Zhulanow
08b98f7133
Kapt3: Ignore declarations with illegal Java identifiers (KT-16153)
2017-02-08 19:01:10 +03:00
Yan Zhulanow
7296d9cb7c
Kapt3: Fix working in verbose mode (NPE in JavacFiler.java:597) (KT-16146)
2017-02-08 19:01:09 +03:00
Yan Zhulanow
43a377d3e1
Kapt: Fix error messages map name
2017-02-08 19:01:08 +03:00
Yan Zhulanow
1819194a4c
Kapt3: Allow annotations with Kotlin-only targets, such as PROPERTY (KT-15697)
2017-02-08 19:01:07 +03:00
Yan Zhulanow
6ded5939eb
Kapt: Fix javac error reporting in Kotlin daemon, also fix parsing error reporting (KT-15524)
2017-02-08 19:01:06 +03:00
Yan Zhulanow
cde7cb1076
Kapt3: Write Intellij annotations (NotNull/Nullable) to stubs
2017-02-08 19:01:05 +03:00
Yan Zhulanow
5a46c01f76
Kapt3: Add generated source files to Java compile task after kapt execution. Filter only .java files.
...
This is needed to generate Kotlin files using kapt.
2017-02-08 19:01:04 +03:00
Yan Zhulanow
1797ea62f4
NoArg: Support @Embeddable JPA annotation (KT-15946)
2017-02-08 19:01:03 +03:00
Yan Zhulanow
349095cd14
Maven: Make compiler plugin option reporting more user-friendly
2017-02-08 19:01:03 +03:00
Yan Zhulanow
277490b903
AllOpen, NoArg: Use presets in Maven plugins
2017-02-08 17:36:19 +03:00
Yan Zhulanow
52ecd05301
AllOpen, NoArg: Use presets in Gradle plugins
2017-02-08 17:36:19 +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
Denis Zharkov
f4690ebff9
Initialize JvmBuiltins for module configuration used in test
...
This method is only used within tests, and they didn't fail
mostly by coincidence.
But because of more eager reading of
JvmBuiltIns.isAdditionalBuiltInsFeatureSupported (that checks if built-ins
have been initialized) these tests started failing
2017-02-08 16:04:19 +03:00
Denis Zharkov
1bb40afada
Simplify compatibility mode with ll=1.0 on JDK dependent built-ins
...
A lot of problem arise with current solution
(loading them with lowpriority annotation + additional call checkers):
- We errorneously treated ArrayList.stream as an existing method, while
it's just a fake override from List
- The same problem arises when creating a class delegating to List.
Also the latter case is failing with codegen internal error
(see issue KT-16171)
The negative side of this solution is that instead of reporting meaningful
diagnostic, there will be UNRESOLVED_REFERENCE.
But it seems to be better than having strange problems like ones described above.
#KT-16073 Fixed
#KT-16171 Fixed
2017-02-08 16:04:19 +03:00
Mikhail Zarechenskiy
d84c303029
Do not report 'const' inapplicability on property of error type
...
#KT-12477 Fixed
2017-02-08 15:42:48 +03:00
Mikhail Zarechenskiy
e7ea076093
Do not apply constant folding for non built-in functions
...
#KT-15872 Fixed
2017-02-08 15:42:39 +03:00
Mikhail Zarechenskiy
935f7b1cc1
Add warning if constant conforms to infinity or zero
...
#KT-3805 Fixed
2017-02-08 15:42:33 +03:00
Sergey Igushkin
292f010e59
Fixed Kotlin2JsCompile not picking dependencies from configurations other than compile.
...
Example:
apply plugin: 'kotlin2js'
dependencies {
...
testCompile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
}
Here, the `:compileTestKotlin2Js` task did not pick the dependency and used the `compile` classpath.
This has been fixed.
Also, fixed `testCompileTestCouldAccessProduction` and added `testJsCustomSourceSet`.
2017-02-08 14:36:18 +03:00
Mikhail Glukhikh
607e205ad4
Resolve to descriptor: call safe version in background (~ isApplicable) #KT-12261 Fixed
...
Also #KT-11010 Fixed
Also #KT-12881 Fixed
Also #KT-16162 Fixed
2017-02-08 13:55:34 +03:00
Dmitry Jemerov
00003684e8
Add test for converting a string literal to UAST
2017-02-08 11:29:53 +01:00
Dmitry Jemerov
5dc178460e
Update UAST to 1.0.10; move uast-kotlin tests to Kotlin project
2017-02-08 11:29:53 +01:00
Alexander Udalov
cfe159181d
Deprecate kotlin.reflect.findAnnotation with ERROR
2017-02-08 13:05:27 +03:00
Alexander Udalov
5987e8a47c
Annotate findAnnotation and IllegalPropertyDelegateAccessException with SinceKotlin(1.1)
2017-02-08 13:05:27 +03:00
Alexander Udalov
845d6526b0
Annotate new API in runtime.jvm with SinceKotlin(1.1)
2017-02-08 13:05:27 +03:00
Dmitry N. Petrov
5e10a9d506
Merge pull request #1027 from JetBrains/rr/matveev
...
Override acceptChildren method in IrSetterCallImpl
2017-02-08 12:38:29 +03:00
Alexey Sedunov
615c316262
Kotlin Gradle Plugin: Postpone friend dependency collection until the actual compilation as it may cause an error during Gradle-IDEA project synchronization
...
#KT-16174 Fixed
2017-02-08 11:57:00 +03:00
Alexey Sedunov
4325632b3e
Kotlin Facet: Always parse argument string to proper compiler arguments bean
...
#KT-16137 Fixed
#KT-16157 Fixed
#KT-16206 Fixed
2017-02-08 11:56:59 +03:00
Alexey Andreev
9d6f4d7770
JS: don't treat library without JS metadata as error, report warning and continue instead. See KT-16158
2017-02-08 11:29:30 +03:00
Alexey Andreev
ffca68d85e
JS: escape quotes in some diagnostics with parametrized messages
2017-02-08 11:29:29 +03:00
Mikhael Bogdanov
37a94eaf07
Use appropriate ApiVersion if LanguageVersion is specified in test
2017-02-08 09:10:22 +01:00
Mikhael Bogdanov
5095ef1ea4
Revert 'Temporary disable new intrinsics usage in ieee754 arithmetic'
2017-02-08 09:10:22 +01:00
Denis Zharkov
80638ebc99
Prohibit unsupported suspend operators
...
contains/get/set operators don't work properly on both backends
Also add box test checking that 'compareTo' operator works just fine
#KT-16219 Fixed
2017-02-08 11:07:27 +03:00
Denis Zharkov
4921bd822d
Mark as UNSUPPORTED suspension points in default parameters
...
#KT-16124 Fixed
#KT-16218 Open
2017-02-08 11:07:26 +03:00
Denis Zharkov
4ee818addf
Add callee name to diagnostic about illegal suspension call
...
#KT-15938 Fixed
2017-02-08 11:07:26 +03:00
Anton Bannykh
a74fffeac8
JS: companion object dispatch receiver translation fixed (KT-16160); imported function inlining fixed.
2017-02-08 09:21:18 +03:00
Anton Bannykh
a2431f0d85
JS: fixed inlining functions called through inheritor ("fake" override) from another module (#KT-16144)
2017-02-08 09:19:50 +03:00
Dmitry Jemerov
0709561869
Add missing required type checks; correctly skip elements which have no UAST equivalents when converting an element together with parent; correctly convert string template entries (they aren't expressions)
2017-02-07 19:18:05 +01:00
Simon Ogorodnik
be7158eeb2
KT-16110 Missing suspend keyword completion inside generic arguments
...
#KT-16110 fixed
2017-02-07 19:48:05 +03:00
Roman Elizarov
5895c211a1
Fixed corotine context performance by using reference equality for contexts and keys
...
Added documentation explaining that keys are compared by reference
2017-02-07 19:33:46 +03:00
Ilya Matveev
0759ff7bc2
Override acceptChildren method in IrSetterCallImpl
2017-02-07 18:20:33 +03:00
Nikolay Krasko
2f0e7b54d5
Return old hack with returning null as file scope for standard scripts
...
(cherry picked from commit ef55bd1)
2017-02-07 15:16:04 +01:00
Ilya Gorbunov
b8de78dd43
Deprecate javaClass with replacement this::class.java.
...
Suppress deprecation in diagnostics tests.
2017-02-07 16:30:22 +03:00
Sergey Igushkin
d6a60424a9
Weakened testSuppressWarnings() so that it doesn't fail on the environment STRONG_WARNING.
2017-02-07 16:19:40 +03:00
Ilya Chernikov
99b902f5f2
Fix version calculation code
...
(cherry picked from commit fb74040 )
2017-02-07 13:45:22 +01:00
Ilya Chernikov
f6ce74edb3
Set jvmTarget property for repl compilation from sys prop or java version, fixes KT-16126
...
(cherry picked from commit 4cf2bce )
2017-02-07 13:45:12 +01:00
Alexey Sedunov
396e9afffd
Compiler Configuration: Minor UI improvements
2017-02-07 15:36:39 +03:00
Alexey Sedunov
0c331a3846
Kotlin Facet: Support multiple configuration editor
...
#KT-15914 Fixed
2017-02-07 15:36:38 +03:00
Alexey Sedunov
8849d0e2a3
Kotlin Facet: Combine "General" and "Compiler" tabs
2017-02-07 15:36:37 +03:00
Ilya Gorbunov
03cdc20d64
Update public API dump: new coroutine builder intrinsics
2017-02-07 14:42:00 +03:00
Denis Zharkov
52f1194247
Update public API dump: areEqual helpers for ieee 754 comparisons
2017-02-07 14:41:58 +03:00
Ilya Gorbunov
d4d647ab00
Remove public synthetic annotation holder methods from public API dump.
2017-02-07 14:41:56 +03:00
Ilya Gorbunov
970490e097
Revert "Update rendered public API". This reverts commit a10c6f00f9.
...
Revert "Update stdlib reference and binary compatibility test data". This reverts commit 2d02e5106f .
2017-02-07 14:41:31 +03:00
Mikhail Zarechenskiy
d7093db5c5
Allow to use emptyArray in annotation as argument
...
#KT-14236 Fixed
2017-02-07 14:07:20 +03:00
Mikhail Zarechenskiy
9f0403f72c
Fix exception at accidentally wrong annotation argument type
...
#KT-13740 Fixed
2017-02-07 14:07:13 +03:00
Mikhail Zarechenskiy
655cf82534
Copy compileTimeInitializer for const property descriptor
...
#KT-15802 Fixed
2017-02-07 14:07:06 +03:00
Denis Zharkov
81c3edfc00
Refine cc7f0e2d83
...
getDispatchReceiver/getExtensionReceiver always return not-null value,
but in the absence of receiver this value is equal StackValue.none(), i.e.
has a size 1
The tests were passing because of the problems with the test framework:
4b9e20ab8c
2017-02-07 13:12:02 +03:00
Denis Zharkov
4b9e20ab8c
Rethrow boxError in case of test failure
2017-02-07 12:48:06 +03:00
Denis Zharkov
cc7f0e2d83
Fix codegen problem with safe-call on suspension point with two receivers
...
#KT-16145 Fixed
2017-02-07 11:56:37 +03:00
Denis Zharkov
a10c6f00f9
Update rendered public API
2017-02-07 11:32:10 +03:00
Denis Zharkov
9697196473
Put startCoroutineUninterceptedOrReturn header to common stdlib
2017-02-07 11:08:27 +03:00
Denis Zharkov
4f6a77cf38
Introduce createCoroutineUnchecked intrinsic
...
Also use it for buildSequence implenentation
#KT-16155 Fixed
2017-02-07 11:08:27 +03:00
Roman Elizarov
9a71a20ad6
Docs for startCoroutineUninterceptedOrReturn
2017-02-07 11:07:04 +03:00
Denis Zharkov
230564fb4a
Minor. Get rid of code duplications for resume call wrapping in stdlib
...
Use processBareContinuationResume instead
2017-02-07 11:07:04 +03:00
Denis Zharkov
6dde567be4
Optimize startCoroutine impls, move them to common stdlib
...
Do not wrap initial continuation for startCoroutine in SafeContinuation
This changes leaves only internal declarations and intrinsics as platform
dependent parts of the coroutine library, the rest parts (public API)
is implemented through them in common module
2017-02-07 11:07:04 +03:00
Denis Zharkov
a65d86293b
Improve coroutines library layout
...
- Split CoroutinesLibrary into common and JVM parts
- Get rid of startCoroutine duplications
- Make suspendCoroutine implementation to be platform independent
2017-02-07 11:07:04 +03:00
Denis Zharkov
258ee0db75
Introduce startCoroutineUninterceptedOrReturn coroutine intrinsic
...
#KT-15716 Fixed
2017-02-07 11:07:04 +03:00
Denis Zharkov
29b0b30031
Make createCoroutine return a safe continuation
...
#KT-15718 Fixed
2017-02-07 11:06:50 +03:00
Alexander Udalov
b780e6d374
Do not import "kotlin.comparisons" by default for language version 1.0
...
#KT-16199 Fixed
2017-02-07 10:15:57 +03:00
Alexander Udalov
8014000bd1
Update light analysis test data
2017-02-06 19:41:32 +03:00
Alexander Udalov
85e55810a7
Merge light-analysis tests into black box codegen tests
...
#KT-15382 Fixed
2017-02-06 19:41:29 +03:00
Alexander Udalov
5bd1a35eb1
Refactor bytecode listing & light analysis tests
...
Simplify AbstractLightAnalysisModeCodegenTest so that its logic can be merged
with black box codegen tests
2017-02-06 19:41:20 +03:00
Alexander Udalov
2d02e5106f
Update stdlib reference and binary compatibility test data
...
After 0db60bf and 5cffb38
2017-02-06 19:39:15 +03:00
Alexander Udalov
e58baa51ae
Rename DoubleColonLHS.Expression.isObject -> isObjectQualifier
2017-02-06 19:39:15 +03:00
Alexander Udalov
478352b7e7
Fix callable reference to constructor of nested class in object
...
#KT-15951 Fixed
2017-02-06 19:39:15 +03:00
Alexander Udalov
ca1ed850b8
Improve error on runtime of version different than API version
...
Include the actual runtime version in the error message
2017-02-06 19:39:15 +03:00
Alexander Udalov
57f8ef372f
Report different runtime versions earlier than incompatibility with API version
...
Previously if you had kotlin-reflect 1.0 and kotlin-runtime 1.1 in the
classpath, checkCompatibleWithApiVersion was invoked first, and an error was
reported that suggested to pass "-api-version" to the compiler. However, no
correct "-api-version" can be passed in this case, because
checkMatchingVersions would then report that the two libraries have different
versions anyway. So, now we first ensure that all libraries have the same
version, and only then do check if the version is correct
2017-02-06 19:39:15 +03:00
Alexander Udalov
3a7eec8635
Check API version instead of language in JVM runtime versions checker
...
It should be a valid case to invoke the 1.1 compiler with the 1.0 runtime in
the classpath and "-api-version 1.0". However, previously it was an error and
the message suggested to specify "-language-version 1.0". Language version 1.0
implies API version 1.0, so this effectively made the "-api-version" option
useless
2017-02-06 19:39:15 +03:00
Dmitry Petrov
e0cea468fa
KT-15862 Inline generic functions can unexpectedly box primitives
...
Previous version of the boxing/unboxing analysis treated merging boxed and non-boxed values as a hazard.
If such merged values are not used (e.g., early return + local variables reused in inlined calls),
corresponding boxing/unboxing operations still can be optimized out.
All information related to boxed value usage by instructions is moved to 'BoxedValueDescriptor'.
Introduce "tainted" (and "clean") boxed values, with the following rules:
merge(B, B) = B, if unboxed types are compatible,
T, otherwise
merge(B, X) = T
merge(T, X) = T
where
X is a non-boxed value,
B is a "clean" boxed value,
T is a "tainted" boxed value.
Postpone decision about value merge hazards until a "tainted" value is used.
2017-02-06 16:22:26 +03:00
Simon Ogorodnik
98269c10d8
KT-15744 Intention to import sleep wrongly suggests Thread.sleep
...
#KT-15744 fixed
2017-02-06 14:56:18 +03:00
Alexander Udalov
389ddf26b3
Do not use LanguageVersionSettings.languageVersion directly
2017-02-03 19:35:17 +03:00
Alexander Udalov
b784680fe2
Fix NPE on equals/hashCode for callable references without kotlin-reflect
...
#KT-11316 Fixed
#KT-15847 Fixed
2017-02-03 19:35:16 +03:00
Alexander Udalov
0db60bf6cb
Do not always generate synthetic "$annotations" as private
...
Since annotations are a part of the declaration, they must have the same
visibility as the declaration in the bytecode. Otherwise obfuscators like
Proguard might strip the "$annotations" method and no annotations would be
found via Kotlin reflection
#KT-15993 Fixed
2017-02-03 19:35:15 +03:00
Mikhail Glukhikh
81e083a133
Join declaration and assignment: extra descriptor check for assignment of the same property
2017-02-03 19:26:51 +03:00
Mikhail Glukhikh
153bc79c08
Join declaration & assignment: do not suggest for non-first line of init / constructor #KT-15545 Fixed
2017-02-03 19:26:49 +03:00
Mikhail Glukhikh
ea6e3c828d
Join declaration & assignment: treat assignment with this. correctly #KT-16000 Fixed
2017-02-03 19:26:48 +03:00
Ilya Gorbunov
84f324e04f
Add deprecated parseInt overload without radix parameter to provide better replacement.
2017-02-03 18:39:24 +03:00
Mikhail Glukhikh
6db698f5aa
Correct order added for 'suspend' modifier #KT-16104 Fixed
2017-02-03 18:24:47 +03:00
Vyacheslav Gerasimov
1452129b60
Fixed InvalidMirrorException in uast while getting annotation argument location
2017-02-03 18:06:05 +03:00
Vyacheslav Gerasimov
bad15249e7
Fixed exception in android lint
2017-02-03 18:06:05 +03:00
Vyacheslav Gerasimov
1ea2e8c1d1
Fixed KotlinLintTestGenerated.testJavaPerformance
2017-02-03 18:06:05 +03:00
Vyacheslav Gerasimov
6699b03c0b
Fixed error reporting in AnnotationDetector
...
#KT-14920 Fixed
(cherry picked from commit 3647d53 )
2017-02-03 18:06:05 +03:00
Vyacheslav Gerasimov
10517c16ee
Uast 1.0.9
2017-02-03 18:06:04 +03:00
Denis Zharkov
5888c75d41
Minor. Refine implicit receiver for destructuring scope
...
Actually it should not be very important, but for sake of consistency
we should use null receiver even if we have one in an outer scope
This is a post-review fix
2017-02-03 17:58:52 +03:00
Ilya Gorbunov
da81fb32a6
Add LowPriority annotation to deprecated functions to allow star-importing their replacements from kotlin.reflect.full.
2017-02-03 17:53:16 +03:00
Ilya Gorbunov
af443ac046
Search java version in java.specification.version, prepare to that starting from java 9 it will contain only a single component.
2017-02-03 17:52:13 +03:00
Alexey Tsvetkov
62e42d6f45
Fix kapt1 with stubs test to main internal references
2017-02-03 17:16:08 +03:00
Alexey Tsvetkov
de24e68adc
Revert "Avoid having -d and -module set at the same time"
...
This reverts commit ac241e2676 .
2017-02-03 17:16:08 +03:00
Denis Zharkov
2d88419c38
Fix annotation deserialization on suspend functions
...
Use proper initial/frontend version of suspend descriptor
when writing METHOD_FOR_FUNCTION, because serializer uses this version
Also this commit contains adjustments of neighboring code to the describe
change
#KT-16093 Fixed
2017-02-03 16:44:22 +03:00
Sergey Igushkin
2516583ecf
Fixed empty -libraries passed from Gradle plugin in CLI.
2017-02-03 13:20:53 +03:00
Anton Bannykh
f0e3c87b84
JPS: fixed duplicate meta.js in case of multiple source roots in the same module.
2017-02-03 13:03:12 +03:00
Anton Bannykh
289a7a9cc3
JS: fixed support for test source roots (KT-6627)
2017-02-03 13:03:12 +03:00
Alexey Andreev
97b6c3013a
JS: fix destructuring declaration and increment in coroutines. See KT-16058
2017-02-03 11:09:10 +03:00
Alexey Andreev
b929db1b07
JS: don't generate object literal for local delegated properties, generate call to getValue/setValue on each use site instead.
2017-02-03 11:09:10 +03:00
Alexey Andreev
0f049a90aa
JS: prohibit nested classes, objects and enums in external interface. See KT-16012
2017-02-03 11:09:09 +03:00
Denis Zharkov
cc28fecacd
Fix VerifyError in coroutines caused by null spilling
...
While within a method by the JVM spec null-value has a special
Nothing-like type, when we spill it for a coroutine, we must choose
some real type to CHECKCAST to after restoring the variable's value.
But the problem is that such a real type depends on usage of that null value,
and there may be more than one usage.
The solution is not to spill such variables into fields, but instead
init them with ACONST_NULL after each suspension point
#KT-16122 Fixed
2017-02-03 10:32:28 +03:00
Denis Zharkov
60c2579436
Allow destructuring in suspend lambda with suspend componentX
...
#KT-16113 Fixed
2017-02-03 10:32:28 +03:00
Alexey Sedunov
59fe7444d1
Rename/Find Usages: Disable text occurrence search for KtParameter
2017-02-02 19:09:20 +03:00
Alexey Sedunov
79e67f4e50
Kotlin Facet: Support multiple artifact Ids corresponding to target platform
2017-02-02 19:09:19 +03:00
Mikhael Bogdanov
aa3f64bc93
Temporary disable new intrinsics usage in ieee754 arithmetic
2017-02-02 16:31:49 +01:00
Mikhael Bogdanov
560226cc84
Use proper type for nullability check in 'calcTypeForIEEE754ArithmeticIfNeeded'
2017-02-02 16:31:49 +01:00
Mikhael Bogdanov
5cffb3892d
Added intrinsics for nullable Double/Float equals check
2017-02-02 16:31:49 +01:00
Mikhael Bogdanov
87529f957d
Update for "Fix for KT-15868: NPE when comparing nullable doubles"
2017-02-02 16:31:49 +01:00
Denis Zharkov
529b526763
Support parameter destructuring in suspend lambdas
...
#KT-16092 Fixed
2017-02-02 18:09:19 +03:00
Denis Zharkov
0878049f15
Support tailrec suspend functions in JVM backend
...
The main problem is that inside a state machine for a named suspend
function parameters of it's owner are available as a usual captured
closure parameters (i.e. through synthetic fields), while
TailRecursion codegen expects that parameters are straight local
variables.
So, the solution is just to define local var for each of real parameters
(all but the last continuation parameters) for tailrec functions.
#KT-15759 Fixed
2017-02-02 18:09:19 +03:00
Denis Zharkov
d7403ca185
Minor. Simplify ClosureCodegen.calculateConstructorParameters
2017-02-02 18:09:19 +03:00
Denis Zharkov
a167539d2e
Minor. Move recordField call into Closure.captureVariable
2017-02-02 18:09:19 +03:00
Mikhail Glukhikh
212f6e0432
Stub creation from cls fixed for suspend function types
...
(cherry picked from commit f49ef8e )
2017-02-02 17:54:06 +03:00
Stanislav Erokhin
a4272caa8c
Fix serialization for suspend function types.
...
Since now `suspend (Int) -> String` will be serialized as `(Int, Continuation<String>) -> Any?` + suspend flag.
Before this change such type serialized like this: Function2<Int, String> + suspend flag. And yes, type `Function2<Int, String>` isn't correct, because Function2 expect 3 type arguments.
We have special logic for this case and we deserialize such error-written types correctly.
(cherry picked from commit 3518cbe )
2017-02-02 16:48:59 +03:00
Stanislav Erokhin
382122470f
Use LanguageVersionSettings from project instead of LanguageVersionSettingsImpl.DEFAULT for sdk and library resolver.
...
General effect will be the following:
- all member scopes for libraries and JDK will be constructed with -language-version/-api-version specified in project settings
- for modules with another (not like in project settings) -api-version or -language-version we will have not correct member scope -- for example we will see typealiases from such libraries.
#KT-15979 Fixed
(cherry picked from commit 0001865 )
2017-02-02 16:47:53 +03:00
Dmitry Jemerov
ac4be88627
Prevent duplicate addition of "org.jetbrains.kotlin" prefix when copying sources to Maven projects
2017-02-02 14:06:55 +01:00
Mikhail Glukhikh
4c2ae5e3dd
Generate test support: error hints moved out of write action
2017-02-02 15:33:18 +03:00
Mikhail Glukhikh
d8f0167d1f
Let implement interface: create write action manually to avoid AWT events inside
2017-02-02 15:29:31 +03:00
Mikhail Glukhikh
b839e522e9
Generate equals or hash code: do not run in write action to avoid AWT events inside
2017-02-02 15:29:30 +03:00
Mikhail Glukhikh
a204e57877
Move file to package matching directory: run write action manually to avoid AWT events inside
2017-02-02 15:29:29 +03:00
Mikhail Glukhikh
72b8b85563
Create kotlin sub class: run write action manually to avoid AWT events inside
2017-02-02 15:29:27 +03:00
Mikhail Glukhikh
9664a066a4
Generate test support: ask everything before write action to avoid AWT events inside
2017-02-02 15:29:26 +03:00
Mikhail Glukhikh
70c5d8b9ad
Create test intention: do not start in write action to avoid AWT events inside
2017-02-02 15:29:25 +03:00
Mikhail Glukhikh
07f06352d7
if-then --> safe access: run write action manually to avoid AWT events inside
2017-02-02 15:29:23 +03:00
Mikhail Glukhikh
834c3f5d62
if-then --> elvis: run write action manually to avoid AWT events inside
2017-02-02 15:29:22 +03:00
Dmitry Jemerov
9594147c55
Find Usages checks that the signature of the method a property usage resolves to matches the signature of the method being searched
...
#KT-15291 Fixed
2017-02-02 12:44:54 +01:00
Alexey Sedunov
dbfe3370aa
Kotlin Facet: Ignore invalid platform-specific compiler arguments
2017-02-02 13:40:11 +03:00
Mikhael Bogdanov
1e2b50332d
Test data update
2017-02-02 09:39:03 +01:00
Mikhail Glukhikh
5f6d65cd44
Change log: last-shot issues for 1.1-Beta2
2017-02-01 21:06:51 +03:00
Mikhail Glukhikh
a15454429d
Change log: 1.1-RC --> 1.1-Beta2
...
(cherry picked from commit 7ee259d )
2017-02-01 21:01:21 +03:00
Dmitry Jemerov
bc9c40883c
Avoid repeated reading of file contents from disk while building stubs
2017-02-01 18:14:57 +01:00
Dmitry Jemerov
66f7382e3a
Advance binary stub version due to coroutine metadata format changes
2017-02-01 18:10:50 +01:00
Mikhael Bogdanov
a2c5c94ee6
Fix for KT-15868: NPE when comparing nullable doubles
...
#KT-15868 Fixed
2017-02-01 17:43:56 +01:00
Alexey Tsvetkov
79bea6710f
Increment data container cache version
...
Reason: coroutines metadata format has been changed (since 1.1-beta-1)
2017-02-01 18:50:06 +03:00
Alexey Tsvetkov
1818289772
Avoid checking incremental caches versions if corresponding property is set
2017-02-01 18:50:06 +03:00
Alexey Tsvetkov
2eeb7e36b9
Refactoring: extract checking caches versions to function
2017-02-01 18:50:06 +03:00
Anton Bannykh
385a02ea55
Added forgotten kt8666.txt for LightAnalysisModeCodegenTestGenerated
2017-02-01 18:20:30 +03:00
Dmitry Petrov
7600f89f0b
KT-15574 Can't instantiate Array through Type Alias
...
Array instatiation code should handle type alias constructors properly.
So far, we don't have constructors with type parameters
different from the type parameters of the resulting type,
so we can safely take type arguments of the underlying type.
2017-02-01 17:14:50 +03:00
Anton Bannykh
f5a431490c
JS: verified that String concatenation with large Long's is fixed (KT-8666)
2017-02-01 15:36:02 +03:00
Sergey Mashkov
20f9e67244
KT-16043 IDL: mark inline helper function as InlineOnly (generate)
2017-02-01 14:44:48 +03:00
Sergey Mashkov
4c2edd54a6
KT-16043 IDL: mark inline helper function as InlineOnly
2017-02-01 14:44:48 +03:00
Mikhail Glukhikh
5fbb3211de
Minor change log fix
...
(cherry picked from commit ef519dc )
2017-02-01 14:42:09 +03:00
Natalia Ukhorskaya
68f722b337
Debugger: fix evaluate expression when breakpoint is set on function without body inside object
...
#KT-15855 Fixed
2017-02-01 14:31:35 +03:00
Dmitry Jemerov
faac1c3156
When calculating import candidates, skip redundant deduplication performed by PsiShortNamesCacheImpl
...
#KT-16071 Fixed
2017-02-01 12:23:16 +01:00
Dmitry Jemerov
1d37c8cfea
Calculate autoimport candidates in daemon thread when import fix is created, not in EDT
2017-02-01 12:23:16 +01:00
Denis Zharkov
e9262b875b
Implement makeNullableAsSpecified for TypeTemplate properly
...
This change fixes an SOE in isCastErased:
@JvmStatic
fun isCastErased(supertype: KotlinType, subtype: KotlinType, typeChecker: KotlinTypeChecker): Boolean {
if (supertype.isMarkedNullable || subtype.isMarkedNullable) {
return isCastErased(TypeUtils.makeNotNullable(supertype), TypeUtils.makeNotNullable(subtype), typeChecker)
}
TypeUtils.makeNotNullable(TypeTemplate) should not return the same object
if isMarkedNullable returned true on the instance
#KT-15516 Fixed
2017-02-01 11:51:15 +03:00
Mikhail Glukhikh
dc57f97196
1.1-RC change log polishing
2017-01-31 19:01:03 +03:00
Ilya Gorbunov
3be8558a1a
Edit 1.1-RC changelog regarding Standard Library and JS
2017-01-31 18:45:53 +03:00
Mikhail Glukhikh
8d48452c1a
1.1-RC: change log (final?) update
2017-01-31 17:31:03 +03:00
Alexey Tsvetkov
c57dac159b
Avoid having -d and -module set at the same time
...
#KT-14619 fixed
2017-01-31 16:53:34 +03:00
Alexey Tsvetkov
9b5129a0f3
Fix annotation processors outputting to classes dir with kapt 3
...
#KT-15915 fixed
Annotation processor can access a classes directory provided by AP environment.
Previously kapt 3 was using kotlin-classes directory as a a classes directory.
However compileKotlin task does not expect this.
Also having multiple tasks with the same output dir is a bad practise in Gradle.
This change introduces a separate directory for classes generated by kapt 3.
Its output is copied to a resulting classes dir (just as a kotlin-classes dir).
2017-01-31 16:53:34 +03:00
Alexey Tsvetkov
34f04f3482
Fix downgrading from 1.1 to 1.0.x in Gradle
...
If @Input property is added in new plugin version
and this property has a new type (a class/enum which is not presented in previous plugin)
then downgrading leads to an exception,
because Gradle tries to deserialize the property value from its caches,
but the type of value does not exist.
Workaround: add new String property.
2017-01-31 16:53:34 +03:00
Alexey Tsvetkov
49d0f69227
Fix exception when Groovy lazy string (GString) is in freeCompilerArgs
...
#KT-15500 fixed
GString is an object that represents string literal like `"${project.name}"`
in Groovy. It is not an instance of string.
Groovy automatically converts GString to String when it is passed where String is expected.
However freeCompilerArgs is a List<String>, so type parameter info is lost at runtime.
When iterating freeCompilerArgs in Kotlin as a list of string, an exception
is thrown because GString cannot be casted to String (toString should be called instead).
2017-01-31 16:53:34 +03:00
Dmitry Jemerov
fa6bfe932e
More efficient implementation of containsFilesWithExactPackage() (don't materialize KtFile instances we don't actually need)
2017-01-31 14:44:28 +01:00
Dmitry Jemerov
62e1d49def
Make sure that we don't have multiple coroutine status flags in the facet settings if one flag was set before parsing the command line options and another is specified through the command line options.
...
#KT-16075 Fixed
2017-01-31 14:32:09 +01:00
Alexander Udalov
464820458e
JS: rename "-library-files" argument to "-libraries" and change separator
...
Use the system separator (':' or ';') instead of commas
#KT-16083 Fixed
2017-01-31 16:26:35 +03:00
Dmitry Jemerov
fd24031a69
Don't read file content to see if file is Kotlin-compiled if we have cached attribute but don't have complete data
2017-01-31 13:50:35 +01:00
Dmitry Jemerov
ffa3cf0027
Don't show "Convert lambda to reference" for lambdas passed to suspend functions
...
#KT-16072 Fixed
2017-01-31 13:42:38 +01:00
Mikhail Glukhikh
7021b0bf15
Change log update for 1.1.0
2017-01-31 15:21:13 +03:00
Simon Ogorodnik
c2ba4e3ab9
KT-14252 Completion could suggest constructors available via typealiases
...
#KT-14252 fixed
2017-01-31 15:14:18 +03:00
Denis Zharkov
39fc1789e0
Prohibit inline lambda parameters of suspend function type
...
#KT-16068 Fixed
2017-01-31 14:55:48 +03:00
Stanislav Erokhin
67835b642d
Do not show url for multi platform projects.
2017-01-31 13:07:54 +03:00
Mikhail Zarechenskiy
f3385e093e
Introduce language feature for type inference on generics for callable references
...
#KT-16061 Fixed
2017-01-31 01:15:02 +03:00
Nikolay Krasko
563196a8aa
Stop in the method with suitable name if no descriptor found
...
Absence of descriptor is possible when sources are outdated or absent.
Early stop is better than iterating in step into till the program end.
2017-01-30 21:28:59 +03:00
Nikolay Krasko
c8999c4141
Fix in test bad behaviour of smart step into for stored lambda
...
When lambda is stored and not executed immediately, smart step into
doesn't work.
2017-01-30 21:28:59 +03:00
Nikolay Krasko
4a4a8250fd
Fix smart step into functions call with suspend lambdas (KT-14700)
...
#KT-14700 Fixed
2017-01-30 21:28:59 +03:00
Nikolay Krasko
2add36ef32
Exclude errors descriptors from the set of conflicting declarations
...
Resolve hanging in evaluate expression
2017-01-30 21:28:59 +03:00
Alexander Udalov
ad0178ee64
Increase SOURCE_STUB_VERSION
...
Because of a974ed1 and b9f9894
2017-01-30 20:27:17 +03:00
Alexander Udalov
8811165de8
Report error on callable reference or class literal with "-no-stdlib"
...
Also workaround the NoSuchElementException that was happening because error
type never has any type arguments
#KT-14547 Fixed
2017-01-30 20:27:17 +03:00
Alexander Udalov
7371dc9b54
Minor, fix typo in assertion message
2017-01-30 20:27:17 +03:00
Alexander Udalov
424afba246
Add hint to use "-language-version", when applicable, in JVM runtime checker
2017-01-30 20:27:17 +03:00
Alexander Udalov
7167139c2e
Refactor JvmRuntimeVersionsConsistencyChecker for readability
2017-01-30 20:27:16 +03:00
Alexander Udalov
9e877b4a9e
Do not report error on libraries that bundle Kotlin runtime in classpath
...
Instead, report a strong warning, suggesting to remove such libraries from the
classpath
#KT-15995 Fixed
2017-01-30 20:27:16 +03:00
Alexander Udalov
2d975d74cb
Slightly refactor inline functions at serializationUtils.kt
...
Extract large bodies to separate functions, use KType.classifier instead of
KClass.createType
2017-01-30 20:22:54 +03:00
Alexander Udalov
f6c3aa0807
Fix JvmBuildMetaInfoTest.testSerialization
...
Do not check against hard-coded values of parameters, because they might be
changed a lot in the future
2017-01-30 20:22:54 +03:00
Mikhail Glukhikh
8bf233e686
Change log update for 1.1.0
2017-01-30 20:21:13 +03:00
Yan Zhulanow
1b337e1a48
Generate enum values with bodies properly (KT-15803)
2017-01-30 20:13:08 +03:00
Yan Zhulanow
18e0baa13e
Kapt: Allow empty .kt files list in kapt in order to support kapt with Java-only source files. (KT-15675)
2017-01-30 20:13:08 +03:00
Ilya Gorbunov
38b79a51d5
Fix tests after introducing exlcusions to default imports of kotlin.js package.
2017-01-30 19:44:51 +03:00
Ilya Gorbunov
33f3106157
Do not use Math in common code.
2017-01-30 19:44:51 +03:00
Ilya Gorbunov
66abea1f19
Add explicit imports of kotlin.js.* to stdlib where required.
2017-01-30 19:44:51 +03:00
Ilya Gorbunov
25c3064554
Add explicit imports of kotlin.js.* to generated files.
2017-01-30 19:44:51 +03:00
Ilya Gorbunov
cd5f68f119
Add exclusions to JS platform default imports
2017-01-30 19:44:51 +03:00
Alexey Andreev
d0b7dc8f4e
JS: don't fail when generating signature for function which refers to undefined type
2017-01-30 19:26:24 +03:00
Ilya Gorbunov
f4ef98c327
Remove test for named native
2017-01-30 19:21:41 +03:00
Ilya Gorbunov
c4a0bb727d
Change LoadBuiltinsTest testData, add runtime and import to box tests.
...
#KT-16030
2017-01-30 18:55:05 +03:00
Ilya Gorbunov
4ac7be9fa5
Retract bitwise operators from builtins for Byte and Short and add them as extensions in kotlin.experimental package in stdlib.
...
#KT-16030
2017-01-30 18:54:59 +03:00
Dmitry Jemerov
9b820202b5
Don't run decompiler to check whether reference is in copied fragment
...
#KT-16038 Fixed
2017-01-30 16:32:46 +01:00
Dmitry Jemerov
8968d5663d
Minor fixes for stdlb kdoc
2017-01-30 16:13:49 +01:00
Alexey Sedunov
60edc46d8c
Spring Support: Consider declaration open if it's supplemented with a preconfigured annotation in corresponding compiler plugin
...
#KT-15444 Fixed
2017-01-30 17:54:53 +03:00
Dmitry Jemerov
f73d32afeb
Look at parent project when checking whether the Kotlin Maven plugin is applied in a module
...
#KT-15954 Fixed
2017-01-30 15:53:37 +01:00
Alexey Andreev
06e8f7b328
JS: don't report error when FAKE function overrides external function with optional parameters. Report only when it overrides at least two such functions. See KT-15961
2017-01-30 17:26:07 +03:00
Simon Ogorodnik
d117b0210f
Revert "KT-14252 Completion could suggest constructors available via typealiases"
...
Reverted due problems with tests
This reverts commit 55eeb74c08 .
2017-01-30 16:46:38 +03:00
Anton Bannykh
77aa685496
JS: char boxing
2017-01-30 16:31:44 +03:00
Simon Ogorodnik
55eeb74c08
KT-14252 Completion could suggest constructors available via typealiases
...
#KT-14252 fixed
2017-01-30 16:24:12 +03:00
Alexander Udalov
167155388d
Rename JsBinaryVersion -> JsMetadataVersion
...
For consistency with JvmMetadataVersion
2017-01-30 16:05:46 +03:00
Alexander Udalov
e9a737b85a
Promote severity of configuration warnings to STRONG_WARNING
...
The reason is that these configuration problems may be the reason of
compilation errors, but they were hidden from the output because warnings are
not reported when there's at least one error
2017-01-30 16:01:29 +03:00
Alexander Udalov
7ac96163ac
Introduce CompilerMessageSeverity.STRONG_WARNING
...
This is a severity for mandatory warnings, i.e. those which should be reported
in any case, even if there are compilation errors
2017-01-30 16:01:27 +03:00
Alexander Udalov
268d10d3f0
Advance JvmMetadataVersion to 1.1.4, change IS_PRE_RELEASE to false
...
Kotlin 1.1 is no longer considered a pre-release
2017-01-30 16:00:05 +03:00
Alexander Udalov
1025fe9307
Minor, remove unnecessary logging for valid erroneous case
...
It seems that it's normal for VirtualFile in this place to be invalid in this
way
2017-01-30 15:57:51 +03:00
Alexander Udalov
933bcb3511
JS: do not require "id" in the File protobuf message
2017-01-30 15:55:20 +03:00
Denis Zharkov
88b82d5fa2
Exclude coroutine inrinsics and internal packages
...
#KT-16018
2017-01-30 15:45:02 +03:00
Denis Zharkov
b0ebbe99d6
Fix coroutine-related VerifyError
...
The problem was that we spilled the `origin` variable (see test) as Object, because
we determined the type of merge(null, String) incorrectly.
#KT-15973 Fixed
2017-01-30 15:45:02 +03:00
Zalim Bashorov
0dd3f11175
KJS: mark as inline only some functions form js stdlib
2017-01-30 15:35:45 +03:00
Zalim Bashorov
a49ad3ca69
KJS: change visibility of subSequence helper function to internal to avoid to use it directly from kotlin
2017-01-30 15:35:45 +03:00
Zalim Bashorov
d5dca38d68
KJS: rename baseClass field in metadata to interfaces since we plan to store there only implemented interfaces (see KT-15037)
2017-01-30 15:35:45 +03:00
Zalim Bashorov
1b8b6bea43
KJS: turn Json class into external interface
...
#KT-12712 Fixed
2017-01-30 15:35:45 +03:00
Dmitry Jemerov
3a3cf048a6
Register ControlFlowFactory in KotlinCoreProjectEnvironment
...
#KT-16047 Fixed
2017-01-30 13:22:47 +01:00
Dmitry Jemerov
f0e890797a
Disable "Create type alias from usage" fix when language level doesn't support type aliases
...
#KT-16036 Fixed
2017-01-30 12:37:31 +01:00
Dmitry Jemerov
17c73cea7f
Disable "Introduce type alias" refactoring when type aliases aren't supported by the current language level
2017-01-30 12:37:31 +01:00
Dmitry Jemerov
720da176db
Exclude keywords from completion if the corresponding feature is unsupported by the language level selected for the module
2017-01-30 12:32:41 +01:00
Alexander Udalov
eb61a1c5a8
Make KTypeProjection's constructor public
...
To make it easier to create a KTypeProjection instance given a KVariance
instance (otherwise you currently need to do a "when" on it). Also it's exposed
via automatically generated "copy" anyway
2017-01-30 11:31:20 +03:00
Alexander Udalov
e5680565b3
JS: drop "-kjsm" flag, merge logic with "-meta-info"
...
#KT-16049 Fixed
2017-01-30 11:31:03 +03:00
Alexander Udalov
17b0b7704f
JS: minor, drop obsolete VFS_PROTOCOL
2017-01-30 11:31:02 +03:00
Alexander Udalov
ef42e3e4aa
JS: write full version (major.minor.patch) to .meta.js
2017-01-30 11:31:02 +03:00
Alexander Udalov
038e4da83c
Do not crash JS decompiler on non-existing .jar entries
...
See the comment for clarification
2017-01-30 11:31:02 +03:00
Alexander Udalov
b5fef84e9c
Update tests on decompiled text for JS
...
Because .kjsm files now contain all declarations from the package (contrary to
the JVM decompiler which produces one file for one class/package facade), some
common decompiled text tests started to behave differently on JVM and JS.
Update two of them (Modifiers, ClassWithClassObject) to make results the same,
copy another (TypeAliases) to JVM-/JS-specific tests with different outputs
2017-01-30 11:31:02 +03:00
Alexander Udalov
805e3e4d0f
Drop tests on JS decompiled text / stub consistency
...
They're no longer needed because the logic of the decompiler / stub builder is
now trivial (see KotlinJavaScriptDeserializerForDecompiler,
KotlinJavaScriptStubBuilder) and after it's merged to the decompiler for
built-ins, it's going to be tested anyway with BuiltInDecompilerConsistencyTest
2017-01-30 11:31:02 +03:00
Alexander Udalov
1045689911
JS: simplify KotlinJavascriptSerializationUtil
...
Inline recently introduced SerializerCallbacks
2017-01-30 11:31:02 +03:00
Alexander Udalov
63c24c56ec
JS: serialize .kjsm package-wise, adapt decompiler & stub builder
...
Instead of multiple .kjsm files for different classes and .kotlin_string_table,
.kotlin_file_table, .kotlin_classes files for each package, serialize the
contents of each package to a single foo/bar/baz/baz.kjsm file. The short name
of the file is the last segment in the FQ name of the package, or
"root-package" if the package is root.
There are two main reasons for this change:
1) Such structure takes less space, is more IO-friendly and will not cause
multiple exceptions as the old one, where we sometimes tried to read
non-existing files
2) This is exactly the same format that is used to serialize built-in
declarations (.kotlin_builtins) at the moment, which will allow us to reuse
some code
Also write a separate Header protobuf message to the beginning of the .kjsm
file. This will be used as arguments of the kotlin.Metadata annotation are used
in the JVM-specific parts of the compiler: to be able to provide some general
information about the binary file without parsing the whole protobuf data.
This commit breaks decompiled text & stub builder consistency tests. This is OK
because they're removed in a future commit.
Fixes EA-79605, EA-81947, EA-84277 and maybe EA-86787
#KT-10894 Fixed
#KT-14124 Fixed
#KT-15755 Fixed
2017-01-30 11:31:02 +03:00
Alexander Udalov
46bf057b47
JS: do not generate .meta.js and .kjsm for built-ins
2017-01-30 11:31:02 +03:00
Alexander Udalov
4b81dfb7c1
JS: improve binary representation format of metadata in .meta.js
...
Instead of writing many different files and serializing this "virtual file
system" to a byte array in a protobuf message, just write the needed stuff
directly, as fields in the Library message. Make it consist of many Part
messages, where the Part message is equivalent to the BuiltIns message in
builtins.proto. The next step would be to combine Library.Part and BuiltIns,
which will allow us to simplify some serialization-related code soon.
In this commit, no changes happened to the .kjsm format. But since the code
that serialized the abovementioned files was shared, a temporary abstraction
over two serialization formats was made, see SerializerCallbacks.
This commit temporarily breaks .kjsm decompiler and stub builder
2017-01-30 11:31:01 +03:00
Dmitry Petrov
77ea0614f9
Fix testData in smart completion test
...
(abbreviation is preserved for 'arrayListOf').
2017-01-30 10:51:47 +03:00
Vyacheslav Gerasimov
7bd6314ee1
Implemented building Kotlin Android projects with Jack toolchain enabled
...
#KT-13275 Fixed
Implemented KotlinJillTask for converting kotlin classes to jace format which could be consumed by Jack transform task
2017-01-29 23:39:53 +03:00
Zalim Bashorov
29ac01f2e2
KJS: allow to use packages with names starting with "kotlin" only if the -Xallow-kotlin-package command line option is specified
...
#KT-14668 Fixed
2017-01-29 17:21:01 +03:00
Ilya Gorbunov
7195e26ae2
Rollback Closeable.use implementation as it was in 1.0 in order not to call functions that were introduced in 1.1 from this inline function.
...
#KT-16026
2017-01-29 02:41:12 +03:00
Ilya Gorbunov
36436ae240
Maven build: change module build order.
2017-01-29 01:15:14 +03:00
Simon Ogorodnik
b422b0e24d
KT-14722 completion list isn't filled up for typealias to object
...
#KT-14722 fixed
2017-01-28 21:42:39 +03:00
Stanislav Erokhin
e38ca44595
Create different KotlinBuiltIns for modules with different language feature settings.
...
For sdkModule we create builtIns with default language feature settings.
Also when we create sdkModuleResolverProvider we create builtIns cache.
Then for every other module we get builtIns cached by value isAdditionalBuiltInsFeatureSupported.
2017-01-28 19:13:48 +01:00
Ilya Chernikov
7c0cdf90cf
Move daemon session flag files to daemon discovery dir by default + minor fixes:
...
- Move flag files from the temp dir, because right now JPS cleans temp dir on each build start. Should fix KT-15707, also may affect KT-15562.
- change compiler runner to allow the fix above
- Fix flag file name filtering
- Fix ifAlive handling on the new compile method in the daemon.
2017-01-28 15:36:06 +01:00
Dmitry Jemerov
ddbb476211
Add quickfix to increase language level by editing build.gradle
2017-01-28 13:14:39 +01:00
Dmitry Jemerov
c170c7b98f
Add quickfix to enable coroutines by editing build.gradle
...
#KT-15955 Fixed
2017-01-28 13:14:39 +01:00
Dmitry Jemerov
da6640971f
Import new Gradle coroutines DSL setting into Kotlin facet
2017-01-28 13:14:39 +01:00
Dmitry Jemerov
c7115e7233
Copy language and API version from compiler options to version info
2017-01-28 13:14:39 +01:00
Stanislav Erokhin
6ef96017e8
Mute test and create issue KT-15972.
2017-01-28 03:25:47 +03:00
Stanislav Erokhin
ec2eec33e3
Added hint url for coroutines and multiplatform diagnostics.
2017-01-28 03:25:45 +03:00
Stanislav Erokhin
b033ad1b2b
Add positioning strategy DECLARATION_NAME for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE.
2017-01-28 03:25:44 +03:00
Stanislav Erokhin
2aa2df75ae
Make property java available on KClass<T> where T is type parameter without upper bounds.
2017-01-28 03:25:43 +03:00
Ilya Chernikov
bd47337be2
Using stdlib instead of runtime in the JSR 223 engines
2017-01-27 22:20:45 +01:00
Ilya Chernikov
b8b044c6b0
Reuse script args substitution for replacing bindings in JSR 223 sample engines, fixes KT-15450
2017-01-27 22:20:44 +01:00
Ilya Chernikov
b86ed0c5d9
Comment out failing test part - temporary, see TODO
2017-01-27 22:20:44 +01:00
Ilya Chernikov
0b689a4ecb
PR-1021 review: minor fixes
...
# Conflicts:
# compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplCompilingEvaluator.kt
# compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt
# compiler/cli/src/org/jetbrains/kotlin/cli/jvm/repl/GenericReplCompiler.kt
2017-01-27 22:20:44 +01:00
apatrida
5ad06e1e92
PR-1021: Merge Keplin project scripting code into Kotlin core.
...
Overhauls the scripting layers (GenericRepl and related, and JSR223 and related)
Adds repeating modes (none, only latest eval'd line, or random order)
Also adds better thread-safe IO capturing, default imports, SimpleRepl wrapper, more unit tests
NOTE: the script-util part of the pull request was rejected due to various problems and incompatibilities.
It may be incorporated into the code later.
(originally cherry picked from commit 6f7d517)
2017-01-27 22:20:44 +01:00
Ilya Chernikov
8caf607378
PR-1021 preparations: prepare files to preserve important history
...
- Split GenericRepl.kt into separate files
- Rename Repl.kt
2017-01-27 22:20:44 +01:00
mglukhikh
34dd259900
Changelog 1.1.0: issue 15790 removed
2017-01-27 23:40:25 +03:00
Mikhail Glukhikh
d8a4a32e9f
Do not report UNUSED_PARAMETER in function literal for 1.0 compatibility mode #KT-16010 Fixed
2017-01-27 23:39:08 +03:00
Mikhail Glukhikh
9fdf16e5d7
Quick-fix to add 'suspend' to the receiver of startCoroutine / createCoroutine #KT-15738 Fixed
2017-01-27 23:39:04 +03:00
Mikhail Glukhikh
5f455bbe3a
Do not suggest renaming to underscore in 1.0 compatibility mode #KT-16019 Fixed
2017-01-27 23:39:01 +03:00
Mikhail Glukhikh
67e207acb0
Do not suggest destructuring in function literal in 1.0 compatibility mode #KT-15134 Fixed
2017-01-27 23:38:59 +03:00
Mikhail Glukhikh
3cd4d7cbfe
Operator to function: rem or mod depending on version #KT-15969 Fixed
2017-01-27 23:38:57 +03:00
Roman Elizarov
a1571657f3
Updated test to experimental package
2017-01-27 23:24:13 +03:00
Roman Elizarov
8dc318dd92
Fixed KT-15963 (coroutines machinery should not use equals on results)
2017-01-27 23:24:13 +03:00
Denis Zharkov
c362a9154b
Rename SUSPENDED_MARKER to COROUTINE_SUSPENDED
2017-01-27 23:24:13 +03:00
Denis Zharkov
246946bc18
Move buildSequence/buildIterator to kotlin.coroutines.experimental
2017-01-27 23:24:13 +03:00
Denis Zharkov
35e9f0a89a
Update a test result temporary
...
Currently common stdlib doesn't contain Continuation interface
2017-01-27 23:24:13 +03:00
Denis Zharkov
68fc6fa217
Support non-CoroutineImpl instances in createCoroutine
2017-01-27 23:24:13 +03:00
Denis Zharkov
463af85f78
Minor. Update light-classes test data after coroutine-related changes
2017-01-27 23:24:13 +03:00
Denis Zharkov
1d5144b168
Move coroutine-related diagnostic tests to run them with stdlib
...
It's necessary because all coroutine related declarations (Continuation, etc)
are now in the stdlib
2017-01-27 23:24:13 +03:00
Denis Zharkov
8fa8ba7055
Move coroutine-related runtime parts to kotlin.coroutines.experimental package
...
#KT-15975 Fixed
2017-01-27 23:24:13 +03:00
Denis Zharkov
cb4914ab56
Make 'suspendCoroutineOrReturn' inline-only
2017-01-27 23:24:13 +03:00
Denis Zharkov
0e132b9857
Move all coroutine-related declarations from built-ins to stdlib
...
Also move internal declarations from runtime.jvm module into new package
kotlin.coroutines.jvm.internal in stdlib
The necessity of these declarations being in built-ins is controversial,
but also it will complicate the migration of current coroutine runtime
to a separate jar if we ever need this
2017-01-27 23:24:13 +03:00
Denis Zharkov
b61c152b4e
Minor. Drop a couple of unused properties
2017-01-27 23:24:13 +03:00
Zalim Bashorov
4a72404ac2
Support a larger set of symbols as module name in "MODULE" directive
2017-01-27 23:15:43 +03:00
Zalim Bashorov
66fd566df0
KJS: fix inlining from modules with non valid identifier name
2017-01-27 23:13:53 +03:00
Zalim Bashorov
487419e762
KJS: don't export inline functions with InlineOnly annotation and inline functions with reified generic parameter
2017-01-27 22:47:10 +03:00
Zalim Bashorov
16405d080d
Minor: remove outdated references form jslib_files.xml
2017-01-27 22:47:09 +03:00
Ilya Gorbunov
267703e6b7
Change references to kotlin-stdlib-js.jar in plugin.
...
Change test projects for js project configurator.
#KT-15940
2017-01-27 22:19:49 +03:00
Ilya Gorbunov
0df31f1223
Build kotlin-stdlib-js.jar in ant
...
#KT-15940
2017-01-27 22:19:40 +03:00
Ilya Gorbunov
d0e917e7f9
Fix maven references to stdlib-js in IDEA project
...
#KT-15940
2017-01-27 22:19:35 +03:00
Ilya Gorbunov
078f606cdc
List artifacts required for maven plugin IT in extraArtifacts rather than in dependencies.
...
#KT-15940
2017-01-27 22:19:31 +03:00
Ilya Gorbunov
ea9be01034
Fix maven references to stdlib-js
...
#KT-15940
2017-01-27 22:19:26 +03:00
Ilya Gorbunov
ba1d7104a3
Rename JS standard library artifact #KT-15940
2017-01-27 22:09:46 +03:00
Simon Ogorodnik
2a08e3c679
KT-14767 typealias to annotation class should appear in the completion list
...
#KT-14767 fixed
2017-01-27 21:29:23 +03:00
Alexey Andreev
4c831cab9e
JS: regenerate stdlib files from IDL
2017-01-27 20:54:43 +03:00
Alexey Andreev
72bcdf8869
JS: add enum emulation to IDL2K
2017-01-27 20:54:43 +03:00
Alexey Andreev
04e9405082
JS: regenerate stdlib files from IDL
2017-01-27 20:54:42 +03:00
Alexey Andreev
68d14de000
JS: add support of Promise<T> in IDL2K
2017-01-27 20:54:42 +03:00
Alexey Andreev
563a3a25cb
JS: add Promise class
2017-01-27 20:54:41 +03:00
Mikhail Glukhikh
f5d5079b0d
1.1.0 change log update
2017-01-27 20:19:13 +03:00
Alexey Sedunov
be3e33051e
Kotlin Facet: Fix Gradle import without "module per source set" option
...
#KT-15812 Fixed
2017-01-27 20:05:01 +03:00
Alexey Sedunov
34b0e175ca
Configuration: Prohibit api-version > language-version in Facet and Project Settings
...
#KT-16015 Fixed
2017-01-27 20:05:00 +03:00
Alexey Tsvetkov
1420bd1b33
Add Kotlin Gradle DSL to configure coroutines from build.gradle
2017-01-27 19:04:49 +03:00
Mikhail Glukhikh
08caf0a011
Object literal to lambda: handle last comment correctly #KT-15670 Fixed
2017-01-27 18:15:56 +03:00
Mikhail Glukhikh
c0f5cafbd8
Set type reference: destructuring support #KT-14994 Fixed
2017-01-27 18:15:54 +03:00
Mikhail Glukhikh
f4513e9c70
Remove explicit lambda parameter types: destructuring support #KT-15162 Fixed
...
Also #KT-14993 Fixed
2017-01-27 18:15:52 +03:00
Nikolay Krasko
2c17773715
Minor: better name
2017-01-27 18:00:14 +03:00
Nikolay Krasko
370e7cd9f5
Stop considering injected files as Kotlin source roots (KT-15032)
...
We should have a special facade for them as descriptors are not
present in ordinal project facade.
Caused by change in idea 171 (b3527d9a20 )
#KT-15032 Fixed
2017-01-27 18:00:14 +03:00
Dmitry Jemerov
1361d5e915
EA-85853 - (KT-13415) AIOOBE: LightClassUtilsKt.toPsiTypeParameters
2017-01-27 14:48:05 +01:00
Dmitry Jemerov
59e2645293
EA-82902 - IOOBE: KtLightAnnotation$LightExpressionValue.unwrapArray
2017-01-27 14:48:05 +01:00
Kirill Rakhman
956094e062
Add Merge ifs intention ( #975 )
...
Fixes #KT-9912
2017-01-27 14:20:11 +01:00
Mikhael Bogdanov
456037a30d
Generate proper annotaions on parameters for @JvmOverloads;
...
Fix for KT-15743: Overloaded Kotlin extensions annotates wrong parameters in java
#KT-15743 Fixed
2017-01-27 14:09:13 +01:00
Mikhael Bogdanov
ab464ea86e
Fix for KT-15726: Kotlin can't compile nested try-catch with return
...
#KT-15726 Fixed
2017-01-27 14:09:13 +01:00
Dmitry Jemerov
2c1c3d1f31
Workaround for compilation issue: don't use a Java shim to access token name, use toString() instead (for all relevant tokens, it will return the name, and for all others, the return value won't match the Java keyword filter regexp)
2017-01-27 13:32:20 +01:00
Dmitry Petrov
de14d4abc8
KT-15748 Type alias constructor return type should have a corresponding abbreviation
2017-01-27 15:16:04 +03:00
Ilya Gorbunov
dbaf31effe
sourceDirs exclude the original test dir, so add it explicitly.
2017-01-27 14:53:33 +03:00
Ilya Gorbunov
01f53d0173
Return NaN as an average of an empty collection.
...
#KT-15399 Fixed
2017-01-27 14:53:33 +03:00
Dmitry Jemerov
6704ba05de
Don't try to get siblings of PsiDirectory either (EA-94811 - assert: FileManagerImpl.findDirectory)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
731aeac04f
Delete quick fix which was needed to migrate users to the version of Kotlin which was the latest in 2014 (EA-93982 - assert: PsiModificationTrackerImpl.fireEvent)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
6cbb2a4491
Replace incorrect assertion with explicit check (EA-93946 - assert: UnusedSymbolInspection.hasNonTrivialUsages)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
7236aa45f2
Fix IAE when rendering unknown type (EA-89031 - IAE: SmartTypeRenderer.render)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
2342aeef49
Don't try to resolve a class with no containing file (such as LightBRClass) to descriptor (EA-91890 - (AS only, no containing file, from Java light classes) LET: GetModuleInfoKt$getModuleInfo$.invoke)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
1337a5216c
Don't try to get text for invalid file (EA-86393 - PIEAE: PsiFileImpl.getText)
2017-01-27 12:47:41 +01:00
Dmitry Jemerov
b987e37e82
Diagnostics for EA-86712
2017-01-27 12:47:41 +01:00
Ilya Gorbunov
661ff81e67
Specify names for parameters of functional types with two or more parameters to ease lambda completion.
...
#KT-13826
2017-01-27 14:46:29 +03:00
Kirill Rakhman
96d0f91afc
Implement Smart Enter handler for class body ( #1022 )
...
Fixes #KT-9011
2017-01-27 12:35:33 +01:00
Dmitry Jemerov
e6a7808d8e
Fix ConfigureKotlinUtilTest
2017-01-27 12:27:39 +01:00
Mikhail Zarechenskiy
0c6a860a22
ReplaceWith annotation resolver: use module from resolution facade to build imports scope
...
#KT-15873 Fixed
Using module from original element may lead to exceptions as it could be
<built-ins module> (after deprecation of `mod` operator)
2017-01-27 14:13:13 +03:00
Dmitry Petrov
e05f2eaff6
KT-15017 Throwing exception in the end of inline suspend-functions lead to internal compiler error
...
Suspend function call with a reachable (alive) begin marker and unreachable (dead) end marker
is an exit point for the corresponding coroutine.
It isn't a suspension point, and doesn't introduce a new state in the coroutine FSM.
2017-01-27 10:43:00 +03:00
Ilya Gorbunov
3be1174824
Replace @native with external in tests
2017-01-27 01:29:15 +03:00
Ilya Gorbunov
20f175d091
Soften back deprecation level for nativeGetter/Setter/Invoke annotations.
2017-01-27 00:48:46 +03:00
Simon Ogorodnik
4202abac63
Fix test
2017-01-26 23:19:42 +03:00
Ilya Chernikov
4bb5e978a7
Implement SamWithReceiverAnnotations annotation and it's handling (KT-15848)
...
TODO: tests
2017-01-26 20:53:24 +01:00
Simon Ogorodnik
f1c4230a68
KT-14680 import statement to typealias reported as unused when using only TA constructor
...
#KT-14680 fixed
2017-01-26 21:18:20 +03:00
Dmitry Jemerov
46bb636cea
Fix ConfigureProjectTestGenerated
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
c4032908c0
Don't show "Kotlin not configured" notifications while Gradle sync is running
...
#KT-15279 Fixed
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
ac35b182b5
KotlinConfigurationCheckerComponent: J2K
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
c6a20d39b4
KotlinConfigurationCheckerComponent: rename to .kt
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
c7ea4eead7
Add Gradle JavaScript configurator
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
c6251fdad7
Add JS variant of Gradle framework support provider
...
#KT-13632 Fixed
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
e76cd15e5b
Update different stdlib/gradle inspection to handle kotlin-stdlib-jre*
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
163cef6457
Configuring project with Maven adds kotlin-stdlib-jre7 or kotlin-stdlib-jre8 if the selected JDK is of a high enough version
...
#KT-15712 Fixed
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
7eea8f3849
Configuring project with Gradle adds kotlin-stdlib-jre7 or kotlin-stdlib-jre8 if the selected JDK is of a high enough version
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
acc19f2ab6
Don't add 'kotlin' source root to build.gradle by default
...
#KT-14830 Fixed
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
85a74f4cca
Detect version 1.1.0-beta as 1.1 prerelease
2017-01-26 19:08:57 +01:00
Dmitry Jemerov
56bbb8ec78
Disable incompletely implemented Inline Function refactoring
2017-01-26 19:05:47 +01:00
Dmitry Jemerov
68bd5bd323
Fix project leak due to not disposed dialog
2017-01-26 18:55:17 +01:00
Dmitry Jemerov
d4af75bc50
Add write action which is required in 171 branch
2017-01-26 18:26:14 +01:00
Yan Zhulanow
bb0b70d27b
Kapt: Fix extending configurations in Gradle, create "main" configuration if it does not exist yet. Also fix checking kapt configuration dependencies, use allDependencies instead (KT-15814)
2017-01-27 02:01:04 +09:00
Yan Zhulanow
3b4a8e0f33
Kapt3: Write qualified name of classes on error type conversion, handle declaration-site variance properly.
2017-01-27 01:20:01 +09:00
Yan Zhulanow
72bbf9697b
Kapt3: As javac now reads stubs from Java files, not from AST, we should provide the valid names for all identifiers (at least names should not clash with Java keywords).
...
Rename identifiers if it clashes with Java keywords. (KT-15838)
2017-01-27 01:20:01 +09:00
Yan Zhulanow
e28b4dfbc7
Kapt3: Do not check type for star projection, it causes the infinite recursion. Also limit recursion depth to 10. (KT-15841)
2017-01-27 01:20:00 +09:00
Dmitry Jemerov
48a66c9d41
Generate Markdown documentation for Gradle options
2017-01-26 17:03:30 +01:00
Alexey Sedunov
deb9258994
Misc: Reverted 1fb90ac0fd 'Copy compiler arguments from iml even if "Use project settings" checkbox is checked' as it's rendered obsolete due to "Use project settings" being turned off by default in Gradle/Maven projects
2017-01-26 18:06:19 +03:00
Alexey Sedunov
6e8d0b520e
Kotlin Facet: Import Gradle properties defined in gradle.properties file
2017-01-26 18:06:17 +03:00
Alexey Sedunov
f8349da608
Kotlin Facet: Import compiler arguments from Maven project model
2017-01-26 18:06:16 +03:00
Alexey Sedunov
74bfaa4ffe
Quick Fixes: Change API level as well as language level in "Enable unsupported feature fix"
...
#KT-15918 Fixed
2017-01-26 18:06:15 +03:00
Alexey Sedunov
591910a216
Kotlin Facet: Import compiler arguments from Gradle project
...
#KT-15819 Fixed
#KT-15929 Fixed
2017-01-26 18:06:14 +03:00
Alexey Sedunov
dafb6f8b3c
Kotlin Gradle Plugin: Provide serialized list of compiler arguments in compilation tasks
2017-01-26 18:06:13 +03:00
Mikhail Glukhikh
bb54f23472
Change log updated for 1.1
2017-01-26 16:45:10 +03:00
Mikhael Bogdanov
25d75bcd8b
Delegates to java defaults methods in compatibility mode
2017-01-26 14:32:33 +01:00
Mikhael Bogdanov
0006a04b01
Report warning on hided override by delegation when compile to 1.0 version
2017-01-26 14:32:33 +01:00
Alexey Tsvetkov
09a8a999c8
Correct construction of UnicastRemoteObject
...
#KT-15837 fixed
2017-01-26 16:07:44 +03:00
Alexey Tsvetkov
470a7706aa
Fix build
2017-01-26 15:49:40 +03:00
Mikhail Zarechenskiy
462aed35d3
Don't exclude callable references with type parameters from completion
2017-01-26 14:48:37 +03:00
Alexey Tsvetkov
e04d18f3de
Minor: make functions public to avoid error on teamcity
2017-01-26 14:23:21 +03:00
Alexey Tsvetkov
f46217129b
EA-95293: do not report OUTPUT messages to message collector if outputs collector is specified
2017-01-26 13:38:52 +03:00
Alexey Tsvetkov
b9dbe69232
Rebuild all kotlin files when EAP flag is changed
2017-01-26 13:38:52 +03:00
Alexey Tsvetkov
4a63e47aa0
Save JvmBuildMetaInfo to file after build
2017-01-26 13:38:52 +03:00
Alexey Tsvetkov
6dbc4ff303
Introduce JvmBuildMetaInfo to hold last build settings
2017-01-26 13:38:52 +03:00
Simon Ogorodnik
82a70283b5
KT-15789 Kotlin plugin incorrectly converts for-loops from Java to Kotlin
...
#KT-15789 fixed
2017-01-26 13:33:06 +03:00
Simon Ogorodnik
bf3d4471cd
KT-14710 Sample references aren't resolved in IDE
...
#KT-14710 fixed
2017-01-26 13:27:57 +03:00
Simon Ogorodnik
cd73d17bd4
KT-15311 "Add Import" intention generates incorrect code
...
#KT-15311 fixed
2017-01-26 13:24:41 +03:00
Dmitry Petrov
1613ad0505
KT-15898 Cannot use type alias to qualify enum entry
...
Type alias static scope includes enum entries for underlying enum class.
2017-01-26 10:23:56 +03:00
Dmitry Petrov
a974ed1049
Support custom accessors for top-level properties in scripts.
2017-01-26 10:12:13 +03:00
Dmitry Petrov
ab2448307e
Functions imported from objects should be properly mapped to "real" suspend function descriptors.
2017-01-26 09:39:53 +03:00
Dmitry Petrov
9d4047f5e4
Calls for suspend functions imported from object should be checked in CoroutineSuspendCallChecker.
2017-01-26 09:39:53 +03:00
Dmitry Petrov
500667ff45
Function and property descriptors imported from object should keep track of the original imported descriptor,
...
otherwise they break an assumption that 'getOriginal()' chain would eventually converge on some callable descriptor.
2017-01-26 09:39:53 +03:00
Ilya Gorbunov
b1b295f00f
Fix variance of Map.minus in expected diagnostics output.
2017-01-26 07:27:00 +03:00
Ilya Gorbunov
c00d684ece
Fix deprecared API usages in test
2017-01-26 04:31:20 +03:00
Mikhail Zarechenskiy
b0c3c7463b
Fix internal compiler error about arithmetic exception
...
#KT-8264 Fixed
2017-01-26 03:39:50 +03:00
Kirill Rakhman
ca86dbee72
Android: Add intention to generate View constructor convention
...
Fixes #KT-15150
2017-01-26 00:56:33 +03:00
Kirill Rakhman
f74c0950d2
use property syntax
2017-01-26 00:56:33 +03:00
Ilya Gorbunov
384b6410f2
New minus overloads appears in quickfix test data
2017-01-25 22:08:48 +03:00
Ilya Gorbunov
2e0209395a
Restore Map.minus(key/keys) and Map.minusAssign(key/keys) operators.
...
#KT-13353
2017-01-25 22:08:46 +03:00
Ilya Gorbunov
288e0b3c7e
Allow to use Regex matches CharSequence and CharSequence matches Regex in infix form
...
#KT-14279
2017-01-25 21:31:42 +03:00
Ilya Gorbunov
387564d140
JS: Rewrite RegExpMatch without @nativeGetter
2017-01-25 21:29:53 +03:00
Ilya Gorbunov
03019dc638
Deprecate qunit (with ERROR) and jquery (with WARNING)
2017-01-25 21:29:53 +03:00
Ilya Gorbunov
70f3cee9ff
Harden deprecations to prepare for cleanup.
2017-01-25 21:29:53 +03:00
Ilya Gorbunov
1ccc655cdc
Harden deprecation level on remaining API in java.util in kotlin-stdlib-js
2017-01-25 21:29:53 +03:00
Simon Ogorodnik
3948c1e007
KT-15153 Support typeAlias extensions in completion and add import
...
#KT-15153 fixed
2017-01-25 20:47:48 +03:00
Dmitry Jemerov
9bc45a9c91
Correctly dispose KotlinCoreEnvironment after use
2017-01-25 17:30:10 +01:00
Alexey Andreev
1c8478e46b
JS: fix translation of enum entries without parentheses that call secondary constructors, constructors with default parameters and varargs. See KT-15900, KT-14097
2017-01-25 18:09:23 +03:00
Alexey Andreev
0f87320f9e
JS: regenerate test data
2017-01-25 18:09:23 +03:00
Alexey Andreev
31c758994d
JS: remove diagnostic about callable reference to built-in
2017-01-25 18:09:22 +03:00
Alexey Andreev
ad4fb44827
JS: report about using of external interfaces in class literals
2017-01-25 18:09:22 +03:00
Alexey Andreev
deaac83e70
JS: report about wrong module usage in class literals. See KT-15253
2017-01-25 18:09:21 +03:00
Alexey Andreev
f52eebd302
Add extension point for back-ends to perform platform-specific checks of class literals
2017-01-25 18:09:21 +03:00
Alexey Andreev
9000d54d8a
JS: when checking calls to JsModule declarations, check arguments passed to reified type parameters. See KT-15253
2017-01-25 18:09:20 +03:00
Mikhael Bogdanov
4c7a07bed6
Optimize defaults format: avoid reduntant stack normalization operations
2017-01-25 15:56:56 +01:00
Mikhael Bogdanov
fc4be17623
Fix for KT-14966: Regression: VerifyError on access super implementation from delegate
...
#KT-14966 Fixed
2017-01-25 15:56:55 +01:00
Mikhael Bogdanov
11578c602e
Added inline tests for jvm 8 target
2017-01-25 15:56:55 +01:00
Simon Ogorodnik
32f1ce7551
Added "kotlin.reflect.jvm.internal" to excluded from completion and auto imports list
2017-01-25 17:45:59 +03:00
Simon Ogorodnik
e220a20eed
KT-15796 Import of class referenced only in KDoc not preserved after copy-paste
...
#KT-15796 fixed
2017-01-25 17:41:26 +03:00
Simon Ogorodnik
4ca10c61fd
KT-11308 Hide kotlin.jvm.internal package contents from completion and auto-import
...
#KT-11308 fixed
2017-01-25 17:39:36 +03:00
Simon Ogorodnik
5c52bdc684
KT-14859 "Parameter Info" doesn't work properly in one case
...
#KT-14859 fixed
2017-01-25 17:32:57 +03:00
Ilya Chernikov
e3338c1e31
Fix testdata
2017-01-25 15:29:15 +01:00
Ilya Chernikov
ec7e8873f4
Update daemon client with wrappers for basic compiler API
...
Other changes to extract results for compiler, tests.
2017-01-25 15:29:15 +01:00
Nikolay Krasko
afd0655776
Fix after review
2017-01-25 17:19:53 +03:00
Nikolay Krasko
c525a59df8
Make breakpoints work in suspend functions
2017-01-25 16:46:35 +03:00
Nikolay Krasko
649ec9a73d
Check that breakpoints work in suspend function without suspension points
2017-01-25 16:46:33 +03:00
Nikolay Krasko
1a3d333da1
Add diagnostic for null error in KotlinClsStubBuilder
2017-01-25 16:46:32 +03:00
Mikhail Glukhikh
d13978e64f
Change log 1.1-RC (preliminary)
2017-01-25 15:27:19 +03:00
Alexey Sedunov
983ad55357
Code Insight: Preserve identifier quotes in "Generate equals()/hashCode()/toString()" actions
...
#KT-15883 Fixed
2017-01-25 14:24:51 +03:00
Alexey Sedunov
7382d7c7d6
Extract Function: Add 'suspend' modifier if extracted function contains suspend-calls
...
#KT-14704 Fixed
2017-01-25 14:24:49 +03:00
Alexey Sedunov
41f5a3e864
Support "Change parameter type" for parameters with type-mismatched default value
...
#KT-15627 Fixed
2017-01-25 14:24:48 +03:00
Denis Zharkov
ba0f8b908f
Fix Kotlin bytecode toolwindow showing wrong code for suspend functions
...
Use binding context from the full resolve, because otherwise control-flow
analysis is not being run, that is very important for suspend functions
(tail-call optimizations)
#KT-15827 Fixed
2017-01-25 14:22:40 +03:00
Alexey Andreev
e15b2b0dd0
Fix compilation of project
2017-01-25 14:15:23 +03:00
Mikhail Glukhikh
426619e47c
Change log from 1.1-Beta added to master branch
2017-01-25 14:02:05 +03:00
Denis Zharkov
9ce3880ac6
Support getValue/setValue/provideDelegate suspend functions in JVM backend
...
- Determine if there are non-tail calls to getValue/setValue simply
by existance of such a property
(it might be too strict, but implementing more granular check may be rather hard)
- Change in ExpressionCodegen is relevant for provideDelegate,
that in case of local variables uses OnStack as StackValue
(see the comment near these changes)
#KT-15933 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov
9ca9a988a6
Fix accessor generation for suspend functions
...
1. JVM view of suspend accessors must be also an instance of AccessorForFunctionDescriptor,
thus `createSubstitutedCopy` should be correctly overidden.
2. accessibleFunctionDescriptor should unwap the initial suspend descriptor,
for the same reasons as for type aliases constructors and etc:
these descriptors are used as keys of the map of accessors, so
to avoid duplication for suspend view and initial suspend descriptor,
we always use the latter one as a key.
#KT-15907 Fixed
#KT-15935 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov
0693bd6b62
Fix codegen issue on suspend functions with receiver
...
When the extension receiver of a named suspend function was marked as used
from the inner lambda, codegen used to throw a "Don't know how to generate outer expression for class" exception.
It may seem quite tricky, but currently for suspend lambda body
its extension receiver is treated as it's defined inside the relevant "doResume"
(there is an actual bytecode part that fills the relevant local variable)
The problem was that inside ExpressionCodegen for "doResume" of named
suspend function we couldn't determine that original function has
an extension receiver.
#KT-15821 Fixed
#KT-15820 Fixed
2017-01-25 13:54:01 +03:00
Denis Zharkov
131c008ba3
Minor. Refine naming for original suspend lambda descriptors
...
Also inline some methods with single usage
2017-01-25 13:54:01 +03:00
Denis Zharkov
02b40326cc
Fix incorrect coroutines codegen behavior
...
If all the suspension calls in a suspend function were "hidden"
under the for-convention (iterator/next/hasNext) calls,
control-flow didn't find them, thus supposing that there is no
suspension points and there is no need to generate a coroutine state machine
The solution is to add relevant calls to CFG
#KT-15824 Fixed
2017-01-25 13:54:01 +03:00
Alexey Andreev
8cbea903f4
JS: add checker that checks if JsQualifier has wrong format
2017-01-25 13:52:19 +03:00
Alexey Andreev
ba65e58fdd
JS: add checker to detect non-external declarations in files marked by JsModule or JsQualifier annotation
2017-01-25 13:52:19 +03:00
Alexey Andreev
cc67f6c9f7
JS: add support of JsQualifier annotation. See KT-15905
2017-01-25 13:52:18 +03:00
Alexey Andreev
6624736ccf
JS: fix is check on Throwable instances
2017-01-25 13:52:18 +03:00
Alexey Andreev
aef7b83932
JS: fix toString in case of kotlin.Throwable
2017-01-25 13:52:17 +03:00
Alexey Andreev
6b2f1ba4e4
JS: move couple of helper functions from TranslationUtils to JsDescriptorUtils
2017-01-25 13:52:17 +03:00
Alexey Andreev
115f6ced87
JS: fix support of throwable constructors without message and/or cause parameters
2017-01-25 13:52:16 +03:00
Alexey Andreev
6f4d8decc7
JS: add support of custom exceptions inherited from kotlin.Throwable that call super constructor from secondary constructor
2017-01-25 13:52:16 +03:00
Alexey Andreev
f34093db9f
JS: make kotlin.Throwable = Error. See KT-15312
2017-01-25 13:52:13 +03:00
Alexey Andreev
c565697e77
JS: refactor FunctionIntrinsic
2017-01-25 13:51:54 +03:00
Alexey Andreev
0a9c536c01
JS: make defensive copy of argument list in JsInvocation and JsNew constructor
2017-01-25 13:51:53 +03:00
Alexey Andreev
51e5b5aac7
JS: allow to inherit external class from kotlin.Throwable. See KT-15336
2017-01-25 13:51:53 +03:00
Anton Bannykh
847ec9e550
JS: fixed subSequence in CharSequence descendants (KT-14035) + added support for function intrics in delegation
2017-01-25 12:59:53 +03:00
Vyacheslav Gerasimov
4fe040eeb9
Fixed several bugs in Android lint ApiDetector (KT-15002, KT-12024, KT-14737, KT-14825, KT-12023, KT-15018)
...
Merged IntelliJApiDetector to ApiDetector
#KT-15002 Fixed
#KT-12024 Fixed
#KT-14737 Fixed
#KT-14825 Fixed
#KT-12023 Fixed
#KT-15018 Fixed
(cherry picked from commit e830e8b55f )
2017-01-25 10:50:36 +03:00
Vyacheslav Gerasimov
d0f1b81bfa
Fixed bugs in Kotlin Android Lint CleanupDetector
...
#KT-14780 Fixed
#KT-14677 Fixed
(cherry picked from commit f591b4958e )
2017-01-25 10:50:35 +03:00
Mikhail Zarechenskiy
68b223211c
Fix bogus integer overflow warning for 'mod' operator
...
#KT-15875 Fixed
2017-01-25 02:24:28 +03:00
Ilya Gorbunov
f9e552e3c2
Build kotlin-stdlib in addition to kotlin-runtime in ant build.
2017-01-24 22:38:05 +03:00
Ilya Gorbunov
a2bd3bfc7b
List artifacts explicitly for test.
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
43003cffbb
Make kotlin-runtime dependency optional for kotlin script executor for maven, but still add if it's found.
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
070f9d9d17
Binary compatibility validation: dump public API of merged stdlib to another file
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
4da4de1104
Replace kotlin-runtime with kotlin-stdlib, where it was used as a dependency.
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
e025050dd9
Replace kotlin-runtime with kotlin-stdlib in kotlin-script-util and its tests
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
19dd7ee09e
Build kotlin-test after kotlin-stdlib, build kotlin-test sources with kotlin-stdlib tests again
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
a0cfd8d35e
Change builtins module name to kotlin-runtime to match that of maven built artifact.
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
7ccaa77c5b
Shade kotlin-runtime into kotlin-stdlib
2017-01-24 22:04:46 +03:00
Ilya Gorbunov
8e9bbe276c
JS: Make Date.getTime return Double instead of Int.
...
#KT-4141 Fixed
2017-01-24 21:55:48 +03:00
Alexey Andreev
46d251df1b
JS: deprecate noImpl
2017-01-24 20:18:42 +03:00
Alexey Andreev
5243b451f7
JS: replace noImpl with definedExternally in hand-written stdlib
2017-01-24 20:18:42 +03:00
Alexey Andreev
c05870b461
JS: regenerate stdlib
2017-01-24 20:15:22 +03:00
Alexey Andreev
a9069d8973
JS: replace noImpl with definedExternally in stdlib generator
2017-01-24 20:15:21 +03:00
Alexey Andreev
c9a190b405
JS: regenerate stdlib sources from IDL
2017-01-24 20:15:19 +03:00
Alexey Andreev
e3da9066c4
JS: replace noImpl with definedExternally in IDL2K
2017-01-24 20:14:32 +03:00
Alexey Andreev
26abc19aa6
JS: replace noImpl with definedExternally in diagnostics and their messages
2017-01-24 20:14:32 +03:00
Alexey Andreev
aedf8bd232
JS: replace noImpl with definedExternally in tests
2017-01-24 20:14:31 +03:00
Alexey Andreev
71a5d8a4ee
JS: add definedExternally property as a replacement for noImpl, support it in checkers. See KT-15144
2017-01-24 20:14:31 +03:00
Alexey Andreev
26a3ac5a9b
JS: fix translation of delegated local variables in coroutines. See KT-15834
2017-01-24 20:13:53 +03:00
Alexey Andreev
8040d781b4
JS: fix translation of suspend lambda when it's not passed to another function
2017-01-24 20:13:53 +03:00
Alexey Andreev
1a5e0e4b06
JS: improve performance of suspend function calling suspen function when no suspension ever occur.
2017-01-24 20:12:12 +03:00
Alexey Andreev
bf55744e64
JS: fix translation of safe calls if suspend functions. See KT-15892
2017-01-24 20:11:55 +03:00
Alexey Andreev
2adaaf5e9f
JS: recognize LANGUAGE_VERSION directive in testData
2017-01-24 20:11:30 +03:00
Alexey Andreev
9aeba1d5cf
JS: fix names in stdlib and tests WRT to new mangling algorithm
2017-01-24 20:11:29 +03:00
Alexey Andreev
2ae46ceb4b
JS: change how signature for mangling is generated, taking into account more information. See KT-15285
2017-01-24 20:10:17 +03:00
Alexey Andreev
119bf52adf
JS: fix translation of callable reference to property of outer class with private setter
2017-01-24 20:09:32 +03:00
Alexey Andreev
d35ddc1017
JS: unmute tests that now pass
2017-01-24 20:09:32 +03:00
Alexey Andreev
d261f8eddf
Move generation of fake call to common CodegenUtil to share between JS and JVM
2017-01-24 20:09:31 +03:00
Alexey Andreev
c100826629
JS: reduce number of functions to create callable references
2017-01-24 20:09:31 +03:00
Alexey Andreev
dcb8b7b92c
JS: fix inlining of callable references
2017-01-24 20:09:30 +03:00
Alexey Andreev
7a0f75f164
JS: refactor generation of callable references to functions
2017-01-24 20:09:29 +03:00
Alexey Andreev
1b0648a926
JS: refactor generation of property callable references
2017-01-24 20:09:29 +03:00
Sergey Mashkov
66de78e82a
kotlin-test: migrate multiplatform integration test to use common test module
2017-01-24 19:39:05 +03:00
Sergey Mashkov
e500eba59f
Maven: test js compiler test scope dependencies
2017-01-24 19:39:05 +03:00
Ilya Gorbunov
5a28e8cc20
Install kotlin-test artifacts to local repo when testing maven plugin
2017-01-24 19:39:05 +03:00
Ilya Gorbunov
609405b8d4
Add kotlin-test-js dependency where required.
2017-01-24 19:39:05 +03:00
Ilya Gorbunov
7d9554b6b8
Remove sources.xml and maven-assembly-plugin execution.
2017-01-24 19:39:05 +03:00
Ilya Gorbunov
d3ed55549a
Make dependency on kotlin-test-common optional, i.e. non-transitive.
2017-01-24 19:39:05 +03:00
Ilya Gorbunov
9b9852cdc9
kotlin-test: rename shared module to common.
...
Do not use shared kotlin-test while building js stdlib.
2017-01-24 19:39:05 +03:00
Dmitry Petrov
5ef27f7ad3
KT-15010 Missing error on an usage non-constant property in annotation default argument
2017-01-24 17:52:52 +03:00
Mikhael Bogdanov
df8394bcd2
Fix for KT-14597: "When" over smartcasted enum is broken and breaks all other "when"
...
#KT-14597 Fixed
2017-01-24 15:17:47 +01:00
Dmitry Petrov
ee9a174c1f
KT-7897 Do not require to call enum constructor for each entry if all parameters have default values
...
Do not report an error on enum entry without initializer if all parameters have default values
(error is still reported if there is no such constructor, or if the constructor call is ambiguous).
Record resolved call on KtEnumEntry.
NB is the enum entry has a corresponding subclass, we still have to generate the "default" constructor call,
because FE doesn't know about the platform-specific representation of that class and its constructors.
See also KT-14097, KT-15900
2017-01-24 16:59:47 +03:00
Nikolay Krasko
d13c34200b
Remove method deprecated in 171 and explicitly set mainClass before calling toCommandLine()
2017-01-24 16:43:22 +03:00
Mikhail Glukhikh
fb913bc071
Operator to function: mod --> rem, modAssign --> remAssign #KT-15874 Fixed
2017-01-24 15:19:36 +03:00
Mikhail Glukhikh
bfb31a465f
Quick-fix to add 'suspend' to the containing function #KT-15800 Fixed
2017-01-24 15:17:55 +03:00
mglukhikh
96cddb6b7b
False positive in "Remove redundant let" fixed #KT-15884 Fixed
2017-01-24 15:17:48 +03:00
mglukhikh
be75ef919e
Change visibility modifier: now works on no-modifier type aliases #KT-15066 Fixed
2017-01-24 15:17:41 +03:00
Mikhail Glukhikh
60fcdeb5ee
Test added: suppress on function reference #KT-15839 Obsolete
2017-01-24 14:59:53 +03:00
shiraji
d9ec8a92f2
KT-15553 Support compile constant for "Copy concatenation text to clipboard"
...
#KT-15553 Fixed
2017-01-24 14:33:52 +03:00
Kirill Rakhman
909007d984
Add inspection for private primary constructors in data classes
...
Fixes #KT-15709
2017-01-24 14:08:05 +03:00
mglukhikh
f64345634b
WHEN_ENUM_CAN_BE_NULL_IN_JAVA is no more reported after smart cast to not-null #KT-15201 Fixed
2017-01-24 13:51:15 +03:00
mglukhikh
b53ebd115b
Pattern matching: work-around for smart cast target type instability #KT-14705 Fixed
2017-01-24 13:51:14 +03:00
Alexey Andreev
bc0550d7b7
JS: don't report about inline modifier on inline extension fun to external class
2017-01-24 12:27:02 +03:00
Alexey Andreev
0ca2ae7279
JS: regenerate Kotlin JS bindings from IDL files with new rules
2017-01-24 12:27:01 +03:00
Alexey Andreev
36d2a91057
JS: prevent IDL2K from generating @nativeGetter/@nativeSetter annotations, generate inline extension function with asDynamic() instead
2017-01-24 12:27:01 +03:00
Alexey Andreev
c1838d423b
JS: transfer all empty statement simplifications RedundantLabelRemoval to EmptyStatementElimination, so that empty statements can be eliminated everywhere, not in labeled blocks only.
2017-01-24 12:26:21 +03:00
Alexey Andreev
ac0df8eef9
JS: when recursive local function does not capture variables, give it name from top-level scope. See KT-15770
2017-01-24 12:25:23 +03:00
Alexander Udalov
70d2296e61
Update public API dump after adding KPropertyN.getDelegate
2017-01-24 10:59:44 +03:00
Ilya Gorbunov
a603de8bd7
Ensure string to number conversion fails on empty and blank inputs.
...
#KT-4497
2017-01-24 07:22:58 +03:00
Ilya Gorbunov
4018d10bf6
Deprecate parseInt and parseFloat. Replace deprecated usages in tests.
...
#KT-4497
2017-01-24 07:22:51 +03:00
Ilya Gorbunov
4e5e14c9a0
Provide string-to-number conversions in JS and common stdlib.
...
Relates to #KT-8286
#KT-4497 Fixed
2017-01-24 07:20:57 +03:00
Mikhail Zarechenskiy
2cac6a9e7d
Improve inference on generics for callable references
...
#KT-10711 Fixed
#KT-12802 Fixed
#KT-12964 Fixed
#KT-15439 Fixed
Analyze callable references in `dependent` mode, then complete them with
respect to expected types
2017-01-24 02:15:26 +03:00
Anton Bannykh
07bb7ef4d3
JS: extension lambdas translated same as local lambdas (KT-13312 fixed)
2017-01-23 20:09:36 +03:00
Dmitry Petrov
5021be351d
KT-15878 Extension shadowed by member shouldn't be reported for infix/operator extensions when member is non-infix/operator
2017-01-23 16:46:43 +03:00
Sergey Mashkov
98075c17c9
kotlin-test: extract from JS library, convert to multiplatform
2017-01-23 15:43:02 +03:00
Alexey Sedunov
c264de5795
Project Settings: Expose API version setting in Kotlin compiler configuration UI
2017-01-23 15:16:14 +03:00
Alexey Sedunov
57c27299dd
JPS: Use facet configuration to determine if module should be compiled to JS
2017-01-23 15:16:12 +03:00
Alexey Sedunov
7b12a66b21
Kotlin Facet: Warn about libraries configured for non-current platform
...
#KT-15628 Fixed
2017-01-23 15:16:11 +03:00
Alexey Sedunov
597068a704
Kotlin Facet: Import API version from Maven
...
#KT-15772 Fixed
2017-01-23 15:16:10 +03:00
Alexey Sedunov
fc9b001ccd
Kotlin Facet: Use project settings by default
...
#KT-15624 Fixed
2017-01-23 15:16:09 +03:00
Alexey Sedunov
b35eba0621
Kotlin Facet: Annotate CompilerSettings properties with @JvmField to make them available for copyBean()
...
#KT-15621 Fixed
#KT-15623 Fixed
2017-01-23 15:16:08 +03:00
Roman Elizarov
07dc937e2e
typo if start/createCoroutine docs fixed
2017-01-23 14:25:04 +03:00
Zalim Bashorov
76a20fc104
Minor: fix copyright in polyfills.js
2017-01-23 14:14:16 +03:00
Zalim Bashorov
4f36e9af08
Minor: remove extra comment block with copyright
2017-01-23 14:14:15 +03:00
Zalim Bashorov
cd04e794ee
KJS: class MathClass -> object Math
2017-01-23 14:14:13 +03:00
Zalim Bashorov
cb210b6c78
KJS: fix stub consistency test which was broken after JsonClass was renamed and transformed to object
...
`kotlin.js.Console` is used instead of `kotlin.js.JSON` to avoid problems on case-sensitive filesystems since right now we also have `kotlin.js.Json` (will be removed later)
2017-01-23 14:13:58 +03:00
Mikhail Glukhikh
b7fb45f36e
DFA: only stable values or qualified with stable receiver can be bound in x = y #KT-15792 Fixed
2017-01-23 13:38:24 +03:00
Mikhail Glukhikh
905e67e713
Data flow information: take language version into account while processing safe calls and bound values #KT-14350 Fixed
2017-01-23 13:38:24 +03:00
Alexander Udalov
ebd577e52a
Introduce KProperty{1,2}.getExtensionDelegate
...
These two functions are supposed to fix an inconvenience in the design of
KProperty{1,2}.getDelegate for extension properties, where you have to pass an
instance of the extension receiver which is going to be completely ignored
#KT-8384 Fixed
2017-01-23 12:25:36 +03:00
Alexander Udalov
78f2515e95
Introduce KProperty{0,1,2}.getDelegate
...
#KT-8384 In Progress
2017-01-23 12:25:35 +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
Alexander Udalov
76fc3b40d5
Do not consider Kotlin compiler as library in runtime versions checker
...
Otherwise because there's no Kotlin-Version in its manifest, it's regarded as a
1.0 runtime library which conflicts with 1.1 libraries
2017-01-23 11:30:53 +03:00
Dmitry Petrov
e31e12474f
KT-15844
...
Property with type inferred from getter could access primary constructor parameters inside the getter
(which is incorrect, and caused problems in compilation).
Fix scopes for property descriptor resolution.
'getScopeForMemberDeclarationResolution' in AbstractLazyMemberScope should always return member declaration resolution scope.
Two scopes are required, because both property initializer and property accessors should see property type parameters.
2017-01-23 10:22:34 +03:00
Denis Zharkov
2edcd369a8
Fix inference issue with Stream.collect
...
See doNotCaptureSupertype test for clarification:
When resolving b.collect(toList()) we're building a common system with
two variables T and R.
The problem was that when introducing the constraint
C<T, Inv<T>> <: C<in String, R> we then were seeing the constraint
T <= in String, and add the constaint T=Captured(in String)
That lead to R=Inv<T>=Inv<Captured(in String)>, and after approximation
R=Inv<in String>, that is not the desirable result (Inv<String> suits here)
But the root problem was that we add captured constaint when projection was from supertype,
that seems to be wrong, and for example Java doesn't do that in the similar situation.
#KT-11259 Fixed
2017-01-22 13:29:08 +03:00
Alexander Udalov
a18720154c
Fix diagnostic test data
2017-01-21 12:59:01 +03:00
Alexander Udalov
fc637eb420
Change runtime component from "Core" to "Main"
...
This is needed to allow the old compiler have the new runtime libraries in the
classpath. See the previous commit for a more elaborate explanation
2017-01-21 12:57:15 +03:00
Alexander Udalov
139d37cfd0
Support "Main" component in JVM runtime version consistency checker
...
The point here is to disable the "checkNotNewerThanCompiler" check because it
breaks a real life use case of compiling with an old compiler against the new
runtime library (that may come implicitly as a transitive dependency of another
library). However, to keep the possibility of restoring this check in the
future without backporting the needed changes into the old branches, we now
only perform this check for the "Core" runtime components, and all other checks
-- for "Core" and "Main" runtime components. In the follow-up commit, we change
the runtime component of our libraries to "Main". If we decide we need the
"checkNotNewerThanCompiler" behavior in the future, we can change the runtime
component to "Core", effectively restoring this check in the old compilers
2017-01-21 12:57:14 +03:00
Alexander Udalov
7b4e826650
Enable JVM runtime version consistency checker in 1.1
2017-01-21 12:57:14 +03:00
Ilya Gorbunov
3a1ed41436
Create deprecated MutableList.sort extensions to guide how to replace them.
...
#KT-15790 Fixed
2017-01-21 03:14:42 +03:00
Dmitry Petrov
6e2ebaa300
KT-12846 Forbid vararg of type 'Nothing' and 'Nothing?'
2017-01-20 17:50:19 +03:00
Mikhail Glukhikh
1f573bb115
EA-92388: Fix of exception in import action creation
2017-01-20 17:39:14 +03:00
Mikhael Bogdanov
818773b7e2
Updated android test configuration
2017-01-20 13:16:58 +01:00
Mikhael Bogdanov
da1b8a02ed
Exclude builtins members mapped to java default methods from delegation
2017-01-20 13:16:58 +01:00
Dmitry Petrov
03a697a707
Prohibit renaming operator to another operator on import.
2017-01-20 13:01:39 +03:00
Mikhail Glukhikh
9625c32527
Exhaustive when on sealed trees implemented #KT-13130 Fixed
...
Also #KT-13227 Fixed
2017-01-20 11:04:54 +03:00
Ilya Gorbunov
3d7bcbdff9
Minor: add two cases for Map.getOrDefault test
...
Relates to #KT-15610
2017-01-19 22:33:20 +03:00
Ilya Gorbunov
3ec48ab244
Add kotlin.comparisons package to default imports.
2017-01-19 18:21:14 +03:00
shiraji
ad9bf1626f
Fix the problem with ConvertPrimaryConstructorToSecondaryIntention for enum #KT-15406 Fixed
2017-01-19 17:57:33 +03:00
Alexey Andreev
245f23e7c2
JS: fix translation of references to external nested classes in files marked with @JsModule. See KT-15797
2017-01-19 16:30:57 +03:00
Dmitry Petrov
5fc8208504
KT-13355: fix Kotlin compilation.
2017-01-19 16:09:29 +03:00
Dmitry Petrov
b36e3bc083
KT-13355
...
An overridden abstract member with a more specific "return type" than an overridden concrete member
should be explicitly overridden even if the class in question can have abstract members.
2017-01-19 16:09:29 +03:00
Dmitry Petrov
f89de02ff0
OverrideResolver: convert to Kotlin & cleanup.
2017-01-19 16:09:29 +03:00
Dmitry Petrov
7f2085b4e4
OverrideResolver: .java -> .kt
2017-01-19 16:09:29 +03:00
Denis Zharkov
bbb5d4eb0f
Fix 1.0-compatibility mode for JDK dependendent built-ins
...
Do not report UNSUPPORTED_FEATURE if there is no overridden descriptors
E.g. in case of property accessors
2017-01-19 15:20:57 +03:00
Ilya Gorbunov
7696d20adf
Deprecate moved reflection 1.1 api with ERROR
2017-01-19 14:07:17 +03:00
Alexey Andreev
af1b7c49b4
JS: insert dummy initializers for property that initialized on init block or in secondary constructors. See KT-8211
2017-01-19 13:20:24 +03:00
Alexey Andreev
a927770935
JS: fix scope of function generated for primary constructor. See KT-15678
2017-01-19 13:09:59 +03:00
Alexey Andreev
daac24b62e
JS: prohibit referencing noImpl property from non-external declarations. See KT-15306
2017-01-19 13:09:06 +03:00
Alexey Andreev
199790276b
JS: prohibit dynamic values as handlers of property delegates. Prohibit delegation of classes by dynamic values. See KT-15283
2017-01-19 13:07:58 +03:00
Alexey Andreev
a4b2abc7d5
JS: prohibit spread operator and destructuring declaration in dynamic values. See KT-15283
2017-01-19 13:07:57 +03:00
Alexey Andreev
31d0e0b7c4
JS: prohibit .. operation on dynamic type. See KT-15184
2017-01-19 13:07:56 +03:00
Alexey Andreev
e6be418dd3
JS: prevent optimizer from removing access to dynamic property access. See KT-15278
2017-01-19 13:07:56 +03:00
Mikhael Bogdanov
e1bec0df2e
Proper generate interval for catch block variable; Fix for KT-15646: InconsistentDebugInfoException when stepping over throw
...
#KT-15646 Fixed
2017-01-19 09:33:10 +01:00
Denis Zharkov
4ab6b6954d
Fix false positive "Null can not be a value of a non-null type"
...
Inferred type of receiver of orElse is Optional<T & Any>
Generic descriptor is orElse(E!): E!
Substituted descriptor is orElse(T): T , and that is the problem.
Seems that E! => (T & Any)! gets expanded to just T or T & Any , however it should be expanded to
(T & Any) .. (T & Any)? => T & Any .. T & Any
T & Any is NotNullTypeParameter(T)
The problem is that (T & Any)? is expanded to T & Any,
that is seems to be wrong.
#KT-15236 Fixed
2017-01-19 10:20:35 +03:00
Denis Zharkov
5d4f51d9b6
Refine 1.0-compatibility mode for JDK dependent members
...
- calls must be prohibited iff they refer to some additonal built in member
- override must be prohibited iff all of the overridden descriptors are additional
Other usages were able to be successfully compiled by 1.0.x
Solution with @Deprecated(level=Error) doesn't work properly, because
deprecation propagates to overridden, thus call 'java.util.ArrayList<String>().stream()'
becomes invalid, while it was correct in 1.0.x
#KT-15794 Fixed
2017-01-19 10:20:35 +03:00
Dmitry Petrov
b9f9894310
KT-15677 KT-15775
...
Update parser & descriptor renderer to handle parenthesized types and function types properly.
Resolve annotations in parenthesized types.
AnnotationsImpl.isEmpty() returned false for targeted annotations only
(e.g., 'fun @receiver:Ann C?.foo()').
Properly keep track of targeted annotations.
2017-01-19 09:53:17 +03:00
Ilya Gorbunov
a429992e81
Do not generate headers for JS-only functions.
2017-01-18 22:16:49 +03:00
Łukasz Wojtów
be15dea6b5
Fix typo
2017-01-18 21:51:31 +03:00
Ilya Gorbunov
ed9b9d972c
Make 'add' function abstract in AbstractMutableSet in JVM
2017-01-18 20:07:24 +03:00
Mikhail Glukhikh
b6443eed9e
Data flow information: stable complex expressions introduced back for brackets / elvis / if / when #KT-13468 Fixed
...
This reverts commit e515d7f773 and
also commit 1c9f08e986
(cherry picked from commit 9fa155b )
2017-01-18 18:54:08 +03:00
Mikhail Glukhikh
86bc49558d
Tests for KT-13468 / KT-13765
...
(cherry picked from commit 2e4c0b4 )
2017-01-18 18:53:55 +03:00
Nikolay Krasko
ffc1624484
Stop using idea isNullOrEmpty function (KT-15786)
...
#KT-15786 Fixed
2017-01-18 18:36:19 +03:00
Alexander Udalov
4f36376291
Do not report KCLASS_WITH_NULLABLE_ARGUMENT_IN_SIGNATURE anymore
...
It was only reported in already erroneous cases
2017-01-18 18:21:30 +03:00
Alexander Udalov
d02404b07b
Report error on expression of nullable type in class literal
...
#KT-15740 Fixed
2017-01-18 18:21:29 +03:00
Alexander Udalov
6a352a1da7
Report error on nullable type alias in class literal
...
#KT-15736 Fixed
2017-01-18 18:21:28 +03:00
Zalim Bashorov
284b9d2ba6
KJS: make deep copy of additional arguments before expose them in KotlinFunctionIntrinsic
2017-01-18 14:43:33 +03:00
Zalim Bashorov
ca2930600a
KJS: introduce $kotlin_test_internal$ to expose some helper functions in the tests
2017-01-18 14:42:40 +03:00
Zalim Bashorov
bbd69a05dc
KJS: make JSON object and allow to pass null to stringify methods
2017-01-18 14:41:22 +03:00
Zalim Bashorov
1b09fa29fb
Fix maven build
2017-01-18 14:40:57 +03:00
Zalim Bashorov
8cf44e9f36
KJS: increase ABI version
2017-01-18 14:40:56 +03:00
Zalim Bashorov
cfba99c704
KJS: remove unused polyfill String.prototype.contains
2017-01-18 14:40:55 +03:00
Zalim Bashorov
264e319487
KJS: type -> kind
2017-01-18 14:40:54 +03:00
Zalim Bashorov
70423e8129
KJS: remove obsolete classIndex
2017-01-18 14:40:51 +03:00
Zalim Bashorov
be694d53ef
KJS: trait -> interface
2017-01-18 14:40:50 +03:00
Zalim Bashorov
c6f0d0fa59
KJS: split kotlin_* files to several files
2017-01-18 14:40:49 +03:00
Zalim Bashorov
d635d7859e
KJS: remove obsolete kotlin.modules
2017-01-18 14:40:48 +03:00
Zalim Bashorov
3ef1321841
KJS: implement throw* functions in Kotlin
2017-01-18 14:40:47 +03:00
Zalim Bashorov
6f56079f7e
KJS: add external declaration for parseFloat; remove obsolete safeParseInt and safeParseDouble
2017-01-18 14:40:46 +03:00
Zalim Bashorov
d0c7c8022e
KJS: remove obsolete functions from kotlin_lib.js
2017-01-18 14:40:44 +03:00
Zalim Bashorov
6b38b5f5ba
KJS: implement array factory function intrinsics in Kotlin
2017-01-18 14:40:42 +03:00
Zalim Bashorov
a71fbda8a1
KJS: remove deprecated splitWithRegex and it's implementation in kotlin_lib.js
2017-01-18 14:25:36 +03:00
Zalim Bashorov
d985d30f91
KJS: reimplement collectionSort in Kotlin
2017-01-18 14:25:36 +03:00
Zalim Bashorov
20c482598a
KJS: reimplement Json.add in Kotlin
2017-01-18 14:25:36 +03:00
Zalim Bashorov
edf1c2da0f
KJS: reimplement deleteProperty in Kotlin
2017-01-18 14:25:36 +03:00
Zalim Bashorov
6ea6e4ab98
KJS: move println to kotlin.io; import kotlin.io by default in Default platform
2017-01-18 14:25:36 +03:00
Zalim Bashorov
7f10ce072f
KJS: move js part of "kotlin.js" and related files to "js.libraries" module
2017-01-18 14:25:36 +03:00
Zalim Bashorov
08e1f757a9
Minor: fix typo
2017-01-18 14:25:36 +03:00
Zalim Bashorov
45b92be1ae
KJS: extract string polyfills to separate file
2017-01-18 14:25:36 +03:00
Zalim Bashorov
12a1c63bda
KJS: move some files inside js.libraries module
2017-01-18 14:25:36 +03:00
Mikhael Bogdanov
de52a5bc20
Fixed diagnostic message
2017-01-18 11:19:36 +01:00
Denis Zharkov
22ddfed911
Do not load PlatformDependent annotated built-in members with lv=1.0
...
#KT-15780 Fixed
2017-01-18 13:00:32 +03:00
Mikhael Bogdanov
591de36666
Added deprecated diagnostic for invoking default methods within jvm-target 1.6
2017-01-18 10:50:59 +01:00
Mikhael Bogdanov
7a27a9d51f
Propagate 'CompilerConfiguration' to frontend checkers
2017-01-18 10:23:40 +01:00
Mikhael Bogdanov
9b1c258cdf
Android test fix
2017-01-18 10:23:40 +01:00
Denis Zharkov
37b364a70a
Fix processing of uninitialized instances for coroutines
...
The problem is that code in the attached test led to VerifyError at runtime
because the Bar's uninitialized instance created in 'map' was being stored
to the field (leaked from the JVM point of view).
The actual problem was that after repeating visiting of NEW operation
we used to drop the set of already visited copy usages.
For clarification see the comment before 'processUninitializedStores'
#KT-15016 Fixed
2017-01-18 12:00:46 +03:00
Denis Zharkov
630fab1952
Fix signature of accessor for suspend function
...
It must be a suspend function too to have an additional Continuation parameter
#KT-15715 Fixed
2017-01-18 12:00:45 +03:00
Denis Zharkov
d0d617b44e
Fix signature mapping for default suspend function from interface
...
Use jvm suspend function view in function codegen.
Also use SUSPEND_FUNCTION_TO_JVM_VIEW slice if the value exists
for the given key
#KT-15552 Fixed
2017-01-18 12:00:45 +03:00
Denis Zharkov
fae9cc1c63
Fix codegen issue of safe-qualified suspension points
...
#KT-15527 Fixed
2017-01-18 12:00:44 +03:00
Denis Zharkov
8cf8e0fce0
Minor. Extract method
2017-01-18 11:44:21 +03:00
Alexey Tsvetkov
f024f14c1e
Fix passing friend paths from Gradle to Kotlin daemon when compiling with IC
2017-01-17 19:18:23 +03:00
Alexey Tsvetkov
58fd2530d2
Pass compiler args from facets when compiling in fallback mode from JPS
2017-01-17 19:18:18 +03:00
Ilya Chernikov
3fcbc7bfa3
Rollback commit with native platform lib relocation - it seems breaks functionality on Windows
...
(cherry picked from commit d3ff19e )
2017-01-17 14:30:28 +01:00
Alexander Udalov
8499db1f42
Update JvmMetadataVersion to 1.1.3
...
This is needed because 1.1.2 binaries are considered pre-release (see
DeserializedDescriptorResolver), so it wasn't possible to compile
non-pre-release binaries with -language-version 1.0
2017-01-17 15:00:52 +03:00
Yan Zhulanow
5adc3bacff
SamWithReceiver: Call onContainerComposed() properly for module dependencies as well. Inject SamWithReceiverResolver by instance.
2017-01-17 20:39:28 +09:00
Alexey Sedunov
75e76dda54
Kotlin Facet: Do not reset configuration if "Use project settings" is switched on
...
#KT-15735 Fixed
2017-01-16 18:27:30 +03:00
Alexey Sedunov
aeb6af546f
Kotlin Facet: Switch off "Use project settings" on Maven/Gradle import
...
#KT-15682 Fixed
2017-01-16 18:27:29 +03:00
Denis Zharkov
9f217de10b
Write kotlin metadata on class-files for coroutine state machines
...
Otherwise it breaks JPS assumptions, that leads to exceptions like:
Error:Kotlin: [Internal Error] java.lang.AssertionError: Couldn't load KotlinClass from /Users/jetbrains/IdeaProjects/KotlinPlaygroundBeta11/out/production/KotlinPlaygroundBeta11/Counter$both$1.class; it may happen because class doesn't have valid Kotlin annotations
at org.jetbrains.kotlin.build.GeneratedJvmClass.<init>(generatedFiles.kt:36)
at org.jetbrains.kotlin.jps.build.KotlinBuilder.getGeneratedFiles(KotlinBuilder.kt:469)
at org.jetbrains.kotlin.jps.build.KotlinBuilder.doBuild(KotlinBuilder.kt:241)
at org.jetbrains.kotlin.jps.build.KotlinBuilder.build(KotlinBuilder.kt:140)
...
2017-01-16 17:53:15 +03:00
mglukhikh
93b2c56bb4
Fixed KNPE in convert primary constructor to secondary #KT-14745 Fixed
2017-01-16 17:35:51 +03:00
Dmitry Petrov
cd33a40612
KT-15734
...
Combine nullability for nested type alias expansion result.
2017-01-16 17:26:28 +03:00
Dmitry Petrov
954204da82
KT-1560
...
Report warning on extensions shadowed by members.
2017-01-16 17:25:13 +03:00
Nikolay Krasko
ded7d5911b
Fix tests
...
Addition to 5d08e82aaf
2017-01-16 16:05:02 +03:00
Roman Elizarov
25739a08ea
CoroutineContext Key and Element are now inside CoroutineContext interface itself (just like Map.Entry)
...
ContinuationInterceptor companion object is named Key
CoroutineContext.Element property for key is named just key
AbstractCoroutineContextElement implements all of CoroutineContext.Element, including key
2017-01-16 14:33:02 +03:00
Nikolay Krasko
ea7fac07c4
Ban import member intentions from import directives (KT-13710)
...
#KT-13710 Fixed
2017-01-16 13:00:50 +03:00
Nikolay Krasko
ad72918ff9
Remove deprecated ConcurrentWeakValueHashMap
2017-01-16 13:00:48 +03:00
Nikolay Krasko
5d08e82aaf
Fix look up for breakpoint in crossinline lambdas in android (KT-15282)
...
#KT-15282 Fixed
2017-01-16 13:00:46 +03:00
Mikhail Glukhikh
b94c62649a
Create header implementation: select among modules only with configured source roots #KT-15641 Fixed
2017-01-16 11:31:07 +03:00
Ilya Gorbunov
07e529c8ec
Fix completion test: expected appearance of 'takeIf' and 'also'
2017-01-16 09:32:17 +03:00
Ilya Gorbunov
914c55b57f
Refactor: use new functions in stdlib code
2017-01-16 09:31:45 +03:00
Ilya Gorbunov
1ae56c374f
Introduce new function 'takeIf' to replace value with null if it doesn't match the predicate.
...
#KT-7858
2017-01-16 05:58:51 +03:00
Ilya Gorbunov
1ac9815d76
Introduce new scope function: 'also'. Works like 'apply' but with 'it' instead of 'this' inside lambda.
...
#KT-6903
2017-01-16 05:58:51 +03:00
Stanislav Erokhin
0ef1234f2e
Added special error for incorrect KClass type in signatures.
2017-01-16 05:44:46 +03:00
Ilya Gorbunov
3d70d73964
Rename file class CoroutinesLibraryKt to CoroutinesKt
2017-01-15 20:57:11 +03:00
Yan Zhulanow
1fb90ac0fd
Copy compiler arguments from iml even if "Use project settings" checkbox is checked. This is deadly needed for the compiler plugins no-arg and all-open, assuming that the default state of the checkbox is "on". (KT-15686, KT-15686).
...
This is a temporary fix, and it should be reverted when "Use project settings" will be disabled by default in modules imported from external build tools (Maven, Gradle).
2017-01-15 22:11:11 +09:00
Yan Zhulanow
50a7164efe
Kapt3, Gradle: Fix kapt execution in tests. Check filtered dependencies list properly (KT-15459)
2017-01-15 22:11:11 +09:00
Yan Zhulanow
ec291455fa
Kapt3: Replace error/NonExistentClass with the actual type (from PSI) (KT-15421)
2017-01-15 22:11:11 +09:00
Yan Zhulanow
ee57446397
Kapt3, Gradle: Prevent circular dependency between kapt and kotlinCompile tasks (KT-15713)
2017-01-15 22:11:11 +09:00
Yan Zhulanow
c136498cc0
Minor: Add uast-kotlin to 'idea' module classpath (fix failing Lint tests)
2017-01-15 22:11:10 +09:00
Ilya Gorbunov
9f303ed06e
Migrate to new coroutines API, rename Iterator implementation, annotate new API with SinceKotlin.
2017-01-14 20:14:06 +03:00
Ilya Gorbunov
ffb183a2f3
Move a bit of bytecode out of next()
2017-01-14 20:14:05 +03:00
Ilya Gorbunov
560c184fd4
Merge AbstractIterator and SequenceBuilder, remove hasNext call from next.
2017-01-14 20:14:03 +03:00
Ilya Gorbunov
141ad43039
Introduce buildSequence and buildIterator functions based on coroutines.
2017-01-14 20:14:01 +03:00
Ilya Gorbunov
3225ec8935
Provide headers for coroutine building blocks
2017-01-14 20:14:00 +03:00
Denis Zharkov
14f942aca7
Refine ABI for coroutine lambdas
...
Make their invoke work in the same way as any other suspend function:
it should return SUSPENDED_MARKER iff. it indeed became suspended
2017-01-14 19:51:05 +03:00
Denis Zharkov
85a3fefcc6
Get rid of SuspendFunctionX interfaces
...
Use a pair of effectively abstract methods in CoroutineImpl instead
2017-01-14 15:13:37 +03:00
Denis Zharkov
d346cbbe61
Update test data for light-analysis/coroutines
2017-01-14 15:13:37 +03:00
Denis Zharkov
c7f76d7ec8
Minor. Fix tests after CoroutineContext introduction
2017-01-14 15:13:36 +03:00
Denis Zharkov
6a1ad3a279
Get rid of unnecessary additional declarations in tests
2017-01-14 13:24:53 +03:00
Ilya Gorbunov
2dfcb490a5
Fix CoroutineContext tests, update public API dump
2017-01-14 13:24:53 +03:00
Roman Elizarov
8d6a913cee
CoroutineContext and ContinuationInterceptor (instead of dispatcher)
2017-01-14 13:24:53 +03:00
Denis Zharkov
f611e39a69
Fix return keyword completetion tests
...
Now suspendOrReturn is toplevel, so we should explicitly choose "return" item
2017-01-14 13:24:53 +03:00
Denis Zharkov
f56d9cfb26
Ignore failing coroutine related tests on JS
2017-01-14 13:24:53 +03:00
Denis Zharkov
10e67a9b4e
Minor. Run Generate tests
2017-01-14 13:24:53 +03:00
Denis Zharkov
c479aa7d65
JS: simplify how suspend functions inlined
2017-01-14 13:24:53 +03:00
Denis Zharkov
2fcc2bbae0
JS: allow to call suspend function from any position within another suspend function
2017-01-14 13:24:53 +03:00
Denis Zharkov
1f0d0028b2
Minor. Simplify coroutine related code in ExpressionCodegen
...
After previous change (treating suspend function as they return j/l/Object)
most of existing hacks concerning suspend functions' return type
became unnecessary
2017-01-14 13:24:53 +03:00
Denis Zharkov
2286027bed
Fix verify error with 'return when/if/try' in suspend function
...
The problem appears for tail-optimized suspend functions,
we erroneously assumed that when/if/try expressions in tail-call
position have simple types like `I` while actually, they can return SUSPENDED
object, i.e. must have `java/lang/Object` as return type.
But this only concerns branching operations in tail-call position,
so we have to make an additional analysis for remembering whether
a given expression is in a tail-call position.
Also, it's important here that we now assume
the return type of the current function as `java/lang/Object`
that is necessary to avoid wrong checkcasts.
#KT-15364 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
de9c41c412
Fix overridability rules for suspend functions
...
Treat suspend and non-suspend functions as conflicting
#KT-15413 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
978f53414f
Prohibit local suspend functions
...
#KT-15392 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
d43a4199f8
Prohibit suspend function type in supertype list
...
#KT-15391 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
f12409504f
Prohibit callable references to suspend functions
...
#KT-15662 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
695b6d9e67
Minor. Add test on local vars of suspend function type
2017-01-14 13:24:53 +03:00
Denis Zharkov
7837d736f7
Merge RestrictedCoroutineImpl into CoroutineImpl
2017-01-14 13:24:53 +03:00
Denis Zharkov
d487c1ef0f
Refine dispatching convention
...
Dispatching happens only via `suspendWithCurrentContinuation` calls
instead of each `resume` call
#KT-15657 Fixed
2017-01-14 13:24:53 +03:00
Denis Zharkov
0240ab0738
Support non-tail suspend calls in JVM back-end
...
#KT-15597 In Progress
2017-01-14 13:24:53 +03:00
Denis Zharkov
a048dde7a5
Support non-tail suspend calls in front-end
...
#KT-15597 In Progress
2017-01-14 13:24:53 +03:00
Denis Zharkov
2cb9d3a8ad
Move coroutine intrinsics to kotlin.coroutine.intrinsics package
...
Also rename val SUSPENDED to SUSPENDED_MARKER
#KT-15698 Fixed
2017-01-14 13:24:53 +03:00
Alexey Tsvetkov
e0fa11b0c1
Fix handling OUTPUT message from daemon in JPS client
2017-01-13 22:17:41 +03:00
SuperVlad
5edb872224
Fix for KT-9594 J2K: null cast incorrect conversion.
...
#KT-9594 fixed
2017-01-13 22:03:24 +03:00
Mikhael Bogdanov
e5b8943d41
Added 'languageVersion' parameter to DiagnosticTestLanguageVersionSettings
2017-01-13 18:01:05 +01:00
Mikhael Bogdanov
b88a9025e0
Don't check DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE when compiling to 1.0
2017-01-13 18:01:05 +01:00
Ilya Gorbunov
80f2efb625
joinTo/joinToString: Do not call toString on elements that are already CharSequence or Char.
...
#KT-15557
2017-01-13 19:49:57 +03:00
Ilya Gorbunov
0c27e07e8c
Improve headers of Appendable and StringBuilder
2017-01-13 19:41:59 +03:00
Ilya Gorbunov
afdc7b94da
Add headers for print and println.
...
#KT-15458 fixed
2017-01-13 19:41:59 +03:00
Ilya Gorbunov
be95f66b13
Minor: remove unnecessary header.
2017-01-13 19:41:59 +03:00
Ilya Gorbunov
cdfb72ab76
Provide protected toArray implementation in AbstractCollection.
...
Relates to #KT-13898
2017-01-13 19:38:28 +03:00
Mikhael Bogdanov
bbf61664ea
Test fix
2017-01-13 14:30:01 +01:00
Mikhael Bogdanov
d8b7c7bc34
Added run configuration for Java 8 test on jdk 9
2017-01-13 13:52:58 +01:00
Mikhael Bogdanov
09eeb414fe
New test for jvm8 nondefaults target
2017-01-13 13:52:57 +01:00
Mikhael Bogdanov
d278a5c6d5
Move java 8+defaults tests to separate folder
2017-01-13 13:52:57 +01:00
Mikhael Bogdanov
0a363fd1a5
Introduced test flag: JVM8_TARGET_WITH_DEFAULTS
2017-01-13 13:52:56 +01:00
Mikhael Bogdanov
7f8acbb759
Use proper flag for interface method invocation
2017-01-13 13:52:55 +01:00
Mikhael Bogdanov
0f2139f27d
InstructionAdapter.invokeX updated to non-deprecated ones
2017-01-13 13:52:55 +01:00
Mikhael Bogdanov
62514e126d
Enable jvm 1.8 platform in cli
2017-01-13 13:52:54 +01:00
Mikhael Bogdanov
b6bf53f96f
Revert ' Temporary remove JVM_1_8 target from facet settings'
2017-01-13 13:52:54 +01:00