Compare commits

...

5722 Commits

Author SHA1 Message Date
Yan Zhulanow
f0a2b9f02d Update changelog for 1.0.6 2016-12-26 16:41:41 +03:00
Yan Zhulanow
d5c3a88850 Add DataBindingComponentShortNamesCache and DataBindingShortNamesCache to ignored caches for Java callables sources. Extract filteredShortNamesCaches property 2016-12-26 16:32:42 +03:00
Yan Zhulanow
eba9a1d4b7 Exclude BrShortNamesCache from processJvmCallablesByName() because of the severe lags in Java static member import quickfix. (KT-14308)
Also exclude Kotlin light classes cache because light classes are filtered out anyway.
2016-12-23 21:38:32 +03:00
Yan Zhulanow
cd775b2287 Kapt3: Nested class inside an interface should always be public and static (KT-15145) 2016-12-22 23:16:20 +03:00
Yan Zhulanow
e255f487b1 Kapt3: Attach additional compiler plugins to kapt<sourceSetName>Compile task 2016-12-22 23:16:19 +03:00
Yan Zhulanow
49e652e893 Kapt: Fix kapt3 on Linux (KT-15375) 2016-12-22 23:16:10 +03:00
Yan Zhulanow
89ed3721fe Minor: review changes 2016-12-22 23:14:38 +03:00
Yan Zhulanow
55f60c0d93 Android Gradle plugin: Fix compatibility with Android Studio 2.3 (KT-15376) 2016-12-22 23:14:38 +03:00
Mikhail Glukhikh
c3b4d6ec00 More accurate handling of Elvis in areParenthesesNecessary #KT-15227 Fixed
(cherry picked from commit ee1b741)
2016-12-22 15:10:49 +03:00
Yan Zhulanow
ca7d965817 Kapt: Parse generic signatures with inner class types correctly 2016-12-20 18:14:00 +03:00
Nikolay Krasko
ff3b7b2df4 Don't assign type parameters from original proto if type is substituted with Any (KT-15128)
#KT-15128 Fixed

(cherry picked from commit c076ad5)
2016-12-20 17:23:15 +03:00
Yan Zhulanow
4638ac40da Kapt3: Set correct compiler options when the annotation processing classpath is empty (KT-15146). Disable annotation processing in Javac task a bit earlier 2016-12-19 20:56:45 +03:00
Yan Zhulanow
f947a50088 Allopen, Noarg: Support transitive meta-annotations 2016-12-19 16:25:29 +03:00
Yan Zhulanow
34617246bb Allopen, minor: Add test for anonymous object 2016-12-19 15:01:07 +03:00
Yan Zhulanow
be63e9b754 Update changelog for 1.0.6 2016-12-16 17:57:38 +03:00
Alexander Udalov
f8fc7e94ac Report JVM runtime version inconsistency as errors instead of warnings 2016-12-16 16:15:56 +03:00
Mikhael Bogdanov
57f1751aec Fix for KT-14774: Incorrect inner class modifier generated for sealed inner classes
#KT-14774 Fixed

(cherry picked from commit 004ff86)
2016-12-16 11:24:11 +01:00
Alexander Udalov
20495c4ed5 Fix kotlinFunction for inline reified methods in reflection
Inline functions with reified type parameters are generated as private (see
AsmUtil.specialCaseVisibility), so we should treat them as "declared" in
reflection to look them up via getDeclaredMethod, not getMethod

 #KT-14721 Fixed

(cherry picked from commit 49de52e7ef)
2016-12-16 13:15:50 +03:00
Alexander Udalov
c540f24f83 Minor, move isInlineOnlyOrReified to module descriptors
(cherry picked from commit 3a0100f604)
2016-12-16 13:14:32 +03:00
Yan Zhulanow
3c0287bbec Move Maven subplugin test to kotlin-maven-plugin-test module 2016-12-15 18:35:11 +03:00
Nikolay Krasko
a734081d42 Do indent adjustment on the fly only for the first element in the line (KT-15123)
Don't interfere spacing for dot in range operator.

 #KT-15123 Fixed

(cherry picked from commit d0d583e8ee)
2016-12-15 14:41:30 +03:00
Nikolay Krasko
e95fd8515f Remove the code for idea 144
(cherry picked from commit e359b9b6de)
2016-12-15 14:41:28 +03:00
Nikolay Krasko
17f110d43b Make sdk info and library info difference more clear in debugger
(cherry picked from commit 88b3d9ff3f)
2016-12-15 14:41:27 +03:00
Alexander Udalov
5f5f45c5d6 Fix compilation 2016-12-15 13:18:04 +03:00
Alexander Udalov
a8682b3ac2 Run Make without error check before "Generate Tests"
This is needed to simplify merge conflict resolution in case when only
generated tests have conflicts
2016-12-15 11:52:51 +03:00
Alexander Udalov
8ce55deed6 Treat absence of version in SinceKotlinInfo as infinite version
This may be needed in the future to make some declarations erroneous for all
versions of compilers
2016-12-15 11:52:50 +03:00
Alexander Udalov
1ed44c22d5 Support SinceKotlinInfo for deserialized classes 2016-12-15 11:52:49 +03:00
Alexander Udalov
b2fc9abf09 Check language version for deprecation via SinceKotlinInfo 2016-12-15 11:52:49 +03:00
Alexander Udalov
ee02bc9a01 Serialize SinceKotlinInfo and SinceKotlinInfoTable 2016-12-15 11:52:48 +03:00
Alexander Udalov
739651eef3 Introduce SinceKotlinInfo, load from serialized metadata
This is a way for future compilers to cause previous compilers to report
diagnostics on usages of some declarations. Diagnostic can have a message
(and/or error code), level (error, warning, or completely hide the declaration
from the resolution), and Kotlin version, since which the diagnostic should no
longer be reported
2016-12-15 11:52:47 +03:00
Alexander Udalov
8afa2bb314 Collect all deprecations, do not stop on the first found one
#KT-15245 In Progress
2016-12-15 11:48:24 +03:00
Alexander Udalov
e2e87dcca0 Minor refactoring in deprecationUtil.kt
Split getDeclaredDeprecatedAnnotation into two methods for clarity
2016-12-15 11:48:24 +03:00
Alexander Udalov
8f936b370e Refactor getDeprecation() -> getDeprecations()
In subsequent commits, another kind of deprecation is introduced which should
be reported alongside with deprecation by the `@Deprecated` annotation
2016-12-15 11:48:24 +03:00
Yan Zhulanow
69dddf1769 Minor: Fix Android Extensions IDE tests (enable synthetic package fragment provider in tests) 2016-12-15 02:37:35 +03:00
Yan Zhulanow
f389cf0bdd Get rid of AS1.5/AS2.0 reflection magic in NewKotlinActivityAction (EA-92846) 2016-12-14 21:19:52 +03:00
Yan Zhulanow
bedee38a8c Android Extensions: Enable IDE plugin only if it is enabled in the build.gradle file (KT-12741) 2016-12-14 21:19:51 +03:00
Yan Zhulanow
9b7e3de3d1 Minor: Move all Android Extensions-related classes to org.jetbrains.kotlin.androidExtensions 2016-12-14 21:19:50 +03:00
Yan Zhulanow
73eafe100a Remove Android Extensions JPS plugin (KT-14067) 2016-12-14 21:15:03 +03:00
Yan Zhulanow
ec85b1c48a Kapt3: Set javac codepage to UTF-8 2016-12-14 20:49:30 +03:00
Yan Zhulanow
23460946d0 Android Gradle plugin: Fix compatibility with Android Gradle Plugin 2.3 2016-12-14 20:49:29 +03:00
Nikolay Krasko
d23b3ce1ab Allow empty single-line bodies in property accessors
(cherry picked from commit 2bb48fc)
2016-12-14 13:48:50 +03:00
Nikolay Krasko
836f6fa23d Do not force new line in body for empty functions and function expressions (KT-10828)
#KT-10828 Fixed

(cherry picked from commit 2841931ffa)
2016-12-14 13:48:48 +03:00
Yan Zhulanow
ba97e8bc5d Update changelog for 1.0.6 2016-12-13 22:18:10 +03:00
Alexander Udalov
5c1584054c Minor, capitalize entry names in manifest 2016-12-13 17:40:08 +03:00
Alexander Udalov
a898eaf655 Fix compilation for 1.0.* 2016-12-13 17:39:26 +03:00
Alexander Udalov
acf7b46286 Introduce '-Xskip-runtime-version-check' command line option 2016-12-13 17:39:25 +03:00
Alexander Udalov
36d7d8d5a6 Decrease number of reported runtime version diagnostics
If there's at least one runtime newer than the compiler, do not report that
it's inconsistent with the correct runtime
2016-12-13 17:39:24 +03:00
Alexander Udalov
e651f1ff96 Improve diagnostics for runtime versions consistency checker
- report the diagnostic on the actual problematic file
- output the list of all runtime jars if min version != max version
2016-12-13 17:39:23 +03:00
Alexander Udalov
2fb008e64d Use MavenComparableVersion in runtime version consistency checker
LanguageVersion is an enum consisting of the current and all previous versions
only, so with it we won't be able to detect the language version of a future
runtime
2016-12-13 17:39:22 +03:00
Dmitry Petrov
5dd147fa60 Check classpath version consistency.
Add 'Kotlin-version' attribute to kotlin-runtime and kotlin-reflect JARs.
2016-12-13 17:39:22 +03:00
Dmitry Jemerov
2e7ad8fd0e Don't offer updates for @snapshot@ plugin version
(cherry picked from commit e7cf646)
2016-12-13 14:42:04 +01:00
Dmitry Jemerov
e580aac6fc Check for plugin update before allowing to submit exception
(cherry picked from commit 0cfc4db)
2016-12-13 14:41:57 +01:00
Valentin Kipyatkov
19e77b8361 KT-14732 Slow typing, copy-pasting, highlighting in Kotlin files due to auto-import suggestion calculation in EDT
#KT-14732 Fixed

(cherry picked from commit 0ef5f66)
2016-12-13 13:59:18 +01:00
Dmitry Jemerov
a893460ce5 Fix expected test data 2016-12-13 13:57:09 +01:00
Simon Ogorodnik
6dca2c43a5 Fix for EA-89556 - (from J2K) ROME: DocumentImpl.replaceString
(cherry picked from commit 7a4b6a1)
2016-12-12 21:52:58 +03:00
Simon Ogorodnik
be45161524 Fix for KT-14885 J2K on paste adds duplicated imports
(cherry picked from commit fb5398c)
2016-12-12 21:52:58 +03:00
Dmitry Jemerov
aab68bec5b Add element validity check to KotlinRunConfigurationProducer.getStartClassFqName() (EA-86393 - PIEAE: PsiFileImpl.getText)
(cherry picked from commit b4dd54f)
2016-12-12 18:07:04 +01:00
Dmitry Jemerov
df6f5532cd Highlight code fragments only when they have a context (part of EA-84233 - assert: GetModuleInfoKt$getModuleInfo$.invoke) 2016-12-12 18:07:04 +01:00
Dmitry Jemerov
06526f003b Implement supertype access methods in KtLightClassForFacade without delegate access (EA-92490 - ISE: KtLightClassForFacade.getClsDelegate)
(cherry picked from commit d6cd148)
2016-12-12 18:07:04 +01:00
Dmitry Jemerov
acf20cfbb4 Better diagnostics for "no resolver for module descriptor" situation (EA-72838 - ISE: EmptyResolverForProject.resolverForModuleDescriptor)
(cherry picked from commit 48513c7)
2016-12-12 18:07:04 +01:00
Dmitry Jemerov
5d6f07a669 Avoid committing document in KDoc beforeCharTyped handler (EA-88521 - assert: PsiDocumentManagerBase.commitDocument)
(cherry picked from commit bd0aa5a)
2016-12-12 18:07:04 +01:00
Dmitry Jemerov
6d4ddfc2b5 Avoid NPE while calculating assertion message (EA-92384 - NPE: KtElementImpl.getContainingKtFile)
(cherry picked from commit 7f02c67)
2016-12-12 18:07:04 +01:00
Dmitry Jemerov
12b04e6407 Remove unnecessary uses of getContainingKtFile() (EA-83360 - CCE: KtElementImplStub.getContainingKtFile)
(cherry picked from commit d5e90b4)
2016-12-12 18:07:04 +01:00
Ilya Gorbunov
92904822ab Add non-compiled sources to runtime before packaging sources jar.
(cherry picked from commit 2e7456c)
2016-12-12 19:46:19 +03:00
Dmitry Jemerov
06c18c5287 Remove unnecessary cyclic dependency between KtStubElementTypes and KtNodeTypes
#KT-15074 Fixed

(cherry picked from commit 13b8494)
2016-12-12 16:27:48 +01:00
Dmitry Jemerov
d2b97bf4fa Don't try to calculate icon for invalid PSI elements
#KT-13443 Fixed

(cherry picked from commit a7bd910)
2016-12-12 16:25:42 +01:00
Alexey Sedunov
a103d9d96a Minor: Fix compilation after rebase 2016-12-12 14:00:19 +03:00
Alexey Sedunov
25eb7cdcde Intentions: Convert function type receiver to parameter
#KT-14246 Fixed
(cherry picked from commit e9d29c0)
2016-12-12 14:00:18 +03:00
Alexey Sedunov
d9b0bf416b Intentions: Convert function type parameter to receiver
#KT-14246 In Progress
(cherry picked from commit c5907c4)
2016-12-12 14:00:17 +03:00
Alexey Sedunov
2a4e61438b Introduce Variable: Allow extraction to class body/file
(cherry picked from commit dadab9c)
2016-12-12 14:00:15 +03:00
Alexey Sedunov
764b6fb587 Create from Usage: Support adding type parameters to the referenced type
#KT-11760 Fixed
(cherry picked from commit b6d4bb4)
2016-12-12 14:00:14 +03:00
Alexey Sedunov
42ccf1163d Intentions: Implement "Add names to call arguments" intention
#KT-14729 Fixed
(cherry picked from commit c773afd)
2016-12-12 14:00:13 +03:00
Alexey Sedunov
fc650bb0a6 Create from Usage: Support generation of abstract members for superclasses. Skip non-abstract superclasses when generating abstract member
#KT-14019 Fixed
(cherry picked from commit 2a594a5)
2016-12-12 14:00:12 +03:00
Alexey Sedunov
a5897e29c8 Extraction Engine: Do not wrap companion member references inside of the with call if it's disabled in extraction options
#KT-13781 Fixed
(cherry picked from commit 25cebba)
2016-12-12 14:00:11 +03:00
Alexey Sedunov
795ce27573 Move: Fix callable reference processing when moving to another package
#KT-14197 Fixed
(cherry picked from commit 61210d6)
2016-12-12 14:00:10 +03:00
Alexey Sedunov
51afef1733 Unused Symbol Inspection: Fix exception on deleting unused declaration in IDEA 2016.3
(cherry picked from commit 313d838)
2016-12-12 14:00:09 +03:00
Alexey Sedunov
f8513abfa1 Rename: Fix exceptions on moving file with facade class to another package
#KT-14325 Fixed
(cherry picked from commit 1bde0e1)
2016-12-12 14:00:08 +03:00
Alexey Sedunov
f629340b29 Safe Delete: Fix exception on deleting Java class used in Kotlin import directive(s)
#KT-14596 Fixed
(cherry picked from commit cedbac6)
2016-12-12 14:00:07 +03:00
Alexey Sedunov
195cc9fd7a Initialize with Constructor Parameter Intention: Fix IDE freeze on properties in generic class
#KT-14459 Fixed
(cherry picked from commit 465138c)
2016-12-12 14:00:06 +03:00
Alexey Sedunov
756f27d5e5 Rename: Do not report redeclaration conflict for private top-level declarations located in different files
#KT-14361 Fixed
(cherry picked from commit b29c704)
2016-12-12 14:00:05 +03:00
Alexey Sedunov
0d25409d62 Project Settings: Expose JVM target setting in IntelliJ IDEA plugin compiler configuration UI
#KT-13811 Fixed
(cherry picked from commit 21c6e97)
2016-12-12 14:00:04 +03:00
Alexey Sedunov
4153fed2da Rename: Fix renaming of .kts file to .kt and vice versa
#KT-14814 Fixed
(cherry picked from commit 740f769)
2016-12-12 14:00:03 +03:00
Alexey Sedunov
93d989e792 Extract Interface: Fix NPE on dialog opening
#KT-14854 Fixed
(cherry picked from commit ddb5308)
2016-12-12 14:00:02 +03:00
Alexey Sedunov
c8f6e56265 Move: Fix EA-1266148
(cherry picked from commit 9967d4c)
2016-12-12 14:00:01 +03:00
Alexander Udalov
95b4b6e7d9 Fix test on IS_PRE_RELEASE
Use DeserializedDescriptorResolver.IS_PRE_RELEASE instead of
KotlinCompilerVersion.IS_PRE_RELEASE because the former is updated correctly in
tests
2016-12-12 11:28:27 +03:00
Ilya Gorbunov
15490ebad6 Exclude builtins module from idea project build
(cherry picked from commit 9e238d26f2)
2016-12-12 11:05:50 +03:00
Alexander Udalov
8dba4f8fe9 Set isPreRelease = false for 1.0.6
1.0.* is a stable branch
2016-12-10 10:10:09 +02:00
Yan Zhulanow
e379d78e6b Kapt3: Add property annotation holder methods to Java stubs (KT-13767) 2016-12-09 19:38:31 +03:00
Yan Zhulanow
94518b686e Kapt3: Allow to use ':' in annotation processor option value (KT-15139) 2016-12-09 19:38:29 +03:00
Yan Zhulanow
21c7bcb8a0 Kapt3: Make 'kaptTest' configuration extend 'kapt' (KT-10190) 2016-12-09 19:38:28 +03:00
Yan Zhulanow
258ec264c6 Kapt3: Fix '$' in function generic signatures (KT-15148) 2016-12-09 19:38:26 +03:00
Yan Zhulanow
ec9c7e0f4e Kapt3: Use annotation processor options from variant data options. This fixes DataBinding on Android Gradle plugin 2.3 (KT-14816) 2016-12-09 19:38:25 +03:00
Yan Zhulanow
50bca3e83c Kapt3, Minor: Flush logs before throwing parse error exception 2016-12-09 19:38:24 +03:00
shiraji
5caf3d551d KT-15142 Remove redundant calls of the conversion method wrongly shown for Any?.toString
#KT-15142 Fixed

(cherry picked from commit 44ca451)
2016-12-09 14:50:30 +03:00
Alexander Udalov
68ad51056a Remove type aliases from newly added test data 2016-12-09 02:00:24 +03:00
Alexander Udalov
271da44837 Suggest to use "-Xskip-metadata-version-check" on incompatible classes in classpath 2016-12-09 02:00:24 +03:00
Alexander Udalov
c72d349c9f Do not fail when deserializing incompatible metadata
Catch all exceptions when deserializing metadata with an incompatible version
to prevent the compiler from failing on discovering incompatible classes on the
classpath. Note that this is not the perfect solution: any invariant may be
broken in the incompatible metadata and it may result in a later exception
2016-12-09 02:00:24 +03:00
Alexander Udalov
f115359de9 Remove old mechanism of metadata version error reporting 2016-12-09 02:00:23 +03:00
Alexander Udalov
6e0122b978 Report incompatible metadata version error correctly
Similarly to pre-release classes, load metadata for the class anyway and allow
the resolution to select it as the result and prohibit its usage in the end
with the special diagnostic reported in MissingDependencyClassChecker
2016-12-09 02:00:23 +03:00
Alexander Udalov
9c8986da4b Use "-Xskip-metadata-version-check" to load pre-release classes 2016-12-09 02:00:22 +03:00
Alexander Udalov
328c0be5af Report error on pre-release top level members 2016-12-09 02:00:22 +03:00
Alexander Udalov
75d26dcb7e Add classifier usage checker for missing dependency classes
This has no effect for the original use case of mock class descriptors
(unresolved classes used in libraries), but is necessary for pre-release
classes in case the compiler is a release, because such classes end up in scope
and can be the result of the resolution
2016-12-09 02:00:22 +03:00
Alexander Udalov
39b85188ee Write "pre-release" flag to class files, do not allow usages in release 2016-12-09 02:00:21 +03:00
Alexander Udalov
271fc1a6b4 Add KotlinVersion.IS_PRE_RELEASE and a flag to kotlin/Metadata 2016-12-09 02:00:21 +03:00
shiraji
cf1491ad8e KT-15030 Remove redundant calls of conversion methods: false positive for 'toList()'
#KT-15030 Fixed

(cherry picked from commit 2815b5e)
2016-12-08 18:48:31 +03:00
Mikhail Glukhikh
73b150094c "Change return type for enclosing fix" now handles TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH correctly #KT-14063 Fixed
(cherry picked from commit 268702e)
2016-12-08 18:47:04 +03:00
Mikhail Glukhikh
c7f2eccdcd "Change return type fix" now handles data class properties correctly #KT-15028 Fixed
(cherry picked from commit 2ac8e5b)
2016-12-08 18:46:59 +03:00
Mikhail Glukhikh
b2d2e05f59 Convert reference to lambda: handle special case of extension functional type #KT-14985 Fixed
(cherry picked from commit 0994d46)
2016-12-08 18:46:47 +03:00
Mikhail Glukhikh
2d8a6f6529 Convert reference to lambda: correct handling of static method references #KT-14982 Fixed
(cherry picked from commit e904e56 - a pair of unnecessary tests)
2016-12-08 18:46:04 +03:00
Mikhail Glukhikh
baf2b9fe47 Simplify boolean == true / false is no longer applicable on flexible boolean #KT-15087 Fixed
(cherry picked from commit ea8548c)
2016-12-08 17:58:38 +03:00
Mikhail Glukhikh
64e6ce608b Infrastructure test for intention descriptions availability added
(cherry picked from commit 4b86c4a)
2016-12-08 17:58:27 +03:00
Nikolay Krasko
42e3028736 Wrap options for constructor parameters
#KT-12176 In Progress

(cherry picked from commit 43948a0170)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
ec63ee3cab Indent () in if, when, while and do-while with continuation indent (KT-5897)
#KT-5897 Fixed

(cherry picked from commit 300601da54)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
28fbbc6f3d Refactoring: use when instead of if
(cherry picked from commit 211cae2ad2)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
b7ea9b80ca Refactoring: move runSynchronouslyWithProgress to ProgressUtil
(cherry picked from commit 06172e7)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
10b9f1ed91 Use lazy resolve for counting list of inlined function during step out (KT-14892)
#KT-14892 Fixed

(cherry picked from commit fd8d616)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
0b1e222822 Run full resolve in debugger with write action priority (KT-14602)
#KT-14602 Fixed

(cherry picked from commit fc5b493)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
669995ed49 Remove repeating contexts in CompositeBindingContext creation
(cherry picked from commit 45532e480f)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
d24ea4fc29 Avoid requesting line number for bad offset (EA-87678)
Example of stack trace:
java.lang.IndexOutOfBoundsException: Wrong offset: 14847. Should be in range: [0, 14846]
	at com.intellij.openapi.editor.impl.LineSet.findLineIndex(LineSet.java:141)
	at com.intellij.openapi.editor.impl.DocumentImpl.getLineNumber(DocumentImpl.java:919)
	at org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringUtilKt.getLineCount(kotlinRefactoringUtil.kt:344)
	at org.jetbrains.kotlin.idea.debugger.KotlinPositionManager.getSourcePosition(KotlinPositionManager.kt:125)

(cherry picked from commit 76916b0877)
2016-12-08 15:22:44 +03:00
Nikolay Krasko
0eb3433a99 Don't resolve reference if result is useless
(cherry picked from commit ee1ce184f9)
2016-12-08 15:22:44 +03:00
Alexander Udalov
179d2c6ad7 Fix compilation of module generators
(cherry picked from commit 65e01f2fdb)
2016-12-08 14:30:55 +03:00
Alexander Udalov
19508a8261 Fix compilation of module android-tests
(cherry picked from commit 751f546a70)
2016-12-08 14:27:20 +03:00
Alexander Udalov
fb163f2495 Minor refactoring in frontend/resolution
Fix typos, formatting, diagnostic message

(cherry picked from commit d5c75ae764)
2016-12-08 13:41:53 +03:00
Alexander Udalov
497cb1b41d Deduplicate code in JavaClassDataFinder
(cherry picked from commit 921694e13a)
2016-12-08 13:41:46 +03:00
Alexander Udalov
446d0beb0d Minor, introduce DeserializedContainerSource
(cherry picked from commit 41f2048f96)
2016-12-08 13:41:38 +03:00
Alexander Udalov
c8e105ed55 Move "missing dependency class" diagnostic from JVM to common front-end
(cherry picked from commit 228d0a1c43)
2016-12-08 13:40:42 +03:00
Alexander Udalov
533e1f5536 Add expectedVersion to IncompatibleVersionErrorData, move to deserialization
(cherry picked from commit 3b18531b20)
2016-12-08 13:40:09 +03:00
Alexander Udalov
b5238ddf81 Rename KotlinVersion->KotlinCompilerVersion, move to module util.runtime
Rename to avoid confusion with the recently added kotlin.KotlinVersion

(cherry picked from commit 414daef001)
2016-12-08 13:39:58 +03:00
Vyacheslav Gerasimov
e830e8b55f 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
2016-12-07 17:50:17 +03:00
Vyacheslav Gerasimov
f591b4958e Fixed bugs in Kotlin Android Lint CleanupDetector
#KT-14780 Fixed
#KT-14677 Fixed
2016-12-07 17:50:06 +03:00
Vyacheslav Gerasimov
9699ca5175 Invoke rename handler with editor if possible in IllegalIdentifierInspection.RenameIdentifierFix
#KT-14760 Fixed
#KT-11646 Fixed
2016-12-07 17:49:54 +03:00
Vyacheslav Gerasimov
36b3708e23 Uast 1.0.6 2016-12-07 17:49:42 +03:00
Yan Zhulanow
bf596c494e Check if modality is refined in "Redundant modifier" inspection 2016-12-06 21:47:26 +03:00
Yan Zhulanow
6ecfda886d Minor: Add allopen-ide and allopen-noarg to "idea" module test classpath 2016-12-06 21:47:25 +03:00
Yan Zhulanow
e3a05e8609 NoArg: Add Maven plugin 2016-12-06 21:47:24 +03:00
Yan Zhulanow
90ba8861d6 NoArg: Add IDE integration 2016-12-06 21:47:23 +03:00
Yan Zhulanow
c98efdd32b Noarg: Add a kotlin-noarg Gradle plugin 2016-12-06 21:34:47 +03:00
Yan Zhulanow
ec9bdfc0f3 NoArg: Add compiler plugin 2016-12-06 21:34:46 +03:00
Yan Zhulanow
13d8cb3e96 AllOpen: Add IDE integration 2016-12-06 21:34:45 +03:00
Yan Zhulanow
0dafa4c502 Allopen: Add Maven plugin for all-open
(cherry picked from commit f0f0c69)
2016-12-06 21:34:43 +03:00
Sergey Mashkov
95d1b8b277 Resolve dependency jars
(cherry picked from commit 7cc9447)

(cherry picked from commit 41a9270)
2016-12-06 21:34:42 +03:00
Sergey Mashkov
a6a6aef352 Add integration test for Kotlin compiler plugin for Maven
(cherry picked from commit 1e146a4)

(cherry picked from commit b50a336)
2016-12-06 21:34:41 +03:00
Sergey Mashkov
df938cf67d Initial Kotlin plugin support in Maven
(cherry picked from commit 46a7263)

(cherry picked from commit c58ac8f)
2016-12-06 21:34:40 +03:00
Yan Zhulanow
2bf28d90c9 Allopen: Add allopen Gradle subplugin
(cherry picked from commit 2287e80)
2016-12-06 21:34:39 +03:00
Yan Zhulanow
e98b8a8c92 Allopen: Handle allopen annotations on classes (KT-12149)
(cherry picked from commit e82cbd7)
2016-12-06 21:34:37 +03:00
Yan Zhulanow
ff6eafceee Allopen: Add allopen compiler plugin 2016-12-06 21:34:36 +03:00
Sergey Mashkov
97b04372d6 KT-15120 Gradle JS test compile task doesn't pick up production code 2016-12-06 16:57:34 +03:00
Sergey Mashkov
2bd462134f IDL2K: properly handle clash or val and var attributes 2016-12-06 15:01:25 +03:00
Mikhail Glukhikh
7358c4e7be Call method references search in UnusedSymbolInspection.hasReferences to fix secondary constructor search
Makes #KT-12500 Fixed
Makes #KT-12501 Fixed

(cherry picked from commit 299f477)
2016-12-06 13:46:58 +03:00
Mikhail Glukhikh
9503c1a7d4 Cleanup: remove empty primary constructor applied
(cherry picked from commit 729a3a3)
2016-12-06 13:46:16 +03:00
Mikhail Glukhikh
af785a5320 Cleanup: remove empty constructor body applied
(cherry picked from commit f71ea88)
2016-12-06 13:46:00 +03:00
Mikhail Glukhikh
689cd880fb Cleanup: redundant if statement applied
(cherry picked from commit d5638df)
2016-12-06 13:45:46 +03:00
Mikhail Glukhikh
1c749d5d40 Cleanup: join declaration & assignment applied
(cherry picked from commit 96ae881)
2016-12-06 13:45:29 +03:00
Nikolay Krasko
75600fb73a Avoid loading psi for compiled kotlin file if it's possible to get declaration by name from stubs
(cherry picked from commit 726471d98e)
2016-12-05 19:01:01 +03:00
Nikolay Krasko
8d4fca1357 Allow to search builtins descriptors in stubs by name 2016-12-05 16:19:51 +03:00
Nikolay Krasko
9b8f8ae083 Don't enable search stub declaration by name if file doesn't contain descriptor key
This might cause irrelevant declarations found with the same name.
2016-12-05 16:19:49 +03:00
Nikolay Krasko
3f4535fef2 Try to avoid loading ast for decompiled files (KT-14804)
#KT-14804 Fixed
2016-12-05 16:19:47 +03:00
Yan Zhulanow
ba48dda523 Minor: Fix tests (kapt3-related) 2016-12-02 22:58:58 +03:00
Yan Zhulanow
8da309fdb2 Update ChangeLog for 1.0.6 2016-12-02 21:58:05 +03:00
Mikhail Glukhikh
2a065ff2d7 Plugin fix: intention description ConvertFinallyToUseCallIntention --> ConvertTryFinallyToUseCallIntention
(cherry picked from commit 0e9b024)
2016-12-02 14:06:35 +03:00
Mikhail Glukhikh
cd2e128f33 KT-12100 (1.0.x only): safe calls in finally are forbidden (use has nullable receiver in 1.1 but not-null in 1.0.x) 2016-12-02 13:01:28 +03:00
Mikhail Glukhikh
31ece45a43 KT-12100 convert try / finally to use: select use parameter after application
(cherry picked from commit 4af9b27)
2016-12-02 09:45:05 +03:00
Mikhail Glukhikh
4ddd083c1d KT-12100 convert try / finally to use: report intention only at try {
(cherry picked from commit 9ea3268)
2016-12-02 09:44:50 +03:00
Mikhail Glukhikh
43811f6eee KT-12100 convert try / finally to use: safe close() is allowed in finally + correct new lines
(cherry picked from commit 0cc52e2)
2016-12-02 09:44:31 +03:00
Mikhail Glukhikh
093ab7bc3b KT-12100 convert try / finally to use: 'this' receiver is now left as is
(cherry picked from commit 0ac4430)
2016-12-02 09:44:15 +03:00
Mikhail Glukhikh
19899bb047 KT-12100 convert try / finally to use: 'this' cases, implementation via resolved call
(cherry picked from commit f513514)
2016-12-02 09:43:57 +03:00
Mikhail Glukhikh
27181ac2f6 KT-12100 related: convert try / finally to use() call inspection introduced
(cherry picked from commit 468e975)
2016-12-02 09:43:08 +03:00
Mikhail Glukhikh
e36e105348 "Convert try / finally to .use { } call intention introduced" #KT-12100 Fixed
(cherry picked from commit 59b2608)
2016-12-02 09:42:44 +03:00
Anton Bannykh
c9c578613e Fix codegen tests 2016-12-01 20:00:12 +03:00
Yan Zhulanow
329c6f60f1 Kapt3: Fix signature clash (return type is different) for non-generic methods 2016-12-01 16:33:10 +03:00
Yan Zhulanow
5f928895c2 Kapt3: Clear javac's boot classpath (KT-15001) 2016-12-01 16:33:09 +03:00
Yan Zhulanow
a854e27d4f Kapt3: Separate classpaths for compilation and for annotation processing 2016-12-01 16:33:08 +03:00
Yan Zhulanow
ae001ed048 Kapt3: Fix parameter names in JvmOverloads-generated methods (KT-15024) 2016-12-01 16:33:07 +03:00
Yan Zhulanow
84f6cbe822 Kapt3: Fix "Parameter names are clashing in inner class constructor" (KT-14998) 2016-12-01 16:33:06 +03:00
Yan Zhulanow
c9786122b8 Kapt3: Ensure that field types and method return types are not anonymous (KT-14997) 2016-12-01 16:33:05 +03:00
Yan Zhulanow
3953e81299 Kapt3: Allow function overloads based on return type (KT-14996). Fix wrong facade class name inside the default package 2016-12-01 16:33:04 +03:00
Nikolay Krasko
17b7499b11 Filter also by kind to avoid getting enum descriptors from compiled code 2016-12-01 15:46:31 +03:00
Ilya Chernikov
18916b8f66 Generalize error processing on daemon connection, attempt to fix #EA-82064 again 2016-11-30 13:34:17 +01:00
Nikolay Krasko
bab26d4841 Check no runtime markers are misused in quick fix tests 2016-11-30 15:20:22 +03:00
Nikolay Krasko
61730ee641 Auto-import does not suggest enum constant (KT-14100)
#KT-14100 Fixed
2016-11-30 15:20:20 +03:00
Natalia Ukhorskaya
ad53f49b4e Debugger: ability to set breakpoint to lambda in return statement (KT-14615)
#KT-14615 Fixed

(cherry picked from commit 01d4ec4187)
2016-11-30 14:02:25 +03:00
Nikolay Krasko
88dea7dfdf Navigation to inline functions doesn't work for thread dump captured using "Get thread dump" (KT-14916)
#KT-14916 Fixed

(cherry picked from commit 730e561177)
2016-11-30 14:02:23 +03:00
Simon Ogorodnik
e42944c56b Fix compilation 2016-11-29 17:06:03 +03:00
Simon Ogorodnik
ffbe323255 Fix for KT-10665, now only signature + deprecation info shown in quick navigation tooltip
Fix tests, to use full documentation mode instead of quick navigate

(cherry picked from commit e4a383f)
2016-11-29 14:18:47 +03:00
Simon Ogorodnik
d2ae5f49c5 Fix for KT-13699 Quick documentation doesn't show supertype docs for overridden Java
(cherry picked from commit 1c75c02)
2016-11-29 14:18:42 +03:00
Simon Ogorodnik
7ff30d71a1 Added tests to prove, that KT-8547 fixed
(cherry picked from commit b93c37f)
2016-11-29 14:18:38 +03:00
Simon Ogorodnik
afe73a7938 Fix for KT-11032 Samples not rendered in Quick Doc
Now samples included as code blocks into quick doc

(cherry picked from commit 2824c8d)
2016-11-29 14:18:34 +03:00
Simon Ogorodnik
d46af79513 Fix for KT-13197 Markdown indented code blocks are not recognized by quick doc
Expanded code blocks lexer test, to cover indented code blocks

(cherry picked from commit 94770f8)
2016-11-29 14:18:30 +03:00
Simon Ogorodnik
a532b21834 Fix for KT-7995 Quick doc should show deprecation info and ReplaceWith
(cherry picked from commit 3376dbb)
2016-11-29 14:16:59 +03:00
Simon Ogorodnik
7c2e28ff2e Completion for fqNames in KDoc links
Tests, also proved that KT-14432 are fixed
Added completion and tests for extension functions.

(cherry picked from commit 1a211ee)
2016-11-29 14:16:55 +03:00
Simon Ogorodnik
2eec2c8095 Fix resolving of packages in FQN kdoc links
Assume link [pack.SomeType], pack no more will be marked as unresolved reference

(cherry picked from commit 62077da)
2016-11-29 14:16:13 +03:00
Simon Ogorodnik
379f3bc55d Feature KT-7739 Type names in Quick Documentation should be clickable and navigate to their documentation
Filter out 'boring builtin classifiers' (kotlin.Int for ex) from signature hyperlinks

(cherry picked from commit c93e47f)
2016-11-29 14:16:09 +03:00
Simon Ogorodnik
39f318682c Fix for KT-13400, KT-13389 Resolving FQN in quick doc
Problem related to not complete fix in KT-10398

(cherry picked from commit 68d4a7a)
2016-11-29 14:16:01 +03:00
Simon Ogorodnik
fdc45daeaa Fix for KT-13038 Quick doc should escape HTML entities in code blocks
(cherry picked from commit b007d9b)
2016-11-29 14:15:55 +03:00
Mikhail Glukhikh
ac46f02915 KT-12633 related test fix
(cherry picked from commit 904ea33)
2016-11-28 17:36:02 +03:00
Kirill Rakhman
1fccf8f539 Intention "Specify type explicitly" should offer all bounds for platform types #KT-12633 Fixed
(cherry picked from commit 68df8c5)
2016-11-28 11:40:32 +03:00
shiraji
904060d6a5 KT-14890 Fix the problem with RemoveEmptyClassBodyIntention for nested class followed by a secondary constructor
#KT-14890 Fixed

(cherry picked from commit ba92dcb)
2016-11-28 11:11:27 +03:00
Natalia Ukhorskaya
126475e4ff Debugger: cannot call member extension in an object in Evaluate Expression
#KT-14822 Fixed
2016-11-26 00:41:11 +03:00
Dmitry Jemerov
6fc4c56c38 add Gradle wrapper to project
(cherry picked from commit 3d3c3b9)

(cherry picked from commit 944766f)
2016-11-25 19:52:34 +03:00
Ilya Chernikov
902b877119 Sort plugin artifacts before upload to publish AS ones after IDEA ones 2016-11-25 19:08:44 +03:00
Nikolay Krasko
b524193ea9 Make breakpoints work inside nameless function bodies in inline calls
(cherry picked from commit b007306740)
2016-11-25 18:23:50 +03:00
Nikolay Krasko
7d57abefa1 Fix breakpoints in secondary constructors
(cherry picked from commit 89ac89f0c6)
2016-11-25 18:23:48 +03:00
Yan Zhulanow
35c8c90400 Kapt3: Kapt3 fails on several top-level functions in one package (KT-14991) 2016-11-25 16:47:08 +03:00
Mikhail Glukhikh
2085365d9d Simplify boolean with constants intention supports now == (!=) true (false) cases #KT-13777 Fixed
(cherry picked from commit 2bb81e6)
2016-11-25 12:55:56 +03:00
Yan Zhulanow
27fffb728a 1.0.6 Changelog: fix wording, resort issues 2016-11-24 18:48:09 +03:00
Mikhail Glukhikh
a1d0916aca Changelog: 1.0.6 minor update 2016-11-24 17:57:42 +03:00
Mikhail Glukhikh
d8b4c0e0e2 Changelog: deleted feature from 1.1 only 2016-11-24 17:53:28 +03:00
Yan Zhulanow
91c872bed2 Update changelog for 1.0.6 2016-11-24 17:37:17 +03:00
Nikolay Krasko
4e43b69cd5 Filter out variables with null values (EA-87276)
(cherry picked from commit efeccd0929)
2016-11-24 17:31:12 +03:00
Yan Zhulanow
12e6ceb331 Kapt3: Close annotation processing ClassLoader (KT-9440) 2016-11-24 16:25:07 +03:00
Mikhail Glukhikh
61fe6076fb KT-13393 related: convert reference to lambda inspection (off by default) introduced
(cherry picked from commit 5c09e1c)
2016-11-24 16:06:51 +03:00
Mikhail Glukhikh
9d777fa001 Minor: rename in KtPsiFactory
(cherry picked from commit 9c75324)
2016-11-24 16:06:46 +03:00
Mikhail Glukhikh
c7834cf3f4 Convert reference to lambda intention introduced #KT-13393 Fixed
(cherry picked from commit b111d1b) (a bit rewritten due to non-existent bound references)
2016-11-24 16:06:18 +03:00
Mikhail Glukhikh
fb1c064197 Minor: typo fixed
(cherry picked from commit 27df76b)
2016-11-24 16:06:07 +03:00
Mikhail Glukhikh
c904384773 Redundant if inspection supports now assignments and just if (...) true else false #KT-13259 Fixed
(cherry picked from commit c6997a1)
2016-11-24 16:06:02 +03:00
Mikhail Glukhikh
a9e5339676 VarianceChecker: correct handing of nested classes and their methods #KT-14733 Fixed
(cherry picked from commit 14787e3) (slightly modified)
2016-11-24 16:05:43 +03:00
Sergey Mashkov
56438c6d78 IDL2K: regenerate stubs 2016-11-24 15:10:00 +03:00
Sergey Mashkov
257ea9eeed IDL2K: consider attribute ignores (from config.kt) before merge 2016-11-24 15:10:00 +03:00
Sergey Mashkov
cdaed80991 IDL2K: render dictionaries as interfaces, always use nullable types 2016-11-24 15:10:00 +03:00
Sergey Mashkov
7568e5428b Update tests expected files 2016-11-24 15:09:59 +03:00
Sergey Mashkov
008689ba05 Upgrade example 2016-11-24 15:09:59 +03:00
Sergey Mashkov
04d428d83c IDL2K: generate declarations for partial interfaces 2016-11-24 15:09:59 +03:00
Sergey Mashkov
5fbde357c5 IDL2K: manually fix SVGUseElementShadowRoot due to error in the SVG 2 specification 2016-11-24 15:09:59 +03:00
Sergey Mashkov
5bb487c0ca IDL2K: rename trait to interface, render NoInterfaceObject as native interface 2016-11-24 15:09:59 +03:00
Sergey Mashkov
f84a84daa1 IDL2K: update downloaded IDLs 2016-11-24 15:09:59 +03:00
Sergey Mashkov
d46c9c76aa IDL2K: better logging 2016-11-24 15:09:59 +03:00
Sergey Mashkov
7daa4b480c IDL2K: better property duplicates handling, better reserved words handling 2016-11-24 15:09:59 +03:00
Sergey Mashkov
ef27b5cae4 IDL2K: map array literal 2016-11-24 15:09:59 +03:00
Sergey Mashkov
ed3f9624d8 IDL2K: remove dfn-panel class during IDL extraction 2016-11-24 15:09:59 +03:00
Sergey Mashkov
22d1824bc0 IDL2K: update download urls 2016-11-24 15:09:59 +03:00
Sergey Mashkov
30ade56e51 IDL2K: fix grammar for better generic types supprt 2016-11-24 15:09:58 +03:00
Sergey Mashkov
9ab4788fbe IDL2K: upgrade antlr 2016-11-24 15:09:58 +03:00
Alexey Andreev
bf6310fba0 JS: when possible, treat WebIDL interfaces as abstract classes, not interfaces 2016-11-24 15:09:05 +03:00
Mikhail Glukhikh
9d9f0d66d8 Revert: remove single lambda parameter fix was removed from 1.0.x branch (because UNUSED_PARAMETER is not reported for lambda parameters) 2016-11-24 13:27:17 +03:00
Dmitry Jemerov
ecf114cf7b Workaround for Android databinding issue: apply extra scope filtering to classes returned from getClassesByName() (part of EA-75803 assert: ResolverForProjectImpl.descriptorForModule)
(cherry picked from commit 7f80a1f)
2016-11-24 11:18:16 +01:00
Dmitry Jemerov
2cb6209542 Don't throw exception when resolving out-of-content-root PSI elements to descriptors (EA-92177 assert: ResolverForProjectImpl.descriptorForModule)
(cherry picked from commit 1570886)
2016-11-24 11:18:12 +01:00
Dmitry Jemerov
2298978148 Implement KtLightTypeParameter.isEquivalentTo() without referencing delegate (this is faster and more correct)
(cherry picked from commit 7637820)
2016-11-24 11:18:11 +01:00
Dmitry Jemerov
92e286776b Provide toString() for classes that extend GlobalSearchScope (to diagnose package fragment errors)
(cherry picked from commit 956e1c7)
2016-11-24 11:18:04 +01:00
Dmitry Jemerov
cbeac625a9 KtFile.getPackageFqNameByTree() never tries to access stub (EA-82168)
(cherry picked from commit 32be194)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
390d538176 Retrieve virtual file for PsiFile via FileViewProvider, which always has a non-null vFile (EA-89047 - assert: LightClassDataProvider.getRepresentativeVirtualFile)
(cherry picked from commit c56a72d)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
71c6d52a53 Include exception in report, not only log it (EA-90231 - assert: ClsJavaStubByVirtualFileCache.createStub)
(cherry picked from commit ebbbe1b)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
3354e45a51 Don't store PsiElement in LocalQuickFix instance (EA-90970 - PIEAE: PsiInvalidElementAccessException.createByNode)
(cherry picked from commit 58d725d)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
9f3df0f4d0 More diagnostics for EA-85926 and EA-77163
(cherry picked from commit f9f590d)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
349ea062aa Restore element after running postprocess (EA-91562 - PIEAE: ASTDelegatePsiElement.getManager)
(cherry picked from commit 2d2f439)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
e4f36297e1 A facade light class inherits only java.lang.Object (EA-91597 - NPE: KtLightClassForFacade.getClsDelegate)
(cherry picked from commit d803831)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
80725204a6 Handle INRE in breadcrumbs tooltip calculation (EA-91631 - INRE: FileBasedIndexImpl.handleDumbMode)
(cherry picked from commit b696f9e)
2016-11-24 11:13:32 +01:00
Dmitry Jemerov
c1e181c77e Use ModalityState.NON_MODAL for invokeLater() actions (EA-91730 - assert: PsiModificationTrackerImpl.fireEvent)
(cherry picked from commit 56cb448)
2016-11-24 11:13:32 +01:00
Alexey Sedunov
15ed0f41ee Minor: Fix testdata after rebase 2016-11-24 11:09:27 +03:00
Alexey Sedunov
427865d221 Minor: Fix compilation after rebase 2016-11-24 11:09:26 +03:00
Alexey Sedunov
e4390346b4 Kotlin Facet: Access Gradle files under read action (fixes failure of GradleInspectionTest)
(cherry picked from commit 3eea735)
2016-11-24 11:09:25 +03:00
Alexey Sedunov
93c129b0e8 Minor: Use mutable empty list (as IDEA may attempt to modify it after calling detector)
(cherry picked from commit 6881d07)
2016-11-24 11:09:24 +03:00
Alexey Sedunov
e09c0a1dbe Kotlin Facet: Configure facet automatically on Gradle project import
(cherry picked from commit 075a0bc)
2016-11-24 11:09:23 +03:00
Alexey Sedunov
4d89d42c0c Kotlin Facet: Configure facet automatically on Maven project import
(cherry picked from commit e59754e)
2016-11-24 11:09:22 +03:00
Alexey Sedunov
352efae074 Kotlin Facet: Implement automatic facet configuration
(cherry picked from commit dc33436)
2016-11-24 11:09:22 +03:00
Alexey Sedunov
41f8748aca Kotlin Facet: Track configuration version
(cherry picked from commit 4613eed)
2016-11-24 11:09:21 +03:00
Alexey Sedunov
ae2ba12eb7 Kotlin Facet: Infer 1.6 platform version for modules with JDK 1.7 dependency
#KT-14741 Fixed
(cherry picked from commit 27aaac5)
2016-11-24 11:09:20 +03:00
Alexey Sedunov
46c728f0a3 Kotlin Facet: Fix platform detection for Gradle project
(cherry picked from commit b1fbf9f)
2016-11-24 11:09:19 +03:00
Alexey Sedunov
657c2aeff4 Create from Usage: Add test for KT-14500
(cherry picked from commit 2ff8e92)
2016-11-24 11:09:18 +03:00
Alexey Sedunov
be49dab704 Control-Flow Analysis: Use PSI to generate pseudocode if nested resolved call is confused with outer one (e.g. a {} when invoke() is missing)
#KT-14500 Fixed
(cherry picked from commit a414843)
2016-11-24 11:09:17 +03:00
Alexey Sedunov
88e7df1549 Create from Usage: Support array access expressions/binary expressions with type mismatch errors
#KT-14501 Fixed
(cherry picked from commit e8b5387)
2016-11-24 11:09:16 +03:00
Alexey Sedunov
4b476a6729 Control-Flow Analysis: Do not skip pseudocode for value arguments if they are matched with errors
(cherry picked from commit 0159ddb)
2016-11-24 11:09:15 +03:00
Alexey Sedunov
79bfa84b0f Quick Fixes: Replace strong references to PSI elements with smart pointers
#KT-14552 Fixed
(cherry picked from commit df38c70)
2016-11-24 11:09:15 +03:00
Alexey Sedunov
231f8e3f58 Change Signature: Use new signature when looking for redeclaration conflicts
#KT-14583 Fixed
(cherry picked from commit 8ceeff0)
2016-11-24 11:09:13 +03:00
Alexey Sedunov
5bfb817895 Convert Property to Function Intention: Search occurrences using progress dialog
#KT-14569 Fixed
(cherry picked from commit f4e8242)
2016-11-24 11:09:12 +03:00
Alexey Sedunov
2246dcbe16 Kotlin Facet: Use facet configuration to provide language version for IDE analyzer
(cherry picked from commit 30d08c9)
2016-11-24 11:09:11 +03:00
Alexey Sedunov
a8a1e08bed Kotlin Facet: Use facet configuration in JPS build
(cherry picked from commit 6dd950c)
2016-11-24 11:09:10 +03:00
Alexey Sedunov
679ab06dbc Kotlin Facet: Get rid of copy constructors for compiler arguments/settings and use reflection-based copying instead
(cherry picked from commit d0de9dd)
2016-11-24 11:09:10 +03:00
Alexey Sedunov
2903db3de1 Kotlin Facet: Reuse JvmTarget and LanguageVersion in facet configuration
(cherry picked from commit a2948a6)
2016-11-24 11:09:09 +03:00
Alexey Sedunov
eb71c6f865 Convert to Kotlin: Compiler arguments/settings JPS serializers
(cherry picked from commit b6de7d3)
2016-11-24 11:09:08 +03:00
Alexey Sedunov
43ae0ec0fe Convert to Kotlin: Compiler arguments/settings JPS serializers (rename to .kt)
(cherry picked from commit 9e4fcf9)
2016-11-24 11:09:07 +03:00
Alexey Sedunov
da99516088 Convert to Kotlin: JpsKotlinCompilerSettings.java
(cherry picked from commit b88573e)
2016-11-24 11:09:06 +03:00
Alexey Sedunov
7247dbe34f Convert to Kotlin: JpsKotlinCompilerSettings.java (rename to .kt)
(cherry picked from commit 7cb2f04)
2016-11-24 11:09:05 +03:00
Alexey Sedunov
8a623d3e3a Refactoring: Move facet configuration classes to idea-jps-common module
(cherry picked from commit a6dbdbd)
2016-11-24 11:09:04 +03:00
Alexey Sedunov
c996b32ba9 Kotlin Facet: Validate dialog on language/API version change
(cherry picked from commit 68e293b)
2016-11-24 11:09:04 +03:00
Alexey Sedunov
331b4a8d0f Introduce Type Parameter: Disable shortcut (to avoid interference with IntelliJ API Watcher plugin)
(cherry picked from commit 416569c)
2016-11-24 11:09:03 +03:00
Alexey Sedunov
c0587bc5f5 Kotlin Facet: Fix serialization/deserialization
(cherry picked from commit dc9c988)
2016-11-24 11:09:02 +03:00
Alexey Sedunov
e707d83039 Kotlin Facet: Refactor TargetPlatform to sealed class. Move settings-related classes to top level
(cherry picked from commit 3fcdda2)
2016-11-24 11:09:01 +03:00
Alexey Sedunov
34eb3b37a4 Kotlin Facet: Add compiler settings to facet configuration
(cherry picked from commit ea13456)
2016-11-24 11:09:00 +03:00
Alexey Sedunov
53fa814204 Kotlin Facet: Add extension point for compiler/stdlib version info with implementations for Maven and Gradle project models
(cherry picked from commit 03f4d9f)
2016-11-24 11:08:59 +03:00
Alexey Sedunov
230d39360d Kotlin Facet: Extract VersionInfo class and getVersionInfo() utility function
(cherry picked from commit e0285b9)
2016-11-24 11:08:58 +03:00
Alexey Sedunov
878009acc9 Kotlin Facet: Add API version setting
(cherry picked from commit 37286d5)
2016-11-24 11:08:57 +03:00
Alexey Sedunov
6b8448fc29 Kotlin Facet: Add custom settings and configuration extension point
(cherry picked from commit 2326e3e)
2016-11-24 11:08:57 +03:00
Alexey Sedunov
94cf99b8d0 Kotlin Facet: Initial implementation 2016-11-24 11:08:56 +03:00
Ilya Gorbunov
1db1212db0 Fix the links to the language docs from JvmStatic and JvmName annotations. Add a link from JvmField annotation.
#KT-14953 Fixed

(cherry picked from commit 03bbe87)
2016-11-23 23:42:22 +03:00
Vyacheslav Gerasimov
47ef240bc1 Fixed testOnDestroyFragment
(cherry picked from commit 663d999)
2016-11-23 23:32:01 +03:00
Ilya Gorbunov
9d7653d4c8 Use InputStream as another guess for estimated size in InputStream.readBytes()
(cherry picked from commit 0eba064)
2016-11-23 18:57:47 +03:00
Ilya Gorbunov
7edf4a1b5c Check that the length of a file can be represented as Int.
(cherry picked from commit e41cbe6)
2016-11-23 18:57:47 +03:00
Ilya Gorbunov
4fbff58c02 Performance: use byte array buffer directly to read the entire contents of a file.
#KT-14883 Fixed

(cherry picked from commit c90ee13)
2016-11-23 18:57:47 +03:00
Vyacheslav Gerasimov
de227f2d24 Added ACC_SYNTHETIC flag to generated by kotlin Android extensions onDestroyView method
#KT-14610 Fixed

(cherry picked from commit da87efe)
2016-11-23 18:35:05 +03:00
Ilya Gorbunov
8b95b43ad9 Make tools.jar system dependency, since classpath property is readonly. 2016-11-23 18:34:00 +03:00
Nikolay Krasko
a1ccad21cd Make breakpoints work in local functions in secondary constructors
(cherry picked from commit 60e3c8eecd)
2016-11-23 17:59:25 +03:00
Nikolay Krasko
4337e1679b Fix breakpoints in function literals in inline calls (KT-11521, KT-12734, KT-12470)
#KT-11521 Fixed
 #KT-12734 Fixed
 #KT-12470 Fixed

(cherry picked from commit 1889f4f7b1)
2016-11-23 17:59:24 +03:00
Nikolay Krasko
8328125733 Test breakpoint is hit inside crossinline lambda called from anonymous object (KT-12612)
#KT-12612 Fixed

(cherry picked from commit 59a349a4ae)
2016-11-23 17:59:22 +03:00
Yan Zhulanow
8204937289 Minor: Fix testDeprecatedJvmOverloads test (Kotlin runtime is not enabled by default now in bytecode listing tests) 2016-11-23 17:17:15 +03:00
Yan Zhulanow
3907724e90 Kapt3, Minor: Add tools.jar to kotlin-annotation-processing classpath (Maven) 2016-11-23 15:56:03 +03:00
Yan Zhulanow
dbd2007dde Minor: Update tests for light analysis mode (rebase) 2016-11-22 23:38:32 +03:00
Yan Zhulanow
6bd03c3e62 Kapt3: Fix literal expressions for byte and short 2016-11-22 23:38:31 +03:00
Yan Zhulanow
6fcbd35bb4 Kapt3: Add tests for primitive values and NonExistentClass 2016-11-22 23:38:30 +03:00
Yan Zhulanow
9d3f48e64e Kapt3: Generate stub for error.NonExistentClass to make javac happy 2016-11-22 23:38:29 +03:00
Yan Zhulanow
5d10569cf8 Minor: Rebase to 1.0.6, re-generate tests 2016-11-22 23:38:28 +03:00
Yan Zhulanow
ba7e22856a Kapt3: Add 'useLightAnalysis' option to compiler and Gradle plugins 2016-11-22 23:38:27 +03:00
Yan Zhulanow
2506c04cdb Kapt3: Add friend paths to kapt tasks 2016-11-22 23:38:26 +03:00
Yan Zhulanow
12b2716127 Kapt3: Minor: Changes on review 2016-11-22 23:38:25 +03:00
Yan Zhulanow
ffec71aa52 Kapt3: Extract annotation processing to its own task in Gradle. Now the kotlinCompile task should know nothing about kapt, for the main task it's just a regular Java source root. 2016-11-22 23:38:24 +03:00
Yan Zhulanow
a6e60f5f6f Enable light class analysis mode for AbstractLightAnalysisModeCodegenTest. See also the previous commit.
Note that no test data files are changed, it means that light classes with the light analysis mode enabled are the same as with the full analysis.
2016-11-22 23:38:23 +03:00
Yan Zhulanow
bbd24945fa Use box tests to check if the light analysis mode (without analyzing bodies when possible) produces the same result as the complete analysis. See also the next commit in which light analysis mode is applied. Note that no tests were changed. 2016-11-22 23:38:22 +03:00
Yan Zhulanow
6552b2b893 Fix @JvmMultifileClass in ClassBuilderMode=LIGHT_CLASSES 2016-11-22 23:38:21 +03:00
Yan Zhulanow
2d18cfbd35 Kapt3: Support processor arguments. Add integration tests. 2016-11-22 23:38:20 +03:00
Yan Zhulanow
13306ae191 Kapt3: Do not resolve declaration bodies if possible in kapt 2016-11-22 23:38:19 +03:00
Yan Zhulanow
1f409e782a Allow to avoid declaration body resolution for function and property initializers if the return type is explicitly specified. This significantly reduces the analysis time in kapt3. 2016-11-22 23:38:18 +03:00
Yan Zhulanow
8b6b1a9c0a Kapt3: Use annotation simple name if the annotation declaration is inside the same package as the current source file's package 2016-11-22 23:38:17 +03:00
Yan Zhulanow
6ee143ceca Kapt3: Fix a number of errors in ClassFileToSourceStubConverter:
1. Support strictfp modifier for methods.
2. Support Kotlin top-level methods and properties.
3. Fix visibility modifiers on enum methods.
2016-11-22 23:38:16 +03:00
Yan Zhulanow
8edba094ca Kapt3: Review fixes 2016-11-22 23:38:15 +03:00
Yan Zhulanow
d07917fc1c Minor: Add 'impls' to dictionary 2016-11-22 23:38:14 +03:00
Yan Zhulanow
406b6309d9 Kapt3: Minor: Refactor kapt3 module (move/rename) 2016-11-22 23:38:13 +03:00
Yan Zhulanow
40ff3ec384 Kapt3: Minor: Annotation processor classes may be initialized only once, so SIMPLE_PROCESSOR became a factory method 2016-11-22 23:38:12 +03:00
Yan Zhulanow
b1a00b03d0 Kapt3: Minor: Measure stub generation time 2016-11-22 23:38:11 +03:00
Yan Zhulanow
e50f14f459 Kapt3: Output stubs to .java files in verbose mode 2016-11-22 23:38:10 +03:00
Yan Zhulanow
67a50ff9e9 Kapt3: Run Javac annotation processing in the kapt3 plugin.
There are two modes:
1. Run only annotation processing (like kapt1 with stubs + javac). Seems that it may be faster to process annotations once before Kotlin compilation than launching AP on each IC round.
2. Run AP, repeat analysis and compile Kotlin classes (like kapt2). This mode doesn't support IC for now.
2016-11-22 23:38:10 +03:00
Yan Zhulanow
9f4e7b897f Kapt3: Replace kapt2 in Ant and Maven artifacts with kapt3 2016-11-22 23:38:09 +03:00
Yan Zhulanow
cf8843ea9e Kapt3: Add simple AP test with Kotlin 2016-11-22 23:38:08 +03:00
Yan Zhulanow
eabfba922b Kapt3: Parse generic signatures of methods and fields 2016-11-22 23:38:07 +03:00
Yan Zhulanow
fbc4e2ad0c Kapt3: Parse generic signatures of classes.
Refactoring (move TreeMaker helper functions to KaptTreeMaker, mapValues() and others to utils.kt).
2016-11-22 23:38:06 +03:00
Yan Zhulanow
64ab512f62 Kapt3: Number of bugfixes in JCTreeConverter:
Convert Java primitive and array types properly.
Enums: ignore first two synthetic constructor parameters, do not generate super class constructor call, add ACC_ENUM flag to enum values, do not generate "values" and "valueOf" methods.
Provide a JavaFileObject for JCCompilationUnit.
Handle DefaultImpls, ignore empty DefaultImpls classes.
Use a name table from Javac Names.
2016-11-22 23:38:05 +03:00
Yan Zhulanow
95dc898f6e Kapt3: Put static modifiers on nested non-inner classes.
Do not initialize synthetic and static fields in constructor.
2016-11-22 23:38:04 +03:00
Yan Zhulanow
05800c65d0 Kapt3: Do not generate body for abstract methods.
Add java.lang.Override annotation for overrides.
Ignore java.lang.Synthetic annotation.
2016-11-22 23:38:03 +03:00
Yan Zhulanow
0fb08351db Kapt3: Call super class constructor with some default parameters.
Allow interface, annotation, enum modifiers on class.
2016-11-22 23:38:02 +03:00
Yan Zhulanow
28687a0bf0 Do not create local variables in an abstract class inside OptimizationMethodVisitor, MethodNode forbids this. 2016-11-22 23:38:01 +03:00
Yan Zhulanow
72bccb2608 Kapt3: Initialize final fields in class constructors 2016-11-22 23:38:00 +03:00
Yan Zhulanow
69560ef5be Kapt3: Generate empty body for constructor and void methods 2016-11-22 23:37:59 +03:00
Yan Zhulanow
18bfbd217d Kapt3: Filter only relevant modifiers 2016-11-22 23:37:58 +03:00
Yan Zhulanow
31de9edee4 Kapt3: Initial implementation of JCTreeConverter 2016-11-22 23:37:57 +03:00
Yan Zhulanow
e1b6b3e047 Kapt3: Visit method parameters in Kapt3 class builder mode 2016-11-22 23:37:57 +03:00
Yan Zhulanow
2fcdff9965 Kapt3: Add kapt3 compiler plugin 2016-11-22 23:37:56 +03:00
Yan Zhulanow
d6ca962c06 Kapt3: Replace "my/package/Class$Inner" to "my/package/Class/Inner" in kapt3 class builder mode 2016-11-22 23:37:55 +03:00
Yan Zhulanow
4e7efc4636 Kapt3: Handle exceptions while annotation processing gracefully 2016-11-22 23:37:54 +03:00
Yan Zhulanow
bc7260cc98 Kapt3: Add Kapt runner 2016-11-22 23:37:53 +03:00
Alexey Tsvetkov
f16ae1d014 Minor: fix test data
dummy.kt was added for Gradle test (it does not start otherwise).
Old IC recompiles this file, so new and old IC logs are different.
2016-11-22 23:34:24 +03:00
Dmitry Jemerov
f5f4a70b47 Correctly cherry-pick the fix for KT-12664 2016-11-22 20:23:24 +01:00
Dmitry Jemerov
864a9f709e fix testdata 2016-11-22 20:15:45 +01:00
Yan Zhulanow
e415e1f805 Update TeamCity version for "Compiler and Plugin" configuration 2016-11-22 22:06:50 +03:00
Yan Zhulanow
a3383f2e3f Update changelog for 1.0.6 2016-11-22 21:59:08 +03:00
Mikhail Glukhikh
0573429c0f Enhancement for "join declaration and assignment": now can handle also local variables, relevant inspection added #KT-12095 Fixed
(cherry picked from commit 45e28be)
2016-11-22 16:44:55 +03:00
Mikhail Glukhikh
50194e3e10 Refactoring: MoveAssignmentToInitializer --> JoinDeclarationAndAssignment
(cherry picked from commit c44ecde)
2016-11-22 16:43:51 +03:00
Mikhail Glukhikh
5088bfe58b Convert primary constructor to secondary: KNPE fixed #KT-14745 Fixed
(cherry picked from commit d4995c0)
2016-11-22 16:38:09 +03:00
Dmitry Jemerov
bc0ae30951 Add test for highlighting escape sequences in character literals
(cherry picked from commit 13b2c2c)
2016-11-22 13:39:09 +01:00
Dmitry Jemerov
0778af84e3 Show enum constants in Goto Symbol
#KT-6535 Fixed

(cherry picked from commit d565e18)
2016-11-22 13:39:02 +01:00
Dmitry Jemerov
782fba8d5d Delete paired > after deleting < after any identifier, not just a class-like one
#KT-13279 Fixed

(cherry picked from commit ab8abc9)
2016-11-22 13:29:45 +01:00
Dmitry Jemerov
4b0bf5efbc Highlight escape sequences in character literals
#KT-13795 Fixed

(cherry picked from commit baf321a)
2016-11-22 13:28:10 +01:00
Dmitry Jemerov
a09ee6f91b Fix quote handler for character literals
#KT-12385 Fixed

(cherry picked from commit 2fe2e18)
2016-11-22 13:27:46 +01:00
Dmitry Jemerov
55c111d3bb Implement "Show non-public" filter for Kotlin structure view
#KT-14217 Fixed

(cherry picked from commit b742c8a)
2016-11-22 13:27:06 +01:00
Dmitry Jemerov
d33a38cbce KotlinStructureViewModel: cleanup after J2K
(cherry picked from commit f586eeb)
2016-11-22 13:26:57 +01:00
Dmitry Jemerov
bd69d72c67 KotlinStructureViewModel: J2K
(cherry picked from commit 4b591bf)
2016-11-22 13:26:50 +01:00
Dmitry Jemerov
4a2ac59577 KotlinStructureViewModel: rename to .kt
(cherry picked from commit bf97e64)
2016-11-22 13:26:44 +01:00
Dmitry Jemerov
eec91d5792 Collect local declarations under properties (KT-14215); improve presentation of object declarations
#KT-14215 Fixed

(cherry picked from commit f4ce63f)
2016-11-22 13:26:04 +01:00
Dmitry Jemerov
ac137cbce4 KotlinStructureElementPresentation: cleanup after J2K
(cherry picked from commit 4507702)
2016-11-22 13:25:57 +01:00
Dmitry Jemerov
92ddc2b249 KotlinStructureElementPresentation: J2K
(cherry picked from commit 75a5b0e)
2016-11-22 13:25:47 +01:00
Dmitry Jemerov
45a5c97e47 KotlinStructureElementPresentation: rename to .kt
(cherry picked from commit 6225867)
2016-11-22 13:25:39 +01:00
Dmitry Jemerov
8d98cd3ada Run configuration producer for Gradle tests (KT-10700)
(cherry picked from commit 4cc6b98)
2016-11-22 13:19:39 +01:00
Vyacheslav Gerasimov
14bf70cd89 Implemented suppress lint intention action for android lint (KT-12020)
#KT-12020 Fixed

(cherry picked from commit 60bc35b)
2016-11-22 13:16:47 +03:00
Dmitry Jemerov
efb8e615d7 Never set isScript flag for stubs of file facade and multifile facade classes (scripts are always generated with ClassKind.CLASS)
(cherry picked from commit 99bfbd0)
2016-11-22 10:27:15 +01:00
Dmitry Jemerov
62e4bb361a Don't add script files to facade indices
#KT-12445 Fixed

(cherry picked from commit 6a8f78d7c1)

# Conflicts:
#	idea/tests/org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt
2016-11-21 14:46:16 +01:00
Alexey Andreev
ded8135150 JS: when deciding whether inner class of a local class captures this, don't check for subtyping, since frontend generates strict classes in descriptors. Remove fix for #KT-13583, since it's no more needed. Fix #KT-13792 2016-11-21 13:22:49 +03:00
Alexey Andreev
fe84e03d8b KT-12976: add code to generated JS modules that detects wrong module order and produces human-friendly error message. Fix #KT-12976 2016-11-21 13:01:46 +03:00
Ilya Gorbunov
3274c81c8d @JvmOverloads-generated overloads of final methods are also final: update public API tests.
(cherry picked from commit b7b320e)
2016-11-19 03:45:26 +03:00
Alexey Tsvetkov
d72b0b6eb3 Minor: add Throws(Exception) to avoid override issues in java 2016-11-18 23:25:56 +03:00
Alexey Tsvetkov
ab7932cf50 Ensure jps caches are always cleared in tests 2016-11-18 23:25:49 +03:00
Yan Zhulanow
52197f31f4 Use Uast as an external dependency from Bintray 2016-11-18 16:31:50 +03:00
Dmitry Jemerov
6eaa08030f Don't consider a directory to be a package if there's a .java or .class file with the same name in its parent directory
#KT-12664 Fixed

(cherry picked from commit 5a533a5)
2016-11-18 14:03:08 +01:00
Dmitry Jemerov
f5ec194489 @JvmOverloads-generated overloads of final methods are also final; test to verify that overloads of deprecated methods are deprecated
(cherry picked from commit a57748f)
2016-11-18 11:18:16 +01:00
Dmitry Jemerov
11066a385e Disallow @JvmOverloads on any interface methods
#KT-12224 Fixed

(cherry picked from commit b8525de)
2016-11-18 11:18:15 +01:00
Dmitry Jemerov
934e30c1bc @JvmOverloads on local declarations is now an error
(cherry picked from commit 79e90b3)
2016-11-18 11:18:15 +01:00
Dmitry Jemerov
b8a5f60afd Add quickfix for incorrect @JvmOverloads annotation
#KT-12701 Fixed

(cherry picked from commit 140c735)
2016-11-18 11:18:14 +01:00
Dmitry Jemerov
cad53c1246 Report @JvmOverloads errors on annotation, not on entire declaration (KT-12701)
(cherry picked from commit 12e4cf9)
2016-11-18 11:18:09 +01:00
Dmitry Jemerov
e8424982b7 Generate correct varargs flag for @JvmOverloads-generated methods
#KT-14186 Fixed

(cherry picked from commit d3ccbe8)
2016-11-18 11:18:08 +01:00
Dmitry Jemerov
95cb6dd09f Generate default constructor also for private classes when all parameters have default values
#KT-14408 Fixed

(cherry picked from commit 16a133b)
2016-11-18 11:18:08 +01:00
Dmitry Jemerov
c1320a3f3e Handle @JvmOverloads on inner class constructors correctly
#KT-14678 Fixed

(cherry picked from commit 2481859)
2016-11-18 11:18:01 +01:00
Mikhail Zarechenskiy
237d830f39 Do not force resolve from type constructor
In case of creating context for something like 'class Foo(f: Bar)'
there is no need in resolving supertypes/annotations of Bar type
2016-11-17 20:35:30 +03:00
Nikolay Krasko
ec29ba29d3 Fix null pointer in evaluate expression (EA-87276)
(cherry picked from commit 56ef09c09c)
2016-11-17 14:59:23 +03:00
Nikolay Krasko
b024ba8760 Better diagnostic for inlined line under dex on step over
(cherry picked from commit 6f95667f54)
2016-11-17 14:09:49 +03:00
Nikolay Krasko
6b98501b3d Avoid failure on first() call
(cherry picked from commit 2817e1a5f1)
2016-11-17 14:09:48 +03:00
Nikolay Krasko
263739edc1 Pre-count line numbers
(cherry picked from commit 5412723e023768d308190f43edd5378476ad35c4)
(cherry picked from commit a13e878c9b)
2016-11-17 14:09:46 +03:00
Nikolay Krasko
45245b445e Step over locations after return in dex debug when no return position found by locations
(cherry picked from commit 0032818ec6)
2016-11-17 14:09:44 +03:00
Nikolay Krasko
2b4b7f18ca Step over locations after return in dex debug
(cherry picked from commit a2652832e3)
2016-11-17 14:09:43 +03:00
Nikolay Krasko
326b7ef712 Refactorings: clean smapUtil, moves, renames
(cherry picked from commit f07b5ea)
2016-11-17 14:09:41 +03:00
Nikolay Krasko
28ddd39a40 Cache debug information from bytecode in Android debug
(cherry picked from commit 1c955a6)
2016-11-17 14:09:40 +03:00
Nikolay Krasko
293ad0981c Allow to place breakpoints in inline functions defined in android tests
(cherry picked from commit 78c76a2ca4)
2016-11-17 14:09:38 +03:00
Nikolay Krasko
8a372c4bb6 Refactoring: remove lambda parameter from readClassFile()
(cherry picked from commit ae2e857843)
2016-11-17 14:09:37 +03:00
Nikolay Krasko
797ba92a3a Fix step over for inlined functions in Android Studio (KT-14374)
(cherry picked from commit 623ee316c0)

 #KT-14374 Fixed
2016-11-17 14:09:25 +03:00
Nikolay Krasko
0cdca7acfb Fail if it was impossible to delete cache directory
For example it can be caused by open handler to file on Windows.

(cherry picked from commit f87779bfb0)
2016-11-17 14:07:19 +03:00
Alexey Andreev
d250eb8097 JS: when both clauses of if become empty during optimization, remove if entirely. Make condition and then clause of JsIf non-nullable. Fix #KT-13912 2016-11-17 12:56:10 +03:00
Vyacheslav Gerasimov
a3187902fd Fixed "should not analyze element" problem with destructuring declarations in uast
(cherry picked from commit c6d668e)
2016-11-16 18:15:38 +03:00
Vyacheslav Gerasimov
57bd323de2 Fixed method parameter default value processing in uast
(cherry picked from commit 55f14ba)
2016-11-16 18:15:30 +03:00
Vyacheslav Gerasimov
33a9e3dd9e Fixed KotlinLintTestGenerated.testJavaPerformance + refactoring
Moved android lint tests from uast-kotlin to idea-android

(cherry picked from commit d90ec3e)
2016-11-16 18:15:23 +03:00
Natalia Ukhorskaya
0912b6ee71 Debugger: refactor smart step into to use descriptors instead of psi elements (KT-13485)
#KT-13485 Fixed

(cherry picked from commit 0fb5a18a26)
2016-11-16 15:25:07 +03:00
Mikhail Glukhikh
fd2d706164 Replace single line let: application on IDEA + front-end modules
(cherry picked from commit b850d71)
2016-11-16 15:19:34 +03:00
Mikhail Glukhikh
0db9c371b3 False positive removed in replace single line let intention #KT-14791 Fixed
(cherry picked from commit 09ae1f1)
2016-11-16 15:19:20 +03:00
Dmitry Jemerov
3a6c67303d Fix exception on databinding-generated classes in AS 2.3 (https://ea.jetbrains.com/browser/ea_reports/1261189)
(cherry picked from commit 53cb559)

(cherry picked from commit 2d1a380)
2016-11-15 13:04:32 +01:00
Nikolay Krasko
b13b654c28 Make patch of obfuscated field in ThreadTracker more stable
(cherry picked from commit bce023c8ad)
2016-11-14 21:39:53 +03:00
Dmitry Jemerov
09a97d9faf Read bundled runtime version from build.txt in 'kotlinc' directory, not from plugin version
(cherry picked from commit 7beee33)
2016-11-14 18:54:29 +01:00
Dmitry Jemerov
ba63ff870e Fix race condition with synthetic files facade calculation in Upsource (UP-8046)
(cherry picked from commit 3f7b974)
2016-11-14 14:21:33 +01:00
Nikolay Krasko
506bce65b6 Test for "Code folding doesn't work in kotlin lambdas after some declatation" (KT-14411)
Fixed in previous commit

 #KT-14411 Fixed

(cherry picked from commit e053b77ede)
2016-11-14 15:12:08 +03:00
Nikolay Krasko
165d018829 Assign trailing and preceding whitespaces to lambda block until the last comment in parser
(cherry picked from commit 08d6285)
2016-11-14 15:12:07 +03:00
Nikolay Krasko
1f491869c0 Report file name for getDefaultPlatform() information
(cherry picked from commit 0261385681)
2016-11-14 15:12:05 +03:00
Alexey Tsvetkov
f1d122d95b Revert default value for "main" parameter for Gradle JS plugin to "call"
#KT-14724 fixed
2016-11-11 20:31:06 +03:00
Dmitry Jemerov
e893cf46e1 Update proguard file for compatibility with new Snappy version in IDEA 162-SNAPSHOT
(cherry picked from commit ab0af43)
2016-11-11 18:22:09 +01:00
Dmitry Jemerov
2d40743d69 Add test for KT-14751
(cherry picked from commit 978b70e)
2016-11-11 18:22:02 +01:00
Dmitry Jemerov
9bc19989dd Use 162.SNAPSHOT builds for IDEA to pick up fix for IDEA-162379
(cherry picked from commit 13a17b8)
2016-11-11 18:21:08 +01:00
Dmitry Jemerov
42900b5555 KotlinWithGradleConfigurator: cleanup after J2K
(cherry picked from commit 3d3a202)
2016-11-11 14:42:20 +01:00
Dmitry Jemerov
4f4eafa8fa KotlinWithGradleConfigurator: J2K
(cherry picked from commit 47c80a1)
2016-11-11 14:42:11 +01:00
Dmitry Jemerov
3aa8cd1eef KotlinWithGradleConfigurator: rename to .kt
(cherry picked from commit 11c9dff)
2016-11-11 14:41:25 +01:00
Dmitry Jemerov
f5b502040b use DOM instead of MavenProjectsManager to detect whether Kotlin is configured (KT-9275)
(cherry picked from commit 3d01e92)
2016-11-11 14:41:18 +01:00
Dmitry Jemerov
32ca5e6ee7 Change KotlinProjectConfigurator API to return module status as a single enum instead of two distinct boolean values
(cherry picked from commit ebbf888)
2016-11-11 14:41:11 +01:00
Dmitry Jemerov
649b051656 KotlinProjectConfigurator: J2K
(cherry picked from commit d8c7f2f)
2016-11-11 14:41:04 +01:00
Dmitry Jemerov
89256f9c06 KotlinProjectConfigurator: rename to .kt
(cherry picked from commit 7d442f9)
2016-11-11 14:40:57 +01:00
Alexey Andreev
205d2a12b3 JS: fix diagnostics test data 2016-11-11 14:26:16 +03:00
Alexey Andreev
663d48c5e4 JS: fix exception in JS front-end when checking JsName that was resolved with errors 2016-11-11 11:20:39 +03:00
Dmitry Petrov
1c6f3b0282 KT-14581 Make FixStackAnalyzer tolerant to uninitialized values 2016-11-10 18:09:32 +03:00
shiraji
97dbda7bb6 Implement "Remove redundant '.let' call" binary operator support #KT-14396 Fixed
(cherry picked from commit a662d77)
2016-11-10 14:31:24 +03:00
Zalim Bashorov
5ba298e0cc Mute failed tests and regenerate tests 2016-11-10 14:14:40 +03:00
Zalim Bashorov
0b331de8b4 KJS: fix wrongAbiVersion test after abi version was increased. Make it less fragile with the hack for JS tests.
(cherry picked from commit bdecb66)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
9063ba39de Regenerate tests 2016-11-10 14:14:40 +03:00
Zalim Bashorov
4bd22f2cba Regenerate ultimate tests
(cherry picked from commit 4c8f5e4)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
63d77e2481 Regenerate tests 2016-11-10 14:14:40 +03:00
Zalim Bashorov
5a40d68059 Generate import TargetBackend for each test 2016-11-10 14:14:40 +03:00
Zalim Bashorov
3199f8b4cf Support ignoring by target backend for single generated classes
(cherry picked from commit 5500f80)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
0bc114359f Add ability to ignore test for backend w/o checks
It used for the tests from this commit becouse they was failing during setup.

(cherry picked from commit af4ec98)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
136446eb8c Fix failed tests
(cherry picked from commit a27572a)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
b60d07d511 Ignore files with incompatible target when check that all test are presented
(cherry picked from commit 8e480e2)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
34a8e74a51 Move TargetBackend to tests-common module
(cherry picked from commit 0ecb13b)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
e05afca3ba Don't generate test when target backend is not suitable
(cherry picked from commit a1730f9)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
4fc1d905ca Fail when ignored test success in generated tests
#KT-14618 Fixed

(cherry picked from commit f382f93)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
5eb58d7cb0 Break infinity loop in the test
(cherry picked from commit afe6ec9)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
0503eb622b Automatically mute failed generated tests from compiler/testData/codegen/box/ranges
(cherry picked from commit ee129be)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
276cb6935c Automatically mute failed tests
(cherry picked from commit 596f336)
2016-11-10 14:14:40 +03:00
Zalim Bashorov
7bbc3d4f31 KJS: run all codegen/box tests
(cherry picked from commit a35a1f6)
2016-11-10 14:14:40 +03:00
Mikhail Glukhikh
b5ca4810c5 Effective visibility is now considered private for invisible fake #KT-14469 Fixed
(cherry picked from commit ce72337)
2016-11-10 13:46:47 +03:00
Mikhail Zarechenskiy
bca9a3aeec Perform resolve of constructor parameters during partial constructor resove
#KT-13354 Fixed
2016-11-09 23:07:07 +03:00
Dmitry Jemerov
1bcdea2eda Script for uploading the Kotlin plugin to plugins.jetbrains.com
(cherry picked from commit 46b9136)
2016-11-09 14:13:21 +01:00
Simon Ogorodnik
e45cbe84af Fix for KT-14604 J2K Yet another floating point with exponent format
(cherry picked from commit 2be4800)
2016-11-08 12:16:03 +03:00
Simon Ogorodnik
6ca2753bb9 Fix for KT-14585 J2K, ConvertJavaCopyPasteProcessor shows a dialog under write action
(cherry picked from commit 7e82dd9)
2016-11-08 12:15:59 +03:00
Mikhail Glukhikh
2da345491f Build fix: forgotten inspection descriptions was added for new inspections
(cherry picked from commit a6d1713)
2016-11-07 19:10:25 +03:00
Vyacheslav Gerasimov
022980fbd2 Added missing KtLambdaArgument to UElement conversion in KotlinUastLanguagePlugin
#KT-14470 Fixed

(cherry picked from commit 2a0557f)
2016-11-03 18:09:29 +03:00
Vyacheslav Gerasimov
cefb4e87ce Implemented kotlin quick fix provider for create android resource quick fixes
#KT-10465 Fixed
#KT-12880 Fixed

(cherry picked from commit 9534934)
2016-11-03 18:09:20 +03:00
Vyacheslav Gerasimov
5bdce54ebf Android lint check for api requirements for classes in catch clause (KT-13243)
Added test for #KT-14047, #KT-13243 Fixed, #KT-14047 Fixed

(cherry picked from commit 29b9521)
2016-11-03 18:09:10 +03:00
Vyacheslav Gerasimov
ad47601c5f Added call to ImportFilter in import quickfix (KT-14439)
#KT-14439 Fixed

(cherry picked from commit 387d5ff)
2016-11-03 18:09:00 +03:00
Anton Bannykh
7418bca5e9 Fix capturing variables declared via destructuring (#KT-14535 fixed).
(cherry picked from commit bf8e6ed)
2016-11-03 16:11:17 +03:00
Anton Bannykh
c36672ab7b Replaced when appropriate 'TARGET_BACKEND: JVM' -> 'IGNORE_BACKEND: JS'. Enabled some succesfully working decompiledText tests.
(cherry picked from commit 7ee3baa)
2016-11-03 16:10:36 +03:00
Anton Bannykh
1d658cacbd Implemented specifying specific ignored backend (e.g. '// IGNORE_BACKEND: JS' instead of '// TARGET_BACKEND: JVM')
(cherry picked from commit dc151c1)
2016-11-03 16:09:05 +03:00
Kirill Rakhman
e4d36b3fd9 Implement Intention + Inspection to remove empty secondary constructor body #KT-14326 Fixed
(cherry picked from commit 8a73a1d)
2016-11-01 14:52:31 +03:00
Kirill Rakhman
fca10068d8 Add Inspection to remove empty primary constructor #KT-14521 Fixed
(cherry picked from commit 495dd36)
2016-11-01 14:52:03 +03:00
Kirill Rakhman
f23e432609 clean up psi package
(cherry picked from commit ba7f600)
2016-11-01 14:51:28 +03:00
Kirill Rakhman
7230793d38 Add quick fix to remove single lambda parameter if it's unused #KT-14593 Fixed
(cherry picked from commit e10d10c)
2016-11-01 14:49:04 +03:00
Ilya Ryzhenkov
2d4f0f10d5 Optimize reflection by using Class.getName instead of Class.getCanonicalName
(cherry picked from commit f79116a)
2016-11-01 13:45:09 +03:00
Dmitry Jemerov
3e3ffad9fb 1.0.6 branch started 2016-11-01 11:04:09 +01:00
Dmitry Jemerov
5b11562b0d Changelog for 1.0.5-eap-117 2016-11-01 10:54:58 +01:00
Mikhail Glukhikh
73768b8b58 RedundantIfInspection: description file fixed 2016-10-31 15:59:21 +03:00
Dmitry Jemerov
64e7d3ec8d fix tests for RedundantIfInspection
(cherry picked from commit 3542834)
2016-10-31 15:53:18 +03:00
shiraji
3444cfeefd Correct handling of "Redundant if" for negation case #KT-14575 Fixed
(cherry picked from commit e757559)
2016-10-31 12:45:10 +03:00
Vladislav Golub
d10e9b5490 KT-12019 Highlighting of redundant 'if' statements (#871)
(cherry picked from commit bb32c2d)
2016-10-31 12:44:10 +03:00
shiraji
c28a3589cb Redundant calls of conversion methods: do not suggest for flexible receiver types #KT-14570 Fixed
(cherry picked from commit 62f81e7)
2016-10-31 12:38:45 +03:00
Vyacheslav Gerasimov
2c3afa1b6f fix KotlinAndroidAddStringResource: correct generic extension function processing + minor refactoring 2016-10-30 22:38:12 +03:00
Dmitry Jemerov
f3e65f4617 build fix: don't use API not available in IDEA 161 2016-10-28 21:17:30 +02:00
Alexey Tsvetkov
30480a3dda Fix caches closing/flushing when IC builds non-incrementally 2016-10-28 21:43:17 +03:00
Valentin Kipyatkov
c016bd6c16 Caching for PARTIAL_FOR_COMPLETION resolve too (because it's used not only in completion)
(cherry picked from commit 046c55a)
2016-10-28 19:21:42 +03:00
Dmitry Jemerov
74107c902d Don't calculate property name if we aren't going to search for property accessors in Kotlin sources (KT-14508)
(cherry picked from commit 35130e7)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
4977578f4d Fix Kotlin definitions search for classes which can only be used in a local search scope (KT-13753)
(cherry picked from commit 127db98)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
e9ea64786e KotlinDefinitionsSearcher: cleanup after J2K
(cherry picked from commit e93f6e9)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
edfa4eb653 KotlinDefinitionsSearcher: J2K
(cherry picked from commit 2fc6018)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
1e4d20fddd KotlinDefinitionsSearcher: rename to .kt
(cherry picked from commit 4281c13)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
d7daa00f9f Classes with no parent are top-level (EA-90570 - assert: KtPsiUtil.getOutermostClassOrObject)
(cherry picked from commit 237504c)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
c6043d0b0f Use correct FQ name for running inner classes (KT-14153)
(cherry picked from commit 395bdf4)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
a9d8134d9f Exclude local variables from file structure grouping (KT-14363)
(cherry picked from commit f783ba7)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
3241d5702a Fix handling of underscores in Markdown links (KT-14452)
(cherry picked from commit 5d6f1cf)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
7ccbf710b5 Don't consider function names as candidates for "Show expression type" (KT-14384)
(cherry picked from commit 25c7dcc)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
54fa8b3a01 "Show expression type" no longer shows elements which enclose the element at caret (KT-14436)
(cherry picked from commit 4246fcf)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
bcfb83da30 Don't show literals in "show expression type" popup
(cherry picked from commit 57680ae)
2016-10-28 16:57:02 +02:00
Dmitry Jemerov
66424dfb2e Don't show type for reference expressions inside KtCallableReference (KT-14530)
(cherry picked from commit e6c05c3)
2016-10-28 16:57:02 +02:00
Alexey Tsvetkov
f03c39a94e Fix forcing java to compile if kotlin classes are compiled 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
a5e9f8fef9 Fix running gradle tests on windows 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
a8daeae8cf Minor: remove js-library dependency from jvm module 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
da76f78848 Always flush caches 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
2ae324a093 Gradle IC: treat companion object change as class signature change 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
259f5a6e09 Gradle IC: fix converting class to package facade 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
d7e18d59ab Gradle IC: support multifile classes 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
b82d3cc330 Gradle IC should fail if duplicating class is added
#KT-14554 fixed
2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
ec45e0df97 In case of IC failure rebuild all files since last build
Before this change only files from last iteration were rebuilt.
It is correct and optimal, but there are many diffs with JPS/Gradle
logs.
2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
e473ccd5b6 Groundwork for using IC without Gradle 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
161b9e979f Minor: do not print index in parametrized test name 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
d08214a422 Minor: shorten references after move 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
327c1ed9c7 Refactoring: reorder IncrementalJvmCompilerRunner constructor parameters 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
6863dae2e2 Minor: update copyright in Gradle plugin 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
6e7414e928 Cleanup: optimize imports in Gradle plugin 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
63bbd04c4b Minor: replace File::isFile with File::exists 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
84a73988b3 Minor: make Rebuild object 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
e0489aeab8 Minor: remove duplicated logger utils 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
09d0ce2262 Refactoring: move IC classes into separate package 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
3c37b97982 Refactoring: do not pass properties as parameters 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
cfd7c65986 Refactoring: pass classpath and destination in K2JVMCompilerArguments 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
b4ea3f3ca6 Refactoring: delegate IC files management to IncrementalJvmCompilerRunner 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
0df75f680d Refactoring: split GradleMessageCollector and remove Gradle Logger from IncrementalJvmCompilerRunner 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
6eb8a13a4b Refactoring: move all IC logic to IncrementalJvmCompilerRunner 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
365d561f9e Rebuild on cache corrupted exception
#KT-14055 fixed
2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
bab3cd95ac Refactoring: introduce IncReporter to report IC progress 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
da580948f9 Refactoring: extract calculateSourcesToCompile 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
f9d47a9eba Refactoring: return removed dirty files from calculateSourcesToCompile 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
248c8702a3 Refactoring: introduce class ChangedFiles 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
a6ab636942 Refactoring: extract parts of IC 2016-10-28 17:54:21 +03:00
Alexey Tsvetkov
ab6d8fca08 Refactoring: pass incremental compilation state explicitly 2016-10-28 17:54:21 +03:00
Yan Zhulanow
6a64705210 Kapt2: Add more specific diagnostic in KotlinAnnotationProxyMaker for unresolved reference 2016-10-28 17:36:42 +03:00
Yan Zhulanow
682d37a5bc KT-14434 Add own hashCode() and equals() to JeName 2016-10-28 17:36:42 +03:00
Mikhail Glukhikh
b6a7947e0d Build fix 2016-10-28 17:12:44 +03:00
Mikhail Glukhikh
2adcb27051 If then to elvis: do not report inspection if not used as expression 2016-10-28 16:46:41 +03:00
Mikhail Glukhikh
770399424f Minor: if then to elvis 2016-10-28 16:46:36 +03:00
Dmitry Jemerov
fb89f51271 Separate targets for writing compiler version and plugin version to template files
(cherry picked from commit be13aa0)
2016-10-28 15:24:00 +02:00
Dmitry Jemerov
a613ee393e Binding trace filtering: do not calculate diagnostics if no one is going to query them 2016-10-28 15:04:03 +02:00
Vyacheslav Gerasimov
42bb0d5ea9 Extract string resource intention action for android (KT-11715)
#KT-11715 Fixed

(cherry picked from commit 3ce1703)
2016-10-28 15:40:16 +03:00
Mikhail Glukhikh
a61bbe0240 Minor refactoring: if then to elvis
(cherry picked from commit 53ea5a2)
2016-10-28 15:19:50 +03:00
Mikhail Glukhikh
937f321cbd If then to elvis: no more allowed for if expressions with Unit result
(cherry picked from commit f3c25c7)
2016-10-28 15:19:37 +03:00
Mikhail Glukhikh
055d600b30 If then to elvis: applied in IDEA, front-end & J2K modules
(cherry picked from commit 8edd33e)
2016-10-28 15:19:24 +03:00
Mikhail Glukhikh
e3fa237ee2 If then to elvis: now not applicable for is with type unrelated to original #KT-14520 Fixed
(cherry picked from commit e7cef79)
2016-10-28 15:18:36 +03:00
Mikhail Glukhikh
3fe1e7c104 If then to elvis: now not applicable for is with nullable type #KT-14545 Fixed
(cherry picked from commit 87d265d)
2016-10-28 15:18:23 +03:00
Mikhail Glukhikh
75a43e2f64 If then to elvis: now not applicable for calls with nullable result #KT-14542 Fixed
(cherry picked from commit 89e908d)
2016-10-28 15:18:10 +03:00
Mikhail Glukhikh
fa0ba5fb12 Minor refactoring: if then to elvis
(cherry picked from commit f390b91)
2016-10-28 15:17:56 +03:00
Mikhail Glukhikh
24b5eb7094 Lambda to reference: correct handling of named arguments using resolved call #KT-14550 Fixed
(cherry picked from commit 7b316f7)
2016-10-28 15:17:29 +03:00
Mikhail Glukhikh
db0f9c110a Minor: surround with null check: partial analysis
(cherry picked from commit 7d242c5)
2016-10-28 15:17:17 +03:00
Simon Ogorodnik
c7ed0c0cd8 Fix for KT-14563, Build in 1.0.5 broken due not yet supported language features use 2016-10-28 10:36:21 +03:00
Valentin Kipyatkov
9e8710eebb Changes after cherry picks 2016-10-28 10:17:14 +03:00
Valentin Kipyatkov
43fa98ab4d Refactoring
(cherry picked from commit 13ca110)
2016-10-28 10:17:14 +03:00
Valentin Kipyatkov
0bf640b4b9 Performance fix for postfix completion: 1. Don't use PARTIAL_FOR_COMPLETION resolve mode 2. Attempt to use resolve in physical file instead of synthetic one
(cherry picked from commit 0fbbf1a)
2016-10-28 10:17:13 +03:00
Valentin Kipyatkov
058e452f95 Performance fix for Import Member
(cherry picked from commit 8c99b0e)
2016-10-28 10:17:13 +03:00
Valentin Kipyatkov
6f31f2feee KT-14336 for to stdlib to takeWhile: propose conversion into takeWhile if break is located in else branch
#KT-14336 Fixed
(cherry picked from commit 18f1086)
2016-10-28 10:17:13 +03:00
Valentin Kipyatkov
e8cb0093e5 Fixed index variable case
(cherry picked from commit 5c8db29)
2016-10-28 10:17:13 +03:00
Valentin Kipyatkov
b7cdbe16f0 KT-13998 Loop to call chain converter produces 'none' instead of 'all'
#KT-13998 Fixed
(cherry picked from commit e5fcfae)
2016-10-28 10:17:12 +03:00
Valentin Kipyatkov
39eb5dbdee Split or glue together checks for not null and is instance + more intelligent use of filter vs filterTo
#KT-14284 Fixed
 #KT-14286 Fixed
 #KT-14287 Fixed
 #KT-14303 Fixed
(cherry picked from commit 89099b9)
2016-10-28 10:17:12 +03:00
Valentin Kipyatkov
31493bc8d7 More correct checking of forEach requiring asSequence()
(cherry picked from commit 53220b9)
2016-10-28 10:17:12 +03:00
Valentin Kipyatkov
3fd9a02d2d KT-14341 for to stdlib to forEach: if the loop variable is not used in the last/innerest statement the conversion is not proposed
#KT-14341 Fixed
(cherry picked from commit a87ca84)
2016-10-28 10:17:12 +03:00
Valentin Kipyatkov
31b81971c2 Correct handling of explicit variable type
(cherry picked from commit 5ca7688)
2016-10-28 10:17:11 +03:00
Valentin Kipyatkov
d1a7743d2b Honor errors in code before when checking smart casts
(cherry picked from commit 9326dfa)
2016-10-28 10:17:11 +03:00
Valentin Kipyatkov
8473925d84 KT-14294 for to stdlib to firstOrNull/lastOrNull: intention is absent if there is additional var before for loop
#KT-14294 Fixed
(cherry picked from commit eae23b5)
2016-10-28 10:17:11 +03:00
Valentin Kipyatkov
a8e543fb0b KT-14210 for loop to stdlib: max/min is not recognized if there is additional if
#KT-14210 Fixed
(cherry picked from commit a89ef54)
2016-10-28 10:17:11 +03:00
Valentin Kipyatkov
d6c6ebe3ca any() and other find operations to work with checks for not null and is instance
(cherry picked from commit 35ed689)
2016-10-28 10:17:10 +03:00
Valentin Kipyatkov
3d7fd4fe56 Moved matcher
(cherry picked from commit 49ef880)
2016-10-28 10:17:10 +03:00
Valentin Kipyatkov
3124caaf5b count() to merge with filterNotNull and filterIsInstance + changed test for KT-14191 to use sum()
(cherry picked from commit b28d016)
2016-10-28 10:17:10 +03:00
Valentin Kipyatkov
d099678ab9 KT-14209 for loop to stdlib: sum is not recognized if before was check for type
#KT-14209 Fixed
(cherry picked from commit afd2554)
2016-10-28 10:17:10 +03:00
Valentin Kipyatkov
7fce8a4760 KT-14191 FormattingModelInconsistencyException Exception on applying intention Replace with count()
#KT-14191 Fixed
(cherry picked from commit f5d4b1d)
2016-10-28 10:17:09 +03:00
Valentin Kipyatkov
957f984b8c KT-13810 Kotlin code completion missing last character
#KT-13810 Fixed
(cherry picked from commit 7ab2d0c)
2016-10-28 10:17:09 +03:00
Simon Ogorodnik
9a1ae92e20 Workaround KT-14531, Partial fix for KT-13600, KT-11620 J2K: Invalid conversion context on plain text pasting
For detailed info see KT-14531
2016-10-27 20:04:51 +03:00
Simon Ogorodnik
36abd0e771 Fix for KT-13695, KT-13159 J2K: Invalid conversion context setup for plain text pastes
Extending, Implementing, imports from paste target file previously not implemented
2016-10-27 20:04:50 +03:00
Simon Ogorodnik
04fbf4826b Fix for non-resolving of KtReference, which getTargetDescriptors returning multiple descriptors to same element 2016-10-27 20:04:50 +03:00
Simon Ogorodnik
4e83a2543a Fix for KT-12892 J2K: Wrong placing of comments when constructor converted to primary constructor & init 2016-10-27 20:04:50 +03:00
Simon Ogorodnik
825596ba53 Fix for KT-14248 J2K: Invalid constructor formatting after conversion
Caused by `\n\n long mLong = 0;` leading line breaks
2016-10-27 20:04:50 +03:00
Simon Ogorodnik
8d6bdba7b2 Fix for KT-5312 J2K: Correct bit operations priority after conversion
Now `PolyadicExpression` breaks down to BinaryExpression`s
2016-10-27 20:04:50 +03:00
Simon Ogorodnik
5c730bb1a6 Fix for KT-5410 J2K: someObject + "someString" should be converted to someObject.toString() + "someString"
Otherwise `+` operator will not resolve
2016-10-27 20:04:49 +03:00
Simon Ogorodnik
2168ebfdce Fix for KT-12677. J2K: Invalid SAM constructor redundancy detection
Now all J2kPostProcessing's executing in fixed order, dependent on it index in J2kPostProcessingRegistrar._processings
2016-10-27 20:04:49 +03:00
shiraji
d58a0e77dd Do not use "Remove redundant '.let' call" when receiver is used #KT-14390 Fixed
(cherry picked from commit 0b57d8e)
2016-10-27 19:32:40 +03:00
Mikhail Glukhikh
cd818eefd6 EXTERNAL_DECLARATION_CANNOT_BE_ABSTRACT is now reported on property if accessor is external #KT-9297 Fixed
Also fixes EA-89227

(cherry picked from commit 2130164)
2016-10-27 16:30:10 +03:00
Michael Bogdanov
c08328f201 Removed inlineOnlyFunInClass.kt test 2016-10-27 15:12:28 +03:00
Dmitry Jemerov
d34c03dbaa use a non-deprecated API
(cherry picked from commit 38a448e)
2016-10-27 12:51:31 +02:00
mglukhikh
ab52f4d89e Build fix: "If then to elvis" inspection test
(cherry picked from commit 73b24f2)
2016-10-27 12:33:41 +03:00
Mikhail Glukhikh
559d07c5ef Var can be val: correct handling of initialization in lambda #KT-14065 Fixed
(cherry picked from commit 66f3e26)
2016-10-27 12:33:24 +03:00
Mikhail Glukhikh
8c74a005a6 Surround with null check for unsafe things: find first parent statement to surround (which is not used as expression) #KT-13958 Fixed
(cherry picked from commit fd9e59a)
2016-10-27 12:33:03 +03:00
Mikhail Glukhikh
e32eff4db5 "Surround with null check" is now a high-priority action
(cherry picked from commit e56a10a)
2016-10-27 12:31:12 +03:00
Mikhail Glukhikh
3a33b8e9da Minor: primary constructor to secondary: do not specify independent property type explicitly
(cherry picked from commit 35d1047)
2016-10-27 12:30:58 +03:00
Mikhail Glukhikh
166230cbb7 Primary constructor to secondary: always try to build constructor body #KT-14475 Fixed
(cherry picked from commit a74f010)
2016-10-27 12:30:44 +03:00
Mikhail Glukhikh
79e203794a Object literal to lambda: more precise shorten references #KT-14289 Fixed
(cherry picked from commit d6eee65)
2016-10-27 12:30:28 +03:00
Mikhail Glukhikh
2f229fad16 Lambda to reference: check potential reference arguments by descriptors and not by names #KT-14420 Fixed
(cherry picked from commit dc76f2a)
2016-10-27 12:30:09 +03:00
Mikhail Glukhikh
6e5e0e4b05 Lambda to reference: not-null types are now preferred for platform type receivers #KT-14394 Fixed
(cherry picked from commit 97b4556)
2016-10-27 12:29:54 +03:00
Mikhail Glukhikh
3c83c2111d KT-14084 related : replaceFirstReceiver now replaces ALL calls to safe calls if necessary
Fixes relevant "replace let" and "if to elvis" cases

(cherry picked from commit a901de5)
2016-10-27 12:29:39 +03:00
Mikhail Glukhikh
ac14b12e66 If expression to elvis now handles call chains #KT-14084 Fixed
(cherry picked from commit 2117b30)
2016-10-27 12:29:23 +03:00
Michael Bogdanov
492b52a3c9 Make default methods for inlineOnly and reified functions package private
(cherry picked from commit 0910f16)
2016-10-27 12:15:14 +03:00
Dmitry Jemerov
2c2a3dc115 compilation fix 2016-10-26 13:41:37 +02:00
Michael Bogdanov
36aca0cde6 Fix for KT-13890: IllegalAccessError when invoking protected method with default arguments
#KT-13890 Fixed

(cherry picked from commit eaf9c2e)
2016-10-26 12:15:49 +03:00
Michael Bogdanov
0c89e6fb82 Fix for KT-14201: UnsupportedOperationException: Don't know how to generate outer expression for anonymous object with invoke and non-trivial closure
#KT-14201 Fixed

(cherry picked from commit 1e59161)
2016-10-26 12:15:44 +03:00
Nikolay Krasko
184d39a2bf Allow to select single word on double click in one line doc comment (KT-14327)
#KT-14327 Fixed
2016-10-25 18:14:14 +03:00
Mikhail Glukhikh
92f531b164 CFA test fix (a bit different behavior with master for 'run') 2016-10-25 16:29:02 +03:00
Nikolay Krasko
5c6496cfae Add nullability to receiver type
(cherry picked from commit cdabef5)
2016-10-25 13:57:51 +03:00
Nikolay Krasko
02b2025fd5 Set hasValueArguments in KotlinAnnotationEntryStub to 'true' only if some arguments exist
Currently '()' is used for resolving ambiguity in parsing when annotating function types. This way a decompiled code
will need brackets, but compile code will have annotation without parameters. This commit will allow to make both stub-trees consistent.

Tested in ClsStubBuilderTestGenerated.testAnnotationsOnNullableTypes()

(cherry picked from commit 22999fe)
2016-10-25 13:57:51 +03:00
Mikhail Glukhikh
f73045793e KT-8442 related: correct handling of erroneous destructuring references, fixes EA-90434
(cherry picked from commit e53940f)
2016-10-25 13:48:19 +03:00
Mikhail Glukhikh
96fe7244f2 KT-8442 related: destructuring declarations aren't taken into account during light classes generation, fixes EA-81204
(cherry picked from commit e7e56ab)
2016-10-25 13:48:03 +03:00
Denis Zharkov
ba8fe631dd Do not use BasicInterpreter for bytecode analysis
The problem with BasicInterpreter is the following:
it creates BasicValue objects that should be replaced in favor of StrictBasicicValue

See commit message in 25c6ac1 for clarification

 #KT-14447 Fixed

# Conflicts:
#	compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/OptimizationBasicInterpreter.java
#	compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java
2016-10-25 10:21:16 +03:00
Nikolay Krasko
9423d653c0 Step into functions with local variable on first line under "Skip simple getters" (KT-14488)
#KT-14488 Fixed
2016-10-24 16:23:49 +03:00
Alexander Udalov
7fa3331975 Fix errors and indent in built-ins sources
(cherry picked from commit 3f5d3e5dbc)
2016-10-24 15:58:14 +03:00
Alexander Udalov
c1cac61350 Improve Collection/Array/String detection logic in intentions
Use static methods from KotlinBuiltIns and check all supertypes, support cases
of Collection, Map and CharSequence

(cherry picked from commit 2076a31094)
2016-10-24 15:53:01 +03:00
Alexander Udalov
e842fda5cc Use TypeConstructor equality instead of ClassDescriptor in CollectionStubMethodGenerator
Equals/hashCode are meaningful for TypeConstructor instances (see
AbstractClassTypeConstructor.java) in contrast to ClassDescriptor where
equality is referential

(cherry picked from commit a5a422fc4d)
2016-10-24 15:53:01 +03:00
Alexander Udalov
a9703c6036 Minor refactoring in JvmDependenciesIndexImpl
Make SearchResult a sealed class, inline local function & trivial utility

(cherry picked from commit d9f248ccf4)
2016-10-24 15:53:00 +03:00
Alexander Udalov
a716376fcf Drop TypeConstructor.getAnnotations(), uninherit TypeConstructor from Annotated
The method was unused on TypeConstructor instances, and almost all
implementations returned EMPTY anyway

(cherry picked from commit cdf6567375)
2016-10-24 15:53:00 +03:00
Mikhail Glukhikh
64d98cf308 KT-7929 related: KtDestructuringDeclarationEntry is not resolved to descriptor in OverridingDeprecatedMemberInspection
(cherry picked from commit 44d1067)
2016-10-24 15:30:57 +03:00
Mikhail Glukhikh
93a449dbd1 KT-7929 related: incorrect KtDestructuringDeclarationEntry is not resolved to descriptor, fixes EA-76715
(cherry picked from commit 6b9252a)
2016-10-24 15:30:44 +03:00
Mikhail Glukhikh
75004bacdf No more attempts to resolve KtDestructuringDeclaration to descriptor #KT-7929 Fixed
Also #KT-8442 Fixed

(cherry picked from commit 1c8a2bb)
2016-10-24 15:30:32 +03:00
Nikolay Krasko
1aa37f1125 Fix stub-psi mismatch exception on restoring annotation for nullable types 2016-10-21 18:33:43 +03:00
Nikolay Krasko
06260fbc01 Regenerate formatter tests 2016-10-21 15:20:25 +03:00
Mikhail Glukhikh
572d56853f UnreachableCode.getUnreachableTextRanges always returns at least one range #KT-14158 Fixed
(cherry picked from commit bfaa9cf)
2016-10-21 10:34:57 +03:00
Alexey Tsvetkov
2de2d58506 Fix pom.xml 2016-10-21 00:20:51 +03:00
Alexey Tsvetkov
48f547fe46 Introduce common interface for common gradle options
This might be useful for future kotlin build scripts
2016-10-21 00:20:51 +03:00
Alexey Tsvetkov
8327a8d9a1 Do not remove annotations.txt (kapt1) file before kotlin compiler is called
#KT-14250 fixed

 Before this change the following could happen:
 0. Successful build.
 1. Only java files are changed.
 2. CompileKotlin task starts because java files are also input files for kotlin.
 3. annotations.txt file is deleted, but kotlin compiler is not called, so it is not regenerated.
 4. Javac fails.
2016-10-21 00:20:51 +03:00
Mikhail Glukhikh
e3faaf8d2a CFG refactoring: get rid of mergeWithLocalDeclarations (always true) + minor style fixes
(cherry picked from commit 1e04945)
2016-10-20 19:58:56 +03:00
Mikhail Glukhikh
293f4c5958 Minor cleanup
(cherry picked from commit cce3a77)
2016-10-20 19:58:45 +03:00
Mikhail Glukhikh
5572b9becb Initialization analysis : more accurate handling of non-local variables while merging data #KT-14304 Fixed
(cherry picked from commit a19d178)
2016-10-20 19:58:35 +03:00
Mikhail Glukhikh
de34ddf6a5 Minor style fix
(cherry picked from commit bba34e0)
2016-10-20 19:58:08 +03:00
Nikolay Krasko
11aa71e09c Add toString for KotlinStubBaseImpl
Try to simplify "Stub and PSI element type mismatch" exception analyze.
2016-10-20 18:53:51 +03:00
Nikolay Krasko
33fa19b736 J2K: actual convert for AbstractStubBuilderTest 2016-10-20 18:53:51 +03:00
Nikolay Krasko
31a356a99d J2K: rename AbstractStubBuilderTest 2016-10-20 18:53:51 +03:00
Nikolay Krasko
fdb4120cde Auto-indent line with chain-call continuation 2016-10-20 18:53:51 +03:00
Dmitry Neverov
fdd5ba7500 Fix spaces in labeled expression (KT-14131)
https://github.com/JetBrains/kotlin/pull/978
2016-10-20 18:53:51 +03:00
Dmitry Jemerov
5a3a9edfbb changelog updated 2016-10-20 16:51:04 +02:00
Alexey Andreev
664a3f4ad2 JS: add test to prove that #KT-5051 is no more reproducible 2016-10-20 12:18:53 +03:00
Alexey Andreev
94ba884a79 Suppress tests marked by TARGET_BACKEND directive when running Android codegen tests 2016-10-20 12:18:53 +03:00
Dmitry Jemerov
dc046832bf Specify test framework to use explicitly in generate test tests
(cherry picked from commit f933cf5)
2016-10-19 17:15:24 +02:00
Dmitry Jemerov
46cb68c69c add missing prepareForWrite() calls
(cherry picked from commit 32290ec)
2016-10-19 13:26:33 +02:00
Sergey Mashkov
19d2b8bf0e Merge pull request #979 from JetBrains/rr/cy/hashMapPutAll
KT-14194 JS: HashMap.putAll shouldn't call getKey/getValue
2016-10-19 14:25:57 +03:00
Nikolay Krasko
2ce6069e37 Ignore not-prepared classes and add diagnostics for not-prepared classes for getting fields (EA-85900) 2016-10-19 13:59:46 +03:00
Nikolay Krasko
3234d764a7 Insert '()' under write action in finishing anonymous object template (EA-82700) 2016-10-19 13:59:46 +03:00
Zalim Bashorov
4934d59f63 KJS: increase JS binary version since name mangling slightly changed
(cherry picked from commit 3513cef)
2016-10-19 13:01:22 +03:00
Alexander Udalov
f17ba2a094 Fix incremental recompilation of JvmMultifileClass with top level function
See 53b584f and previous changes where this behavior was broken (this was
untested, however). Fixes EA-90065

(cherry picked from commit 7b2a80ffa4)
2016-10-19 12:50:51 +03:00
Alexey Sedunov
734bf44831 Convert Receiver to Parameter Intention: Update function descriptor after template is finished (otherwise some references may be processed incorrectly)
(cherry picked from commit e39fd51)
2016-10-19 11:56:54 +03:00
Alexey Sedunov
ca393382d3 Add Library Quick-fix: Fix exception due to resolution being run in the "dumb mode"
#KT-14199 Fixed

(cherry picked from commit 0f276c6)
2016-10-19 11:56:53 +03:00
Alexey Sedunov
ad2afcecc9 Rename: Do not suggest type-based names for functions with primitive return types
#KT-14234 Fixed

(cherry picked from commit 61c56f3)
2016-10-19 11:56:52 +03:00
Alexey Sedunov
2d33c9bb50 Light Classes: Avoid empty scope on KtLightParameter
#KT-13882 Fixed

(cherry picked from commit dccf9c8)
2016-10-19 11:56:51 +03:00
Alexey Sedunov
2f6f6f0351 Minor: Get rid of deprecated (as of IDEA 2016.2) method calls
(cherry picked from commit 3adbe55)
2016-10-19 11:56:50 +03:00
Yan Zhulanow
c9fc7155ce Explicitly filter out classes found by DataBindingClassFinder and DataBindingComponentClassFinder for scope without sources (KT-12402)
This change is temporary, and it should be reverted when the original problem in DataBinding IDE support is fixed.
2016-10-18 22:09:57 +03:00
Yan Zhulanow
6c3a20b25f Fix conformance test 2016-10-18 19:56:48 +03:00
Yan Zhulanow
1e28c5ef17 Lint: Add several checkCancelled() checks to UElementVisitor 2016-10-18 19:56:48 +03:00
Yan Zhulanow
982d6b2f71 Lint: Use IntellijApiDetector in IDE
(cherry picked from commit 8ae29f4)
2016-10-18 19:56:47 +03:00
Yan Zhulanow
4820cefb30 Uast: Migrate to UAnnotation
(cherry picked from commit fdd0ed9)
2016-10-18 19:56:47 +03:00
Yan Zhulanow
4be3f69dbd Lint: Remove SdkWrapper and AnroidModelFacade (was needed in Android Studio 1.5)
(cherry picked from commit 297b23a)
2016-10-18 19:56:47 +03:00
Yan Zhulanow
78548a553b Lint: Fix diagnostic tests
(cherry picked from commit 2854297)
2016-10-18 19:56:47 +03:00
Yan Zhulanow
3f24835d5d Lint: Fix compilation errors after replacing diagnostics
(cherry picked from commit 796b3cf)
2016-10-18 19:56:46 +03:00
Vyacheslav Gerasimov
280cd5d596 Lint: Android Lint diagnostics fixes
(cherry picked from commit aa3b0a6)
2016-10-18 19:56:46 +03:00
Yan Zhulanow
2d815359ab Lint: Update diagnostics because of the new Uast. Also, these diagnostics are from AS 2.2.
(cherry picked from commit ca919b1)
2016-10-18 19:56:46 +03:00
Yan Zhulanow
d328eb53ba Temporary remove outdated Uast tests
(cherry picked from commit cf82878)
2016-10-18 19:56:45 +03:00
Yan Zhulanow
40449fa3f2 Lint: Update Uast implementation (the new version is without declaration level)
(cherry picked from commit de4a47a)
2016-10-18 19:56:45 +03:00
Zalim Bashorov
863a22d5ee KJS: fixes after backporting changes with supporting class literals.
* Remove features which unsupported in 1.0.x;
* Slightly rewrite code generation for class literals;
* Don't deprecate jsClass extension property since no alternatives to get JsClass or KClass from expression in 1.0.x;
* Slightly rewrite tests.
2016-10-18 19:28:37 +03:00
Zalim Bashorov
2ed9585c74 KJS: use cached KClass instead create new each time when getting it from JsClass
(cherry picked from commit 5f2ba70)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
d6a92c037c Report error when try to use unsupported reflection API in Kotlin JS; allow to use kotlin.Any members on reflection classes for both platforms.
(cherry picked from commit c21e1eb)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
6aa31d3335 JS: change visibility to internal for library and marker annotations
(cherry picked from commit 11b2c5f)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
ec3c1a8a33 Don't render descriptors outside of modules directly mentioned in tests, e.g. descriptors from libraries.
(cherry picked from commit 77ceb3e)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
21fbdeff4a Remove obsolete test about class literals is not supported
(cherry picked from commit 279b4dc)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
952bb2efc4 Minor: fix warnings in Namer
(cherry picked from commit 71235ee)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
dc99135246 JS backend: basic support for class literals.
Added:
* the ability to get KClass using class literals (`::class`);
* the ability to get KClass from JsClass and vice versa;
* the ability to get simpleName.

 #KT-13345 Fixed

(cherry picked from commit 3c520a3)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
c077c7d545 Minor: move reflection/light/* -> reflection/*
(cherry picked from commit ace10f4)
2016-10-18 19:28:37 +03:00
Zalim Bashorov
58b6b4d80a JS: make Any as upper bound of type parameter of JsClass and helpers
(cherry picked from commit d31f181)
2016-10-18 19:28:37 +03:00
Sergey Mashkov
9c29542fc2 KT-14194 JS: HashMap.putAll shouldn't call getKey/getValue 2016-10-18 19:03:10 +03:00
Valentin Kipyatkov
fe708db1ea Protection against "<caret>" missing in test data
Many incorrect tests fixed

# Conflicts:
#	idea/testData/intentions/iterationOverMap/DataClassDependentLocal.kt
#	idea/testData/intentions/removeUnnecessaryLateinit/normalLateinit.kt
#	idea/testData/quickfix/implement/noDefaultConstructor.kt
#	idea/testData/quickfix/implement/privateConstructor.kt
2016-10-18 14:53:51 +02:00
Nikolay Krasko
c4fb0e9e56 Remove mentioning KT-11395 from the wrong test
#KT-11395 Open
2016-10-18 15:31:39 +03:00
Nikolay Krasko
0ec664b206 Stop wrapping ProcessCanceledException into KotlinFrontEndException (EA-86153) 2016-10-18 15:26:14 +03:00
Nikolay Krasko
e44260ad6d Commit all documents after J2K (KT-13584, EA-82451)
New Kotlin file will be generated after converting, they are created for virtual files that were renamed from Java.
The exception happens when Java file was previously opened in editor, in that case text is restored through getLastCommittedText(document) where
document is resored for virtual file.

See: SingleRootFileViewProvider.VirtualFileContent.getText()

Exception descriptions also mention "Create Test" action as a problem source. The issue was reproduced when J2K convertion was performed
on test creation.

 #KT-13584 Fixed
2016-10-18 15:26:14 +03:00
Michael Bogdanov
a2320665af Test data fix
(cherry picked from commit c5e8139)
2016-10-18 15:27:09 +03:00
Dmitry Neverov
5699b143af Fix indent in constructor delegate call (KT-7718)
#KT-7718 Fixed
2016-10-18 13:47:49 +03:00
Michael Bogdanov
06482b0c6c Fix for KT-14012: Back-end (JVM) Internal error every first compilation after the source code change
#KT-14012 Fixed

(cherry picked from commit d48ef2e)
2016-10-18 10:48:17 +03:00
Dmitry Jemerov
4a8f999219 Report more details about update checker exceptions.
(cherry picked from commit 882c62d)
2016-10-17 20:17:03 +02:00
Dmitry Jemerov
57af2390ca diagnostics for EA-79913 - AIOOBE: ByDescriptorIndexer.getDeclarationForDescriptor$idea_analysis
(cherry picked from commit 4730eb4)
2016-10-17 20:16:55 +02:00
Dmitry Jemerov
4689e327c1 handle elements with null containing file (EA-84533 - IAE: KtPsiFactoryKt.getModuleInfo)
(cherry picked from commit 30a9186)
2016-10-17 20:16:46 +02:00
Dmitry Jemerov
d4ea017998 catch I/O exceptions from prepareToInstall() (EA-86183 - SE: AppInputStream.read)
(cherry picked from commit 17866f8)
2016-10-17 20:16:36 +02:00
Dmitry Jemerov
65a9ac24b5 EA-89031 - IAE: SmartTypeRenderer.render
(cherry picked from commit 4a51e41)
2016-10-17 20:16:29 +02:00
Dmitry Jemerov
e5ea13e341 EA-87284 - KNPE: KotlinTestRunLineMarkerContributor.getInfo
(cherry picked from commit c0d1c71)
2016-10-17 20:16:22 +02:00
Nikolay Krasko
dfea3afc81 Add indent before colon of super types list on new line (KT-13981, KT-5117)
#KT-13981 Fixed
 #KT-5117 Fixed
2016-10-17 14:04:06 +03:00
Nikolay Krasko
7774d2c27e Evaluate overloaded toString() in watches for Kotlin classes with delegate properties (KT-14068)
#KT-14068 Fixed
2016-10-17 14:04:05 +03:00
Ilya Chernikov
e3f275d490 Remove usage of getLocalHost, other minor changes related to localhost connections in daemon
- attempt to fix behaviours similar to #IDEA-161962, #KT-14042, #KT-14334
(cherry picked from commit 16897f4 in master and 1.1-M02 branch)
2016-10-17 12:08:10 +02:00
Mikhail Glukhikh
7d8575dd76 Add inspection/intention for redundant calls of conversion methods #KT-10871 Fixed
Also #KT-12625 Fixed

(cherry picked from commit a1f1716044)
2016-10-17 12:13:45 +03:00
Dmitry Petrov
21ec8850a8 KT-14360 Microoptimizations in RedundantCoercionToUnitTransformer 2016-10-17 10:19:24 +03:00
Dmitry Petrov
d081956217 KT-14357 Run RedundantCoercionToUnitTransformer before DeadCodeEliminatingMethodTransformer.
Remove empty try-catch blocks in DeadCodeEliminatingMethodTransformer.
2016-10-17 10:19:20 +03:00
Dmitry Petrov
03aed77c95 Make static initializer classes for inheriting multifile class parts annotated as SYNTHETIC_CLASS.
(cherry picked from commit fbe3f15)
2016-10-17 10:19:00 +03:00
Nikolay Krasko
c6b128e1e8 Minor: rename ForkJoinPoolPatcherForTeamCityTesting -> ThreadTrackerPatcherForTeamCityTesting 2016-10-14 20:59:18 +03:00
Nikolay Krasko
78e2f055b6 Test for "Debugger: "Step over" dives into recursive call" (KT-12924)
Fixed in 7992df7b93

 #KT-12924 Fixed
2016-10-14 20:59:18 +03:00
Dmitry Jemerov
c3fb2bb2aa Changelog updated again 2016-10-14 19:58:43 +02:00
Dmitry Jemerov
08f0ba6a74 Changelog updated 2016-10-14 19:56:12 +02:00
Nikolay Krasko
d741895b2c Do an ordinal step over while stepping over inlined calls in dex 2016-10-14 18:44:09 +03:00
Alexey Tsvetkov
91c63c7eb1 Ensure task build directory always exist
#KT-14253 fixed
2016-10-14 17:31:25 +03:00
Alexey Tsvetkov
27658b8e8c Provide a way to force stdout output in Gradle tests 2016-10-14 17:31:25 +03:00
Alexey Tsvetkov
c44e4b8d84 Minor: rename file its name is the same as class it contains 2016-10-14 17:31:25 +03:00
Alexey Tsvetkov
29a926ac73 Do not check the content of JS file in Gradle test 2016-10-14 17:31:25 +03:00
Zalim Bashorov
7fff363f9c Add tasks to download node.js (platform independently) and tasks to publish packages to npm; extract some common things to common.xml
(cherry picked from commit 0a0a05d)
2016-10-14 16:43:52 +03:00
Zalim Bashorov
31c9c705aa JS: add templates for kotlin and kotlin-compiler packages
(cherry picked from commit 96830e3)
2016-10-14 16:43:52 +03:00
Kirill Rakhman
9f66ef14db Add quick-fixes for lateinit-related errors #KT-14342 Fixed
(cherry picked from commit 09d6e2e)
2016-10-14 16:18:38 +03:00
Yoshinori Isogai
34be2cc778 KT-14329 Do not report inspection "Remove empty class body" for anonymous objects (#972)
(cherry picked from commit 708a0e3)
2016-10-14 15:00:57 +02:00
Alexey Tsvetkov
4745d1f344 Test that kotlin gradle options are up to date
#KT-14317 fixed
2016-10-14 15:50:13 +03:00
Valentin Kipyatkov
069b1ea16e KT-14353 ClassCastException during offline inspections
#KT-14353 Fixed
(cherry picked from commit 76fe1ec)
2016-10-14 12:32:26 +03:00
Valentin Kipyatkov
e80343ef03 More correct code - ensure that equals works correctly!
(cherry picked from commit 29fe63d)
2016-10-14 12:32:25 +03:00
Valentin Kipyatkov
6576c8e32f KT-9835 Completion thinks receiver is nullable when it is not
#KT-9835 Fixed
(cherry picked from commit 0399772)
2016-10-14 12:32:25 +03:00
Valentin Kipyatkov
5951912070 KT-13780 No completion and assertion error in log
#KT-13780 Fixed
(cherry picked from commit 7b12dd4)
2016-10-14 12:32:25 +03:00
Valentin Kipyatkov
929675b0a8 Use partial resolve
(cherry picked from commit 03320d6)
2016-10-14 12:32:25 +03:00
Valentin Kipyatkov
802d5df602 Added tests for parameter names in function type from SAM-adapter + fixed KT-13861
#KT-13861 Fixed
(cherry picked from commit a62a37f)
2016-10-14 12:32:25 +03:00
Valentin Kipyatkov
d9d363c85c Moved and renamed tests
(cherry picked from commit 8d7b597)
2016-10-14 12:32:24 +03:00
Valentin Kipyatkov
950bdd79f9 KT-12077 Code completion inserts FQN for annotations with use-site target inside primary constructor
KT-13009 Kotlin: annotation auto-import is broken in multiple ways

  #KT-12077 Fixed
  #KT-13009 Fixed
(cherry picked from commit 73dc5fe)
2016-10-14 12:32:24 +03:00
Valentin Kipyatkov
b39be967a2 Moved tests
(cherry picked from commit 0c14058)
2016-10-14 12:32:24 +03:00
Valentin Kipyatkov
8cfc1c686e Fixed multiple bugs in optimize imports for JS-target
#KT-13689 Fixed
(cherry picked from commit b84260f)
2016-10-14 12:32:24 +03:00
Valentin Kipyatkov
6af2af20a7 Refactoring
(cherry picked from commit 45cd4f1)
2016-10-14 12:32:23 +03:00
Valentin Kipyatkov
1cd54020e9 Used KtReference.resolvesByNames instead of own code
(cherry picked from commit 326db55)
2016-10-14 12:32:23 +03:00
Valentin Kipyatkov
e573278ee6 KT-9950 IntelliJ IDEA does not suggest importing extension methods which have the same name as an instance method
#KT-9950 Fixed
(cherry picked from commit 5734f2b)
2016-10-14 12:32:23 +03:00
Valentin Kipyatkov
bafda5b7eb Removed redundant
(cherry picked from commit 49ac6b9)
2016-10-14 12:32:23 +03:00
Valentin Kipyatkov
e69c29abf0 KT-13884 Exception "Invalid root block PSI element" on replacing trivial when-expression to if
#KT-13884 Fixed
(cherry picked from commit c06e2d9)
2016-10-14 12:32:22 +03:00
Valentin Kipyatkov
b80f6eb214 KT-13719 'var' can be made 'val' highlighting range with annotation before
#KT-13719 Fixed
(cherry picked from commit 597cd04)
2016-10-14 12:32:22 +03:00
Michael Bogdanov
78284c0eaf Fix for KT-14330 java.lang.IllegalArgumentException: Parameter specified as non-null is null: method ... parameter value
#KT-14330 Fixed

(cherry picked from commit 0501392)
2016-10-14 10:58:14 +03:00
Alexey Tsvetkov
d23dc07afc Regenerate kotlin gradle options for 1.0.5
#KT-14355 fixed
2016-10-13 21:30:39 +03:00
Alexey Tsvetkov
a11c4cd3cf Fix test dependencies for gradle integration tests 2016-10-13 21:30:38 +03:00
Simon Ogorodnik
dbfc078835 Fix test to complete on 1.0.5
for 3304bb3
2016-10-13 19:22:58 +03:00
Simon Ogorodnik
3304bb32c5 Fix for KT-14205
If detected unfinished expression it passed through, added warning on action "Convert Java to Kotlin", if Java files contains syntax errors.

(cherry picked from commit e763565)
2016-10-13 19:13:28 +03:00
Simon Ogorodnik
9f6cc77989 Fix for KT-10885
Assignment as expression conversion: e.g int i = j = 0

(cherry picked from commit e14a043)
2016-10-13 19:13:28 +03:00
Simon Ogorodnik
4080d9c197 Fix KT-13021, KT-13020, Test for already fixed KT-6941
Fixes on javadoc to kdoc comments convert

(cherry picked from commit d731f97)
2016-10-13 19:13:28 +03:00
Simon Ogorodnik
d8f80223fe Fix for KT-6424
Remove "SuppressWarnings" and "//noinspection" on java to kotlin conversion

(cherry picked from commit 155cfcb)
2016-10-13 19:13:28 +03:00
Alexey Sedunov
c1df9d41ed Rename: Fix in-place rename on non-overriding functions
(cherry picked from commit 3eb5076)
2016-10-13 19:04:10 +03:00
Nikolay Krasko
7f3a9c1029 Use Dex suffix instead of dex prefix for better test sorting 2016-10-13 18:36:37 +03:00
Nikolay Krasko
27b0e7d3b0 Refactoring: extract KotlinStepOverInlineFilter class 2016-10-13 18:36:35 +03:00
Nikolay Krasko
008e57452a Check current behaviour of stepping over inline 'hasNext' and 'next' in for
#KT-14296 Open
2016-10-13 18:36:33 +03:00
Nikolay Krasko
a220e645bf Make step over for single thread work in Ultimate 2016-10-13 18:36:30 +03:00
Nikolay Krasko
2e8775d68f Change the way 'step over' over inline calls works (KT-13751)
Previously it worked by invoking 'Run To Cursor' for the last position of inline function. As there's only one 'run to cursor' breakpoint
available in Idea framework, it couldn't work when inline function call was was used in conditions of control flow statements.

A new approach works through multiple step over operation and controlling stop position. In other words we try to "step over" inlined lines.
Same thing is actually done in "Smart Step Into" action.

 #KT-13751 Fixed
2016-10-13 18:36:28 +03:00
Nikolay Krasko
d0ffe06601 Test for "Breakpoint inside lambda argument of InlineOnly function doesn't work" (KT-11395)
#KT-11395 Fixed
2016-10-13 18:36:21 +03:00
Nikolay Krasko
462bdb2c43 Generate 'nop' instruction on lambda call when everything on line is going to be eliminated by inliner (KT-6477)
#KT-6477 Fixed
2016-10-13 18:36:20 +03:00
Dmitry Jemerov
8575ad8bc1 correct way to check if intention is applicable; revert: Delete test that is transformed syntax error
(cherry picked from commit b1b171f)
2016-10-13 15:47:09 +02:00
takahirom
5211bc9878 Fix 'in' operator intention for Strings (KT-13974)
(cherry picked from commit 925c48c)
2016-10-13 15:47:01 +02:00
takahirom
54bfa07f98 KT-13550 Fix Boolean.TYPE does not compile (#969)
* Fix Boolean.TYPE does not compile

(cherry picked from commit 93c2e7d)
2016-10-13 15:04:19 +02:00
Dmitry Petrov
f82970a610 Minor: update generated tests. 2016-10-13 15:02:59 +03:00
Alexander Udalov
fe6ee7bb3f Fix compilation error 2016-10-13 14:16:40 +03:00
Alexander Udalov
07b733c59c Refactor class lookup in deserialized scopes
Move the logic to DeserializedMemberScope; drop NestedClassDescriptors

(cherry picked from commit 8828e671f5)
2016-10-13 12:56:58 +03:00
Alexander Udalov
0c72593a1e Remove extra cache of nested classes from DeserializedClassDescriptor
ClassDescriptor instances are already cached in ClassDeserializer

(cherry picked from commit e1ce6f88d5)
2016-10-13 12:51:29 +03:00
Alexander Udalov
c0fa5755b0 Make JvmPlatform.defaultImports a stored property
It was incorrectly made a getter-only property in 2f616bdd

(cherry picked from commit 321a19a247)
2016-10-13 12:51:15 +03:00
Alexander Udalov
3a68b5e558 Drop ModuleParameters, inline defaultImports everywhere
(cherry picked from commit 2f616bdd33)
2016-10-13 12:50:04 +03:00
Alexander Udalov
89fa1aae74 Introduce DeserializationConfiguration
Will be used soon to deliver the language/API-version-related behavior to the
deserialization

(cherry picked from commit 88af36001c)
2016-10-13 12:38:20 +03:00
Simon Ogorodnik
41cfce26bd Test for KT-7332, already fixed
(cherry picked from commit 2a95a4a)
2016-10-13 11:12:09 +03:00
Simon Ogorodnik
4726824212 Fix for KT-10545
//TODO unfix: see KT-14305

(cherry picked from commit 4710f70)
2016-10-13 11:12:08 +03:00
Simon Ogorodnik
370e3459d3 Fix KT-8091
J2K string with octal escaped chars
added support for octal escaping definition for char

(cherry picked from commit a64c45c)
(cherry picked from commit 2c99aac)
2016-10-13 11:11:33 +03:00
Dmitry Petrov
1274244b4f Cleanup and unify RangeCodegenUtil functions. 2016-10-13 10:15:27 +03:00
Vsevolod
88b3c42cd7 KT-5044 code cleanup, test added 2016-10-13 10:15:22 +03:00
Vsevolod
4fa8510c86 KT-5044 intrinsify all contains calls for primitive ranges from stdlib 2016-10-13 10:15:17 +03:00
Vsevolod
40a178f49c KT-5044 implement missing Range#contains tests and move it to separate package 2016-10-13 10:13:16 +03:00
Alexander Udalov
ac10821bbd Introduce "-api-version" CLI option
The `@SinceKotlin("X.Y.Z")` annotation now hides a particular declaration from
resolution when the API version specified by the `-api-version` option is
_less_ than X.Y.Z. The comparison is performed as for versions in Maven:
MavenComparableVersion is in fact a copy of
org.apache.maven.artifact.versioning.ComparableVersion.

Also support "!API_VERSION" directive in diagnostic tests

 #KT-14298 Fixed

(cherry picked from commit 167ab1f860)
2016-10-12 18:05:51 +03:00
Alexander Udalov
982bd249fb Refactor gradle option generation mechanism
Ensure there's a statically checked dependency on LanguageVersion and
JvmTarget, so that this information is updated automatically once a new
language version or a JVM target is added

(cherry picked from commit 8d660c2f6e)
2016-10-12 18:05:50 +03:00
Alexander Udalov
4de4a31d6b Move LanguageVersionSettings and JvmTarget to module 'util'
To be used from cli-common in the subsequent commits

(cherry picked from commit 2c66d4e59b)
2016-10-12 18:05:50 +03:00
Alexander Udalov
af669686f4 Support deprecation level HIDDEN for classifiers
Classifiers annotated with `@Deprecated(level = HIDDEN)` now have smaller
priority in imports, similarly to private classes. For example, if two
classifiers named Foo are imported with a star import and one of them is
deprecated-hidden, the name Foo in the source code is resolved to the other
one.

Also a minor change in multi-module diagnostic tests: do not append newlines
after the last module in the test

 #KT-13926 Fixed

(cherry picked from commit aaeae8b948)
2016-10-12 18:05:50 +03:00
Alexander Udalov
0bda8f01ad Report error instead of warning for deprecation level HIDDEN
Since functions usually are hidden from resolution when they are
deprecated-hidden, the problem can only be reproduced for properties with
deprecated-hidden accessors, where DeprecatedCallChecker reported warnings
instead of errors

(cherry picked from commit 83c86d06ed)
2016-10-12 18:05:50 +03:00
Alexander Udalov
2615d7f166 Minor, extract isDeprecatedHidden for usage in codegen
Also remove a hundred year old TODO

(cherry picked from commit 59b29cf00d)
2016-10-12 18:05:50 +03:00
Alexander Udalov
60d5e40dc6 Minor refactoring in DeprecatedCallChecker
(cherry picked from commit 9004367f3c)
2016-10-12 18:05:49 +03:00
Alexander Udalov
44fd2fac01 Do not report deprecation on members of deprecated companion
This deprecation is reported on the companion itself anyway

(cherry picked from commit 8949ffbef1)
2016-10-12 18:05:49 +03:00
Alexander Udalov
a8eb169900 Fix NPE in StorageManager on sanitizing stack trace
This could happen when running the compiler from the command line, where
MemoryBasedClassLoader is used which does not ever create Package instances.

(cherry picked from commit 9fd698db36)
2016-10-12 18:05:49 +03:00
Alexander Udalov
509df8ad22 Include output of module daemon-common to compiler jar in compiler-quick
This fixes CompilerDaemonTest with the compiler built by "ant compiler-quick"

(cherry picked from commit 8ccc168b87)
2016-10-12 18:05:49 +03:00
Alexander Udalov
76974e0fe4 Move PlatformToKotlinClassMap out from ModuleParameters
Configure it in the same way as other platform-specific components instead,
simplify some code

(cherry picked from commit 7070b88ea4)
2016-10-12 18:05:49 +03:00
Alexander Udalov
5e2ead80e0 Pass PlatformToKotlinClassMap instance to PlatformTypesMappedToKotlinChecker
The purpose of this change is to allow PlatformToKotlinClassMap to be removed
from ModuleDescriptor

(cherry picked from commit b77388bd48)
2016-10-12 18:05:48 +03:00
Alexander Udalov
f8ec01b214 Simplify usages of IncrementalPackageFragment and related code
Since its scope is now empty, no descriptor now has a container that is an
instance of IncrementalPackageFragment -> a lot of code is not needed anymore

(cherry picked from commit 53b584f48c)
2016-10-12 18:05:48 +03:00
Alexander Udalov
2103c28805 Refactor IncrementalPackageFragmentProvider
(cherry picked from commit 7c6352a9f2)
2016-10-12 18:05:48 +03:00
Alexander Udalov
465036c80d Make scope of incremental package fragment empty
It's only needed to create IncrementalMultifileClassPackageFragment instances
now

(cherry picked from commit c1f55e8018)
2016-10-12 18:05:48 +03:00
Alexander Udalov
7d92101ab7 Drop obsolete logic related to obsolete package parts
Filtering out obsolete package parts in incremental compilation was necessary
before the big refactoring of package parts, when package parts had been
compiled together into a package class

(cherry picked from commit 74ad6b1410)
2016-10-12 18:05:48 +03:00
Alexander Udalov
6cac37edb7 Support rendering contents of different modules in load* tests
This is needed because otherwise with separate modules turned on in the
compiler, these tests do not display the contents of classes from the
dependency module in the rendered output

(cherry picked from commit 9d778711d2)
2016-10-12 18:05:48 +03:00
Alexander Udalov
efea91dfb3 Minor, introduce DeclarationProviderFactory.EMPTY
(cherry picked from commit 214abea4d6)
2016-10-12 18:05:47 +03:00
Alexander Udalov
72920f8e95 Minor refactorings related to PackagePartProvider and implementations
- Document what exactly should findPackageParts return
- Make EMPTY a named object instead of a val in the companion
- Do not use JvmPackagePartProvider in tests where Empty works fine
- Add a couple default values to arguments of setupResolverForProject

(cherry picked from commit 0ed9897b03)
2016-10-12 18:05:47 +03:00
Alexander Udalov
302fa4a83b Add debugName to ModuleMapping
(cherry picked from commit 97f2051a03)
2016-10-12 18:05:47 +03:00
Alexander Udalov
54b26916bb Prevent double initialization in codegen tests, fix ScriptGenTest#testDependentScripts
Add an assertion to prevent duplicate initialization of CodegenTestFiles
instance in CodegenTestCase, which was happening in ScriptGenTest with multiple
invocation of loadFile()

(cherry picked from commit 74d6ef73d4)
2016-10-12 18:05:47 +03:00
Alexander Udalov
92d0499a63 Prettify TopDownAnalyzerFacadeFor{JVM,JS}
(cherry picked from commit 9cfe0be98e)
2016-10-12 18:05:47 +03:00
Alexander Udalov
e0e74b8310 J2K TopDownAnalyzerFacadeFor{JVM,JS}: convert to Kotlin
See 4467e12
2016-10-12 18:05:46 +03:00
Alexander Udalov
99a7fa744c J2K TopDownAnalyzerFacadeFor{JVM,JS}: rename files
See b34150e
2016-10-12 18:05:46 +03:00
Alexander Udalov
0e64423de7 Minor, improve exception when getting missing component from container
(cherry picked from commit be5e0f4275)
2016-10-12 18:05:46 +03:00
Alexander Udalov
ffce2a744a Drop ExternalDeclarationsProvider
It was added for Android extensions, but now another mechanism is used there
(PackageFragmentProviderExtension), and there were no other implementations of
ExternalDeclarationsProvider in the project

(cherry picked from commit 87fe6c41df)
2016-10-12 18:05:46 +03:00
Alexander Udalov
64affef129 Minor, delete ModuleContext#builtIns
(cherry picked from commit 1d6abc32bc)
2016-10-12 18:05:46 +03:00
Alexander Udalov
5009492a9f Minor, add toString for debug
(cherry picked from commit 5d37fab4f5)
2016-10-12 18:05:45 +03:00
Alexander Udalov
ea74d1ab86 Check that class literal LHS is not an expression 2016-10-12 18:05:45 +03:00
Denis Zharkov
d72f5f1ae9 Minor. Add !! assertion necessary in 1.0.5 2016-10-12 18:02:01 +03:00
Denis Zharkov
25c6ac1c53 Fix NPE caused by nullability checks optimizations
Mostly this commit replaces instances of original BasicValue from ASM
with ones of StrictBasicValue having strict equals implementation

Optimization issue was related to non-symmetric 'equals':
- NotNullBasicValue("java/lang/Object").equals(BasicValue("java/lang/Object")) == false
- BasicValue("java/lang/Object").equals(NotNullBasicValue("java/lang/Object")) == true

 #KT-14242 Fixed
2016-10-12 18:02:01 +03:00
Denis Zharkov
5876c013de Add license and links to rewritten ASM classes 2016-10-12 18:02:01 +03:00
Denis Zharkov
e6b072e76b Minor. Invert if 2016-10-12 18:02:01 +03:00
Denis Zharkov
cb78006ace Refine redundant null checks interpreter
The main change here is addition of a check that NotNullBasicValue instances
are not being created for non-reference types

Exactly this change should be used instead of f25f0db10e
The latter commit lead to problem described in the KT-14242 issue:
v.getType().getSort() == w.getType().getSort() && (v.getType().getSort() != Type.OBJECT || v.equals(w))

Problem is that the condition above returns true without calling `v.equals(w)`,
because the sort of type is ARRAY, not OBJECT, so testArray was being treated
as NotNullable erroneously

So the second part of this change is effectively revering mentioned commit

 #KT-14242 Fixed
2016-10-12 18:02:01 +03:00
Denis Zharkov
722f3e46e4 Minor. Add hashCode override after existing equals 2016-10-12 18:02:01 +03:00
Simon Ogorodnik
8aaaac3bc8 Fix for KT-11375, KT-9710, KT-8161
(cherry picked from commit 25b9542)
2016-10-12 13:17:38 +03:00
Simon Ogorodnik
84cda2cdc3 Fixes for test(@JvmStatic -> const), fix for prototype assign
(cherry picked from commit df0ddde)
2016-10-12 13:17:35 +03:00
Simon Ogorodnik
8825fa1e36 Fix KT-13750, J2K const val serialVersionUID
(cherry picked from commit e84f563)
2016-10-12 13:17:32 +03:00
Simon Ogorodnik
aa8f4904b3 Regenerated tests
(cherry picked from commit 12efb20)
2016-10-12 13:17:16 +03:00
Simon Ogorodnik
10e270faf7 Fix for KT-13818
Javadoc @code conversion

(cherry picked from commit 1a7c507)
2016-10-12 13:15:35 +03:00
Denis Zharkov
195ebebac4 Add a quickfix for warning on ambiguously annotated expression
#KT-14238 Fixed
2016-10-12 11:43:15 +03:00
Denis Zharkov
386fe9c275 Add warning for ambiguous annotated expression syntax
#KT-14238 In Progress
2016-10-12 11:43:15 +03:00
Denis Zharkov
fe53a1369f Minor. Extract method for annotations resolution on expression 2016-10-12 11:43:15 +03:00
Denis Zharkov
97dccd26ea Change parsing of annotations on block level expressions
Attach annotations to the closest prefix expression instead of
whole statement if no new line found after annotations

The motivation is for a simple annotated expression like '@ann x + y'
its syntax form must not change after prepending 'val z = ' just before it
2016-10-12 11:43:15 +03:00
Denis Zharkov
d2c367cc52 Change annotations parsing in bodies of operators
This change only matters in cases of if/when/for/while having braceless
blocks

Annotations on them are parsed now as on block-level expressions, i.e.
they're attached to the whole expression
2016-10-12 11:43:15 +03:00
Denis Zharkov
678eda145e Minor. Rename methods in parser
Method that was called `parseControlStructureBody` is actually used for
loop bodies only, while `parseExpressionPreferringBlocks` used for
parsing body of control structure (i.e. it must be called
`parseControlStructureBody`)
2016-10-12 11:43:15 +03:00
Alexey Tsvetkov
67c0516327 Add test for freeCompilerArgs in kotlin options for Gradle 2016-10-11 17:59:25 +03:00
Mikhail Glukhikh
5b90bb9c36 Minor: forgotten caret set to fix a test 2016-10-11 17:55:40 +03:00
Mikhail Glukhikh
1a0dc81f16 Minor refactoring: destructure intention
(cherry picked from commit 206374c)
2016-10-11 17:55:36 +03:00
Mikhail Glukhikh
d306d62e2a Destructure intention: entries / entrySet are now removed only for kotlin.Map inheritors #KT-14244 Fixed
(cherry picked from commit 8188bb1)
2016-10-11 17:55:32 +03:00
Mikhail Glukhikh
c947c64e74 KT-13943 related: inspection is now always reported if manual destructuring is available
(cherry picked from commit 304f6a3)
2016-10-11 17:55:27 +03:00
Mikhail Glukhikh
d6e35336d2 Destructure intention now handles the case with manual destructuring inside #KT-13943 Fixed
(cherry picked from commit 475d554)
2016-10-11 17:55:23 +03:00
Mikhail Glukhikh
572e66fbae UNUSED_VARIABLE is now reported only for last entry of destructuring declaration (if applicable) #KT-14221 Fixed
(cherry picked from commit 8d48b0d)
2016-10-11 17:55:18 +03:00
Mikhail Glukhikh
90658a5694 Refactoring + minor fixes: destructure intention
(cherry picked from commit 70949d1)
2016-10-11 17:55:14 +03:00
Mikhail Glukhikh
81e41919fb Destructure inspection: do not apply on variable declarations + name & severity changed
(cherry picked from commit dd7d7a5)
2016-10-11 17:55:10 +03:00
Mikhail Glukhikh
b8e05afe8a Destructure intention: use also for variable declarations #KT-7488 Fixed
(cherry picked from commit 37debf4)
2016-10-11 17:55:05 +03:00
Mikhail Glukhikh
faba432d90 Simplify for intention refactoring: focus on the loop parameter, not on the loop itself
(cherry picked from commit 42aea59)
2016-10-11 17:55:01 +03:00
Mikhail Glukhikh
2f3715e2ff Minor: destructing --> destructuring in SimplifyForIntention
(cherry picked from commit 0a8006a)
2016-10-11 17:54:56 +03:00
Dmitry Jemerov
3e472be86b reduce ComponentRegistry memory use
#KT-13136 Fixed

(cherry picked from commit fc46afc)
2016-10-11 15:44:26 +02:00
Mikhail Glukhikh
53c986345e Rename: intention tests "ifNullToElvis" --> "foldInitializerAndIfToElvis"
(cherry picked from commit c6fefbc)
2016-10-11 16:26:05 +03:00
Mikhail Glukhikh
20122656fb "If null to elvis" now converts to elvis also !is check right after initializer #KT-14032 Fixed
(cherry picked from commit 0903402)
2016-10-11 16:19:12 +03:00
Mikhail Glukhikh
60032e8cbc KT-14032 related: if expression to elvis now handles also is and !is checks
(cherry picked from commit 121f0ec)
2016-10-11 16:18:58 +03:00
Nikolay Krasko
083656c69a Refactoring: stop calling deprecated method 2016-10-11 15:22:04 +03:00
Nikolay Krasko
7e0f100ccf Refactoring: inline method + inline variable 2016-10-11 15:22:03 +03:00
Nikolay Krasko
a2f7e000c3 Refactoring: call apply method without returning intermediate object 2016-10-11 15:22:01 +03:00
Nikolay Krasko
67cc9b544d Refactoring: make createCommand non-nullable 2016-10-11 15:21:59 +03:00
Nikolay Krasko
2b71909572 Refactoring: rename getStepOverPosition -> getStepOverAction 2016-10-11 15:21:58 +03:00
Michael Bogdanov
909fe788b8 Removed 'callableFunction.kt' signature test 2016-10-11 14:22:41 +03:00
Denis Zharkov
e9b7be38d1 Fix backend issue related to JvmStatic val with accessor
Do not treat accessors to JvmStatic properties as having dispatch receiver

 #KT-11585 Fixed
2016-10-11 12:33:01 +03:00
Denis Zharkov
811b389e79 Minor. Move isJvmStatic* functions to backend 2016-10-11 12:31:20 +03:00
Michael Bogdanov
dca4b3e7e4 Fix writeSignature test data 2016-10-11 12:02:57 +03:00
Alexey Andreev
2b9a77d386 KT-13830: support case when LHS of augmented assignment is something different than qualified expression or array access 2016-10-11 11:56:46 +03:00
Zalim Bashorov
55b8865653 JS: add inspection for the case when something with dynamic type implicitly casted to kotlin another type
(cherry picked from commit 45d42bd)
2016-10-10 20:56:57 +03:00
Yoshinori Isogai
8b025df180 KT-14241 Add Intention + Inspection to remove empty class body (#968)
(cherry picked from commit afe8244)
2016-10-10 19:28:49 +02:00
Alexander Udalov
dce8861e61 Do not pack IDEA core libraries into one idea-core-all.jar in pack-compiler
This is no longer needed because there's no more jsr166e.jar in IDEA core
libraries, which was the reason for the original change.

This reverts commit 9a762e0fa2.

(cherry picked from commit a1584377bf)
2016-10-10 17:48:03 +03:00
Michael Bogdanov
26d19668e2 Print bytecode on signature test fail
(cherry picked from commit d911de20f9)

# Conflicts:
#	compiler/tests/org/jetbrains/kotlin/jvm/compiler/AbstractWriteSignatureTest.kt
2016-10-10 14:28:02 +03:00
Michael Bogdanov
efeaf5457d Don't generate generic signature for get/set methods in property reference class
(cherry picked from commit f8e9922)
2016-10-10 14:28:02 +03:00
Michael Bogdanov
926c54d89b Fix for KT-14243: Wrong invocation descriptor on calling implicitly generated implementation in class
#KT-14243 Fixed

(cherry picked from commit 5bd045c)
2016-10-10 14:28:01 +03:00
Dmitry Jemerov
c029551f5d to avoid running resolve under ClsTypeElement lock, return empty modifier list if we're currently calculating the return type (the modifier list is requested to apply type annotations, and we don't care about them anyway)
#KT-12966 Fixed

(cherry picked from commit ce0d81f)
2016-10-10 12:53:32 +02:00
Dmitry Jemerov
6fb63866ab don't try to resolve declaration to descriptor if we don't have any annotations
(cherry picked from commit e55c82d)
2016-10-10 12:53:24 +02:00
Alexey Sedunov
f4d4bd90af Extract Function: Support implicit abnormal exits via Nothing-typed expressions
(cherry picked from commit 8de7e17)
2016-10-10 13:36:11 +03:00
Alexey Sedunov
c5d7ab9e99 Search Everywhere: Render function parameter types. Render extension type in prefix position
#KT-13976 Fixed
 #KT-13977 Fixed
(cherry picked from commit dcb372d)
2016-10-10 13:36:11 +03:00
Alexey Sedunov
536407fb28 Move: Show error message on applying to enum entries
#KT-14182 Fixed
(cherry picked from commit cf08fa0)
2016-10-10 13:35:38 +03:00
Alexey Sedunov
0f85c2acc7 Rename: Use qualified class name when looking for occurrences in non-code files
#KT-14128 Fixed
 #KT-13862 Fixed
 #KT-6199 Fixed
(cherry picked from commit 8050775)
2016-10-10 13:35:37 +03:00
Alexey Sedunov
bd63569c74 Create from Usages: Do not suggest on type-mismatched expressions which are not call arguments
#KT-14143 Fixed
(cherry picked from commit 0987be3)
2016-10-10 13:35:36 +03:00
Alexey Sedunov
6c70f4d3ae Rename: Implement popup chooser for overriding members
#KT-13963 Fixed
(cherry picked from commit 5fbdd7e)
2016-10-10 13:35:35 +03:00
Alexey Sedunov
9f23e9b403 Rename: Rename do-while loop variables in the loop condition
#KT-14157 Fixed
(cherry picked from commit 9c12fdf)
2016-10-10 13:35:34 +03:00
Alexey Sedunov
e4eca20d70 Move: Fix exception on moving Kotlin file without declarations
#KT-14114 Fixed
(cherry picked from commit a9d4e72)
2016-10-10 13:35:33 +03:00
Alexey Andreev
3dd94eeb8c JS: fix exception during translation of for expression with iterator having generic type constrained by Iterable. Fix #KT-8385 2016-10-10 11:31:15 +03:00
Alexey Andreev
a4f6eb47d0 KT-12707: support case when secondary super constructor has optional parameters 2016-10-10 11:31:15 +03:00
Alexey Andreev
16c3d2b132 KT-12707: (JS) proper translation of a constructor in subclass that calls secondary constructor of parent class. Fix #KT-12707 2016-10-10 11:31:14 +03:00
Alexey Andreev
7ffcf327b8 KT-2752: fix translation of call to internal function from subclass
(cherry picked from commit 322f6fe)
2016-10-08 20:29:16 +03:00
Alexey Andreev
2650862682 KT-2752: fix some tests and make them slightly less fragile 2016-10-08 20:24:01 +03:00
Alexey Andreev
137d96d426 KT-2752: refactor NameSuggestion, change rules for determining name stability and applying mangling 2016-10-08 20:24:00 +03:00
Alexey Andreev
81ffdb940e KT-2752: fixes after code review 2016-10-08 20:23:59 +03:00
Alexey Andreev
4ff5fa26c7 KT-2752: remove unnecessary hack that tries to treat annotation on property accessor as annotation on property itself; looks like FE has fixed that 2016-10-08 20:23:59 +03:00
Alexey Andreev
d2f2e2401a KT-2752: when simple name of class is a JS keyword or a well-known global name, add '$' to name of constructor function 2016-10-08 20:23:58 +03:00
Alexey Andreev
5ca02c098a KT-2752: add hash-based suffix to private members of open/abstract public classes 2016-10-08 20:23:57 +03:00
Alexey Andreev
61f27fdb20 KT-2752: export JsName on class via JS reflection 2016-10-08 20:23:57 +03:00
Alexey Andreev
1430a98f68 KT-2752: minor fixes after code review 2016-10-08 20:23:53 +03:00
Alexey Andreev
4829b5b607 KT-2752: add test to prove that KT-13024 is no longer reproducible with new implementation of name mangling 2016-10-08 20:23:25 +03:00
Alexey Andreev
c7476c3a30 KT-2752: deprecate parameter of @native annotation, prohibit simultaneous usage of parameterized @native and @JsName 2016-10-08 20:23:24 +03:00
Alexey Andreev
c3437148c6 KT-2752: move some diagnostics from entire declarations to their headers 2016-10-08 20:23:23 +03:00
Alexey Andreev
c4dd32d7a0 KT-2752: add test to ensure that JsName affects classes 2016-10-08 20:23:23 +03:00
Alexey Andreev
e0aff9d10c KT-2752: refactor NameSuggestion 2016-10-08 20:23:22 +03:00
Alexey Andreev
bdb12f1581 KT-2752: rename FQNPart to SuggestedName and FQNGenerator to NameSuggestion 2016-10-08 20:23:21 +03:00
Alexey Andreev
5571155802 KT-2752: add some docs to FQNGenerator 2016-10-08 20:23:21 +03:00
Alexey Andreev
0a0b9259de KT-2752: refactor support of modules and root packages 2016-10-08 20:23:20 +03:00
Alexey Andreev
12895d1145 KT-2752: minor fixes 2016-10-08 20:23:18 +03:00
Alexey Andreev
3e98060ad5 KT-2752: prohibit JSName on extension properties 2016-10-08 20:23:16 +03:00
Alexey Andreev
be63ef11cd KT-2752: refactoring:
1. Get rid of most of ManglingUtils
2. Use simple mangling for delegated properties instead of stable mangling
3. Use stable mangling for public declarations of open non-public classes
4. When generating a fresh name in a JsScope, check it for clashing against parent scopes
5. JsFunctionScope does not generate fresh name instead of stable names
6. Function scopes inherit directly from global scope
7. Generate simple mangled names for backing fields of properties
2016-10-08 20:23:16 +03:00
Alexey Andreev
4a7f41d3c6 KT-2752: remove diagnostic that reports about overridden method having several names from different sources. Generate proxies instead. Fix reporting name clash when two distinct fake overrides require same name. 2016-10-08 20:23:15 +03:00
Alexey Andreev
341cd9c680 KT-2752: add diagnostics that reports about conflicting overridden declarations 2016-10-08 20:23:14 +03:00
Alexey Andreev
0085792fe4 KT-2752: add diagnostic that reports about applying JsName on overridden declarations 2016-10-08 20:23:13 +03:00
Alexey Andreev
f7956e2ba5 KT-2752: fix JsName with explicit use target. Add some tests for JsName with use targets 2016-10-08 20:23:13 +03:00
Alexey Andreev
bf132810e0 KT-2752: declare properties as a pair of functions when accessors are marked with @JsName 2016-10-08 20:23:12 +03:00
Alexey Andreev
e51d93a5b7 KT-2752: add checkers for inconsistent usage of JsName 2016-10-08 20:23:11 +03:00
Alexey Andreev
a87f6e1ece KT-2752: JsName renames native declarations 2016-10-08 20:23:10 +03:00
Alexey Andreev
5f07ae9328 KT-2752: fix old tests, add test for clashing between class and its companion object 2016-10-08 20:23:10 +03:00
Alexey Andreev
abdf66e7d9 KT-2752: move tests, that check whether there's no name clash, to JS backend tests 2016-10-08 20:23:09 +03:00
Alexey Andreev
4cfd2d1c0e KT-2752: add basic tests for JsName 2016-10-08 20:23:08 +03:00
Alexey Andreev
9dec02d9fe KT-2752: add draft implementation of JsName annotation. Fix some tests using the annotation 2016-10-08 20:23:07 +03:00
Alexey Andreev
220f6866a8 KT-2752: fix name clash diagnostic for case of extension property. Add more tests for the diagnostic 2016-10-08 20:23:07 +03:00
Alexey Andreev
5cd88be893 KT-2752: add diagnostic that checks whether Kotlin declarations produce conflicting names in generated JS 2016-10-08 20:23:06 +03:00
Alexey Andreev
805d8f3760 KT-2752: refactor generation of FQN in JS. Move backend-independent code to generic code in frontend. 2016-10-08 20:23:05 +03:00
Alexey Andreev
258f077558 KT-2752: a new approach to compose fully-qualified names that does not depend on code generation and can be reused in JS front-end 2016-10-08 20:23:05 +03:00
Dmitry Jemerov
b8f4c78d34 changelog updated 2016-10-07 18:52:06 +02:00
Alexey Sedunov
879a145b86 Call Hierarchy: Show Kotlin usages of Java methods
#KT-12398 Fixed
(cherry picked from commit 3f6e60f)
2016-10-07 18:08:26 +03:00
Alexey Sedunov
c15d74b452 Generate 'toString()': Permit for data classes
#KT-14122 Fixed
(cherry picked from commit 5bb0352)
2016-10-07 18:08:25 +03:00
Alexey Sedunov
2f73c62e9c Quick Fixes: Implement "Remove unused assignment" quickfix
#KT-9931 Fixed
(cherry picked from commit 0616e86)
2016-10-07 18:08:24 +03:00
Alexey Sedunov
db30ae133c Move out of Companion Object: Warn if traget class already contains function with the same signature
#KT-13877 Fixed
(cherry picked from commit 074ad6b)
2016-10-07 18:08:23 +03:00
Alexey Sedunov
03f3765f97 Test Framework Support: Allow using whitespaces and other symbols in "Generate -> Test Function" dialog
#KT-12556
(cherry picked from commit 450d31b)
2016-10-07 18:08:22 +03:00
Alexey Sedunov
fe18d79174 Move Inner Class to Upper Level: Fix replacement of outer class instances used in inner class constructor calls
#KT-13928 Fixed
(cherry picked from commit 86c1231)
2016-10-07 18:08:21 +03:00
Alexey Sedunov
89c122d20d Rename: When renaming Kotlin file outside of source root do not rename its namesake in a source root
#KT-14096 Fixed
(cherry picked from commit c76c834)
2016-10-07 18:08:20 +03:00
Alexey Sedunov
afdb5a8516 Move: Do not report accessibility conflicts on builtin declarations
#KT-13726 Fixed
(cherry picked from commit a5eee2d)
2016-10-07 18:08:19 +03:00
Alexey Sedunov
6adaeb6ffe Navigation: Filter out candidate declarations coming from the wrong library
#KT-13726 In Progress
(cherry picked from commit ba1ee99)
2016-10-07 18:08:18 +03:00
Alexey Sedunov
8e2d4fc38e Pull Up: Replace unresolved type parameters with their upper bounds (Fixes test failure after switching to IDEA 2016.2)
(cherry picked from commit 6c2d4ad)
2016-10-07 18:08:17 +03:00
Alexey Sedunov
f9e877ce96 Push Down: Support moving members from Java to Kotlin class
#KT-9485 Fixed
(cherry picked from commit 956c6ee)
2016-10-07 18:08:17 +03:00
Alexey Sedunov
c1a99fa623 Pull Up/Push Down/Extract Super: Support references to Java-declared superinterfaces
(cherry picked from commit 924bb44)
2016-10-07 18:08:15 +03:00
Alexey Sedunov
b4894c2363 Pull Up/Push Down/Extract Super: Show member dependencies in the refactoring dialog
(cherry picked from commit 22271f0)
2016-10-07 18:08:14 +03:00
Alexey Sedunov
f1ba8b19b0 Pull Up/Extract Super: Support members declared in the companion object of the original class
(cherry picked from commit 8a5628c)
2016-10-07 18:08:13 +03:00
Alexey Sedunov
6828071124 Pull Up/Extract Super: Support properties declared in the primary constructor
(cherry picked from commit 982d4d4)
2016-10-07 18:08:12 +03:00
Sergey Mashkov
c572512c7f KT-13478 Error creating Maven project by archetype: The desired archetype does not exist
don't filter versions in internal mode or if all were filtered out
2016-10-07 17:55:08 +03:00
Sergey Mashkov
1ca952a669 KT-13638 Update Maven configuration actions in IDE according to changes in https://github.com/JetBrains/kotlin-web-site/pull/458 2016-10-07 17:53:39 +03:00
Sergey Mashkov
8f9b47b0cc KT-14003 kotlinc shebang should use env 2016-10-07 14:11:49 +03:00
Valentin Kipyatkov
ff47c97afc Fixed 2016-10-07 14:09:37 +03:00
Valentin Kipyatkov
016de45ca7 Fixed test data 2016-10-07 14:09:37 +03:00
Valentin Kipyatkov
11263194dc Fixed after cherry-pick 2016-10-07 14:09:37 +03:00
Valentin Kipyatkov
de115a1d5f Better tooltip for try
(cherry picked from commit 75d56e4)
2016-10-07 14:09:37 +03:00
Valentin Kipyatkov
4f4000f776 No crash in dumb mode
#KT-13967 Fixed
(cherry picked from commit f1946ae)
2016-10-07 14:09:36 +03:00
Valentin Kipyatkov
e0d21f3920 Better presentation for property accessor
(cherry picked from commit a2976ac)
2016-10-07 14:09:36 +03:00
Valentin Kipyatkov
c7c15f466c All operator usages are searched with new searcher
(cherry picked from commit af0b027)
2016-10-07 14:09:36 +03:00
Valentin Kipyatkov
8fa08230f2 Quick search of getValue/setValue operator usages
(cherry picked from commit ba76e4d)
2016-10-07 14:09:36 +03:00
Valentin Kipyatkov
2bd682ff01 Quick search of iterator operator usages
(cherry picked from commit 75a6b0c)
2016-10-07 14:09:35 +03:00
Valentin Kipyatkov
6254cdf55a Quick search of compareTo operator usages
(cherry picked from commit f2e5662)
2016-10-07 14:09:35 +03:00
Valentin Kipyatkov
65be3c7c53 Quick search of equals operator usages
(cherry picked from commit ee64a1a)
2016-10-07 14:09:35 +03:00
Valentin Kipyatkov
6f548ca64e Optimization
(cherry picked from commit 309d823)
2016-10-07 14:09:35 +03:00
Valentin Kipyatkov
68b6a63ed4 Use partial resolve multiple in operator reference search
(cherry picked from commit 4cc16e4)
2016-10-07 14:09:34 +03:00
Valentin Kipyatkov
b1c2f9a0a5 More efficient way
(cherry picked from commit f181458)
2016-10-07 14:09:34 +03:00
Valentin Kipyatkov
77cd15cced Renames
(cherry picked from commit 5f8dca2)
2016-10-07 14:09:34 +03:00
Valentin Kipyatkov
32c3c5d4bf Refactoring
(cherry picked from commit 32a436e)
2016-10-07 14:09:34 +03:00
Valentin Kipyatkov
d55b1571b1 Refactoring
(cherry picked from commit c8260f8)
2016-10-07 14:09:34 +03:00
Valentin Kipyatkov
60e11fe6c0 Added comments
(cherry picked from commit 7eac49b)
2016-10-07 14:09:33 +03:00
Valentin Kipyatkov
966d5417df More efficient way to check for Kotlin files
(cherry picked from commit 73e3180)
2016-10-07 14:09:33 +03:00
Valentin Kipyatkov
fcc0868dbb Added comments
(cherry picked from commit ee2d487)
2016-10-07 14:09:33 +03:00
Valentin Kipyatkov
02a3bf7b85 Renames
(cherry picked from commit ccc5d74)
2016-10-07 14:09:33 +03:00
Valentin Kipyatkov
c7504d2659 More correct quickfix testing - do not include suppression actions not available at caret
(cherry picked from commit c9bb360)
2016-10-07 14:09:32 +03:00
Valentin Kipyatkov
0abcb3dd78 Adapted to Kotlin 1.0 2016-10-07 14:09:32 +03:00
Valentin Kipyatkov
60cb71ed29 Renames
(cherry picked from commit aec2f19)
2016-10-07 14:09:32 +03:00
Valentin Kipyatkov
10ef92deda KT-8664 Hide componentX() functions for data classes from completion
#KT-8664 Fixed
(cherry picked from commit 2f5e820)
2016-10-07 14:09:32 +03:00
Valentin Kipyatkov
6aee7e9f8e KT-13728 Implicitly imported functions should be above in completion then non-imported
#KT-13728 Fixed
(cherry picked from commit 7263d0a)
2016-10-07 14:09:31 +03:00
Valentin Kipyatkov
5f76043511 KT-13833 javascript: Smart type completion to lower priority of dynamic type
#KT-13833 Fixed
(cherry picked from commit e8f4c65)
2016-10-07 14:09:31 +03:00
Valentin Kipyatkov
1ef76d4cd7 Refactoring + preserving formatting in some more places where it was missing
(cherry picked from commit dca094e)
2016-10-07 14:09:31 +03:00
Valentin Kipyatkov
2ee571e2e8 Some formatting preserving for special methods too
(cherry picked from commit 5a6f068)
2016-10-07 14:09:31 +03:00
Valentin Kipyatkov
56228b32d3 Code refactoring
(cherry picked from commit f4d9909)
2016-10-07 14:09:30 +03:00
Valentin Kipyatkov
f8e2a8fde9 KT-13628 New line is not preserved when converting java to Kotlin
#KT-13628 Fixed
(cherry picked from commit badbcd4)
2016-10-07 14:09:30 +03:00
Valentin Kipyatkov
5537432ce0 Fixed check for convention operator
(cherry picked from commit a552736)
2016-10-07 14:09:30 +03:00
Valentin Kipyatkov
fcb3a97408 Term changes
(cherry picked from commit 57faa5a)
2016-10-07 14:09:30 +03:00
Valentin Kipyatkov
2914c852d9 Changed String to Name
(cherry picked from commit 7699430)
2016-10-07 14:09:29 +03:00
Valentin Kipyatkov
69a4675303 Fixed optimize imports for operators
(cherry picked from commit 17adee6)
2016-10-07 14:09:29 +03:00
Valentin Kipyatkov
2a1e9f3fc4 Optimize imports to prevent accedential changes in resolve because of import priorities
#KT-11640 Fixed
(cherry picked from commit 95a3a29)
2016-10-07 14:09:29 +03:00
Valentin Kipyatkov
087d7743cd Minor
(cherry picked from commit f4c65da)
2016-10-07 14:09:29 +03:00
Denis Zharkov
073b0f1f5c Fix serialVersionUID for EmptyMap and EmptySet
Otherwise removal of redundant special stubs
leads to InvalidClassException during deserialization
2016-10-07 12:00:25 +03:00
Denis Zharkov
5c0edc2781 Avoid generation of redundant abstract special stubs
#KT-13698 Fixed
2016-10-07 12:00:25 +03:00
Denis Zharkov
56015462fc Avoid generation of redundant toArray stubs
#KT-13698 In Progress
2016-10-07 12:00:25 +03:00
Denis Zharkov
0a5cfe504b Optimize method count for collection stubs
Do not generate stubs if they're already present in superclasses

 #KT-13698 In Progress
2016-10-07 12:00:25 +03:00
Denis Zharkov
dd2f0f72b9 Write generic signature for autogenerated toArray
#KT-14195 Fixed
2016-10-07 12:00:25 +03:00
Denis Zharkov
81aa6ee957 Improve exception message in collection stubs 2016-10-07 12:00:25 +03:00
Denis Zharkov
5ce58a6a4c Do not generate collection stubs for Kotlin-specific signatures
#KT-14188 Fixed
2016-10-07 12:00:25 +03:00
Denis Zharkov
6ad102e746 Minor. Extract computation of collection mutable stub list
It's necessary in the next commits to obtain these signatures
without actually emitting any code
2016-10-07 12:00:25 +03:00
Nikolay Krasko
b028efa053 Enable using local caches by default for both TeamCity and local testing 2016-10-06 21:13:37 +03:00
Nikolay Krasko
59c28e4f64 Auto-remove local debugger caches on test data modification 2016-10-06 21:13:37 +03:00
Yan Zhulanow
73307a2ebd Increment PsiModificationTracker counter in a write action 2016-10-06 20:34:26 +03:00
Yan Zhulanow
ee26c19601 Kapt: Handle exceptions during annotation processing gracefully 2016-10-06 20:34:26 +03:00
Yan Zhulanow
5f2b5cf7ac Parse enum arrays correctly 2016-10-06 20:34:26 +03:00
Yan Zhulanow
b566a37f2e Kapt: Support apt options (KT-13984) 2016-10-06 20:34:26 +03:00
Yan Zhulanow
3e0b79e40a Add TransactionGuard application service to KotlinCoreEnvironment 2016-10-06 20:34:25 +03:00
Yan Zhulanow
d86a30bac6 Kapt: Dispose every JeElement and JeTypeMirror because some annotation processors may store them in static fields. (KT-13917)
Hello, Data Binding, why you cache them? :(
2016-10-06 20:34:25 +03:00
Yan Zhulanow
92c9ceaf6b Kapt: typeElement.asType() should preserve type parameters and propagate it to its supertypes (KT-13865) 2016-10-06 20:34:25 +03:00
Yan Zhulanow
59cdbcb587 Kapt: Add test on Map<Key, Intf> and MutableMap<Key, Intf> 2016-10-06 20:34:25 +03:00
Yan Zhulanow
2554d40f83 Kapt: Measure Annotation Processing time 2016-10-06 20:34:24 +03:00
Yan Zhulanow
2f44b0bcc5 Minor: add 'kapt' to dictionary 2016-10-06 20:34:24 +03:00
Yan Zhulanow
1677984250 Kapt: Simplify wrapper tests 2016-10-06 20:34:24 +03:00
Yan Zhulanow
0d97d73b8c Kapt: Support type parameters in asMemberOf() (KT-13804) 2016-10-06 20:34:24 +03:00
Yan Zhulanow
9f9ffdf278 Kapt: asMemberOf() should also check the containing type itself, not only its supertypes (KT-13823) 2016-10-06 20:34:24 +03:00
Yan Zhulanow
bd7a9c6cbd Dispose IntelliJ platform components after annotation processing complete.
Annotation processors may cache ProcessingEnvironment.
2016-10-06 20:34:23 +03:00
Dmitry Jemerov
a9a84c6517 1.0.5 changelog 2016-10-06 17:47:38 +02:00
shiraji
69ddcb5856 Refactoring to use Utils#resolvedToArrayType
(cherry picked from commit 0360d0e)
2016-10-06 14:39:46 +03:00
shiraji
1d0295d5c0 Inspection/Intention replace size check with 'isNotEmpty' and 'isEmpty' #KT-13937 Fixed
(cherry picked from commit 32b7b5a)
2016-10-06 14:39:32 +03:00
Alexey Tsvetkov
8ce7165ab6 Minor: JS test fix 2016-10-05 18:23:55 +03:00
Alexey Tsvetkov
e39005f349 Don't warn about absence of kotlin files
#KT-10401 fixed
2016-10-05 18:23:51 +03:00
Alexey Tsvetkov
7e5ac98f9e Avoid exception when getting relative path
#KT-14056 fixed Target versions 1.0.5
2016-10-05 18:23:45 +03:00
Alexey Tsvetkov
61f75ea7f4 Refactoring: use same module name as Intellij 2016-10-05 18:23:41 +03:00
Dmitry Jemerov
af3d9a453c allow to specify plugin.xml version number as build script parameter
(cherry picked from commit b6e1327)
2016-10-05 17:01:21 +02:00
Dmitry Jemerov
bac3b3a1a8 revert disable version override 2016-10-05 13:30:49 +02:00
Dmitry Jemerov
821ed4b5b1 disable version override 2016-10-05 13:16:17 +02:00
Dmitry Jemerov
0db9dbdd33 fix QualifiedNameTest
(cherry picked from commit 2bd9487)
2016-10-05 11:59:28 +02:00
Dmitry Jemerov
094da68b18 Merge remote-tracking branch 'origin/1.0.5' into 1.0.5 2016-10-05 11:35:32 +02:00
Denis Zharkov
95a949d855 Fix suppress at statement intention for asigmnents
There's no need now to consider precedence of element as
annotation preceding the beginning of block statement
is always now attached to the whole statement

 #KT-11673 Fixed
 #KT-12780 Fixed
2016-10-05 10:31:29 +03:00
Denis Zharkov
0cb41f51a2 Change parsing of statements starting with annotations
If a block statement starts with annotations treat them as they
belong to node of the statement rather than to the closest prefix expression

 #KT-10210 Fixed
2016-10-05 10:31:22 +03:00
Denis Zharkov
77ab2942c2 Remove effectively dead code in parser
`parseLabeledExpression` can only be called from `parsePrefixExpression`,
but the latter in the beginning tries to parse annotated expression,
thus advances any number of AT symbols
2016-10-05 10:31:15 +03:00
Dmitry Jemerov
11e8535551 fix find usages test
(cherry picked from commit 642027d)
2016-10-04 22:34:24 +02:00
Zalim Bashorov
2a31c4ca40 Make IDEA run configuration compatible with IDEA 2016.3; minor auto changes in run configurations.
(cherry picked from commit a07e80f)
2016-10-04 21:58:23 +03:00
Dmitry Jemerov
c430e4eb8f since build for 2016.2 version of the plugin 2016-10-04 19:19:58 +02:00
Dmitry Jemerov
c17edaa53a compilation fix; regenerate tests 2016-10-04 18:53:22 +02:00
Dmitry Jemerov
49bd3fe714 show type of control statements used as expressions
(cherry picked from commit dbbba45)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
d078ebf390 don't show function literals and selectors of qualified expressions in "show expression type"
(cherry picked from commit 02a5856)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
d7b48dc6f1 show detailed smart cast info in "Show expression type" (KT-8803)
(cherry picked from commit 256fd04)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
664213a2e7 don't include properties with declared return type and property accessors in "show expression type" popup
(cherry picked from commit 2141cd2)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
2b0b6bfa72 add test for obsolete KT-11601
(cherry picked from commit e8fcd19)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
690aaf0c14 don't show type of statements if they are not used as expressions
(cherry picked from commit 4f1f313)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
ed01b9be29 use short names in Show Expression Type
#KT-11310 Fixed

(cherry picked from commit 6dccfd3)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
472e3cc8fc test for handling smart casts in "show expression type"
#KT-10588 Fixed

(cherry picked from commit 4346afa)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
4a0995a470 handle multi-declarations in "show expression type"
(cherry picked from commit 032d50b)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
3bfccece79 don't offer functions with block body and functions with declared return type as candidates for "show expression type"
(cherry picked from commit fbd2c48)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
95400a7317 support "show expression type" in variable declaration position
#KT-10095 Fixed

(cherry picked from commit 7b644e2)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
49dbf3ca5d get rid of Kotlin specific "Show expression type" action
#KT-13142 Fixed

(cherry picked from commit 752a745)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
062673ed8b Java-compatible "Copy Reference" action for Kotlin
#KT-13140 Fixed

(cherry picked from commit 39ab1e9)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
0878ba595b show context when invoking Show Implementations from Find Usages popup
#KT-13475 Fixed

(cherry picked from commit cbb2e5c)
2016-10-04 18:53:22 +02:00
Dmitry Jemerov
45e2282426 show two levels of hierarchy when grouping find usages by file structure
#KT-9019 Fixed
 #KT-10178 Fixed

(cherry picked from commit e462a97)
2016-10-04 18:53:22 +02:00
Nikolay Krasko
46791a3852 Create special parameter for branch version auto-increment
Can be used when bootstrap branch differs from the one used for auto-increment.

Auto-increment is guarded by branch parameter to avoid accidental enabling after branches auto-merge.
2016-10-04 19:51:27 +03:00
Nikolay Krasko
02b59be068 J2K: AbstractBytecodeTextTest.java fix compile errors 2016-10-04 18:58:02 +03:00
Nikolay Krasko
93fce1190d J2K: AbstractBytecodeTextTest.java convert 2016-10-04 18:58:02 +03:00
Nikolay Krasko
8edd7be5f2 J2K: AbstractBytecodeTextTest.java rename 2016-10-04 18:58:02 +03:00
Nikolay Krasko
4f438bcd6f Refactoring: hide state of occurrence class 2016-10-04 18:58:02 +03:00
Nikolay Krasko
1ea92800b4 Test several line numbers are generated for one instruction 2016-10-04 18:58:02 +03:00
Nikolay Krasko
6b0938131a Regenerate tests: other order 2016-10-04 18:58:02 +03:00
Nikolay Krasko
5638f31533 Refactoring: no need in DebugProcessImpl.ResumeCommand for getting command action 2016-10-04 18:58:02 +03:00
Nikolay Krasko
0b60cbb944 Add cause exception to AssertionError 2016-10-04 18:58:02 +03:00
Nikolay Krasko
4b08bbd424 Refactoring: create step-over kotlin position and move counting step over specific to create action stage 2016-10-04 18:58:02 +03:00
Nikolay Krasko
2daac45d1b Refactoring: extract top-level functions from KotlinSteppingCommandProvider 2016-10-04 18:58:02 +03:00
Nikolay Krasko
f131be0dc4 Revert using temp directory for building debugger application by default 2016-10-04 18:58:02 +03:00
Denis Zharkov
7ae0f037ee Fix accidental overrides computation
Consider the whole overridden tree instead of only direct overridden

 #KT-14146 Fixed
2016-10-04 16:48:54 +03:00
Denis Zharkov
2d16501604 Set up tests for postfix templates properly
If there are some other completion-like tests before these ones
it may lead to the situation when some value is already written by
`previouslySuggestedExpressions`, so it should be cleared in setUp
2016-10-04 14:17:18 +03:00
Alexander Udalov
5eeb8d90d6 Report error on declaring 'getClass' in class or package
#KT-14147 Fixed

(cherry picked from commit 597912824b)
2016-10-04 10:52:56 +03:00
Dmitry Petrov
a87df61121 KT-14025 CCE in OverloadResolver.findRedeclarations 2016-10-03 12:00:25 +03:00
Denis Zharkov
f767c4e52d Replace local delegated property with it's emulation
Local delegated properties don't work in 1.0.5
2016-09-30 20:02:17 +03:00
Denis Zharkov
2a69b3b7c3 Refine expression kind definition in postfix templates
- Do not treat if without else as values
- Some statements aren't contained in block (see tests)

 #KT-14107 Fixed
 #KT-14110 Fixed
2016-09-30 18:48:12 +03:00
Denis Zharkov
7704ec233d Refine default postfix templates selector
There is new settings checkCanBeUsedAsValue
Also expression filtering are split into to parts:
- getNonFilteredExpressions is trivially goes until it reaches
first block body of some declarations
- all additional filtering is merged into Condition that is passed into
PostfixTemplateExpressionSelectorBase super-call

Notable changes for users:
- do not suggest try for non-top-level expressions
- do not suggest var/par/etc for loops
2016-09-30 18:48:12 +03:00
Denis Zharkov
013e35a929 Suggest postfix templates on lambda expressions 2016-09-30 18:48:12 +03:00
Denis Zharkov
fd1c59e24b Do not suggest assignment as a subject in postfix templates
#KT-14077 Fixed
2016-09-30 18:48:12 +03:00
Denis Zharkov
b5d58e70bd Allow if/when/try postfix templates in expression position
#KT-14078 Fixed
2016-09-30 18:48:12 +03:00
Denis Zharkov
e22f5419aa Suggest assert/return postfix templates only for statements
#KT-14079 Fixed
 #KT-14090 Fixed
2016-09-30 18:48:12 +03:00
Denis Zharkov
d1a0ad5023 Do not suggest operation references in postfix templates
#KT-14087 Fixed
2016-09-30 18:48:12 +03:00
Denis Zharkov
18a51694bc Enhance tests for postfix templates
Prohibit multiple suggested expressions in test mode
2016-09-30 18:48:12 +03:00
Valentin Kipyatkov
e466012d55 Fixed wrong test
(cherry picked from commit b0ed6ad)
2016-09-30 17:35:01 +03:00
Valentin Kipyatkov
ddd950c5a6 Fixed bug found because of incorrect test fixed
(cherry picked from commit 6baf633)
2016-09-30 17:34:51 +03:00
Valentin Kipyatkov
d30703aed4 Removed redundant and confusing .after files in negative tests
(cherry picked from commit be8b31e)
2016-09-30 17:34:01 +03:00
Valentin Kipyatkov
3048ba0eaa KT-13953 Import member popup should not suggest methods when only property or variable is valid
#KT-13953 Fixed
(cherry picked from commit 038068a)
2016-09-30 17:33:53 +03:00
Mikhail Glukhikh
47446b7442 Minor refactoring: convert secondary constructor to primary 2016-09-30 16:30:09 +03:00
Mikhail Glukhikh
9a3e6d3545 Minor: secondary constructor to primary is suggested only on keyword and value parameter list 2016-09-30 16:09:16 +03:00
Mikhail Glukhikh
aec0090ae2 KT-9839 related, secondary constructor to primary: inspection for the single constructor 2016-09-30 15:56:07 +03:00
Mikhail Glukhikh
48a1853d6d KT-9839 related, primary constructor to secondary: comment restoration 2016-09-30 15:55:57 +03:00
Mikhail Glukhikh
998e39e48b KT-9839 related, secondary constructor to primary: comment restoration 2016-09-30 15:55:48 +03:00
Mikhail Glukhikh
f3fa779762 KT-9839: intention introduced: convert secondary constructor to primary one #KT-9839 Fixed 2016-09-30 15:55:09 +03:00
Mikhail Glukhikh
b90414ac21 KT-9839: convert primary constructor to secondary one: leave independent properties in class body as is 2016-09-30 15:54:39 +03:00
Mikhail Glukhikh
93aaa48f33 KT-9839: intention introduced: convert primary constructor to secondary one 2016-09-30 12:27:46 +03:00
Alexey Andreev
c909b5c93c KT-13825: write simple name of class to constructor.$metadata$.simpleName. 2016-09-30 12:10:08 +03:00
Valentin Kipyatkov
da52b4c57b Fixed for old PSI and 1.0 Kotlin-syntax 2016-09-29 23:18:42 +03:00
Valentin Kipyatkov
5669df9a05 Fixed test data 2016-09-29 23:18:42 +03:00
Valentin Kipyatkov
1d97e42fba Returned lost inspection 2016-09-29 23:18:42 +03:00
Valentin Kipyatkov
52f8f2e56b Fixed compilation after cherry-picks 2016-09-29 23:18:41 +03:00
Valentin Kipyatkov
b76eac5b23 Corrections on code review
(cherry picked from commit 023c02d)
2016-09-29 23:18:41 +03:00
Valentin Kipyatkov
49fb93600b Better texts of change variable type quickfixes
(cherry picked from commit e4f80e2)
2016-09-29 23:18:41 +03:00
Valentin Kipyatkov
83b6080deb Made AddToStringFix low priority
(cherry picked from commit 80d82d2)
2016-09-29 23:18:41 +03:00
Valentin Kipyatkov
0d48b4895f Fix after cherry-pick 2016-09-29 23:18:40 +03:00
Valentin Kipyatkov
8547d00eac Better texts for quickfixes to change return type
(cherry picked from commit dab6f7d)
2016-09-29 23:18:40 +03:00
Valentin Kipyatkov
c2b28ec884 Fixed intentions
(cherry picked from commit f5a34ca)
2016-09-29 23:18:40 +03:00
Valentin Kipyatkov
23f00a27f8 KT-12852 Support breadcrumbs for Kotlin
#KT-12852 Fixed
(cherry picked from commit fcce1e3)
2016-09-29 23:18:39 +03:00
Valentin Kipyatkov
8d5ce01af3 Better tests
(cherry picked from commit f6b471a)
2016-09-29 23:18:39 +03:00
Valentin Kipyatkov
6c0c2fcb4a KT-13047 Autocomplete inserts a fully-qualified variable name inside a String
KT-12083 String interpolation -- auto {} if there is a letter after cursor

 #KT-13047 Fixed
 #KT-12083 Fixed
(cherry picked from commit 5bf701a)
2016-09-29 23:18:39 +03:00
Valentin Kipyatkov
4d12ebade3 Refactored to ensure use of correct options
(cherry picked from commit 1d24fc3)
2016-09-29 23:18:39 +03:00
Valentin Kipyatkov
f0085f0471 Fixed use of options
(cherry picked from commit 32e4a03)
2016-09-29 23:18:38 +03:00
Valentin Kipyatkov
6de07c3bf1 Shorten references to use analyze() for multiple elements
(cherry picked from commit fc27212)
2016-09-29 23:18:38 +03:00
Valentin Kipyatkov
274638c8fc Added TODO
(cherry picked from commit 6efb3ac)
2016-09-29 23:18:38 +03:00
Valentin Kipyatkov
0dde5403b4 Added TODO
(cherry picked from commit 215b870)
2016-09-29 23:18:37 +03:00
Valentin Kipyatkov
9ed8353982 Used analyze to multiple elements for copy/paste
(cherry picked from commit dd6b5ab)
2016-09-29 23:18:37 +03:00
Valentin Kipyatkov
b923f0a61e Minor
(cherry picked from commit 5a5a6d4)
2016-09-29 23:18:37 +03:00
Valentin Kipyatkov
3d09709af4 Implemented ability to analyze to multiple elements at once
(cherry picked from commit bcfa31d)
2016-09-29 23:18:37 +03:00
Valentin Kipyatkov
7c1241e318 KT-13675 Ctrl-W: cannot select type argument in return type
#KT-13675 Fixed
(cherry picked from commit 36c2b01)
2016-09-29 23:18:36 +03:00
Valentin Kipyatkov
e0b2ec370f Renamed file
(cherry picked from commit 73828d1)
2016-09-29 23:18:36 +03:00
Valentin Kipyatkov
88c4dbdf18 Fixed test data
(cherry picked from commit 8d16af4)
2016-09-29 23:18:35 +03:00
Valentin Kipyatkov
28112cf799 Supported object value access expressions
(cherry picked from commit 6d028fb)
2016-09-29 23:18:35 +03:00
Valentin Kipyatkov
fb175eb3fc Added TODO
(cherry picked from commit e8471b4)
2016-09-29 23:18:35 +03:00
Valentin Kipyatkov
4cd8f43c7c Added progress when searching invoke() by plain search
(cherry picked from commit 77dfbda)
2016-09-29 23:18:34 +03:00
Valentin Kipyatkov
fdea66de3e Fixes after cherry-picks 2016-09-29 23:18:34 +03:00
Valentin Kipyatkov
04e8579c4e Renamed class
(cherry picked from commit b1a6255)
2016-09-29 23:18:34 +03:00
Valentin Kipyatkov
0e21afa048 Added @TestOnly
(cherry picked from commit 29831f6)
2016-09-29 23:18:33 +03:00
Valentin Kipyatkov
244e71028c Better test
(cherry picked from commit 82089da)
2016-09-29 23:18:33 +03:00
Valentin Kipyatkov
479706ab28 Down-shift to plain search if reference in unknown language encountered
(cherry picked from commit 5b638f5)
2016-09-29 23:18:32 +03:00
Valentin Kipyatkov
c4eec30aa0 Minor refactoring
(cherry picked from commit e314e22)
2016-09-29 23:18:32 +03:00
Valentin Kipyatkov
c479a06db6 Minor optimization
(cherry picked from commit 63ed93d)
2016-09-29 23:18:32 +03:00
Valentin Kipyatkov
b1f98943fc Fixed the case of public from private class inheritance in Java
(cherry picked from commit a6a7075)
2016-09-29 23:18:31 +03:00
Valentin Kipyatkov
90fae9afb0 Covered case when variable of our type is multi-declaration entry
(cherry picked from commit 904017e)
2016-09-29 23:18:31 +03:00
Valentin Kipyatkov
713226a8ab Added comments
(cherry picked from commit 7b907e6)
2016-09-29 23:18:30 +03:00
Valentin Kipyatkov
8e08831ca7 Fixed test
(cherry picked from commit 2322ecb)
2016-09-29 23:18:30 +03:00
Valentin Kipyatkov
515d574faf Refactored reference searches to take read-actions when necessary
(cherry picked from commit 4e0c3fc)
2016-09-29 23:18:30 +03:00
Valentin Kipyatkov
ffcf51ca91 Converted to Kotlin and edited
(cherry picked from commit 637da2e)
2016-09-29 23:18:29 +03:00
Valentin Kipyatkov
73f99bdf4d Fixed assertion about read-action
(cherry picked from commit 843ff15)
2016-09-29 23:18:29 +03:00
Valentin Kipyatkov
c065eb9b8b Fixed find usages for Java's invoke()
(cherry picked from commit d7a94ac)
2016-09-29 23:18:28 +03:00
Valentin Kipyatkov
04351e3f71 KT-13605 Find Usages fails to find usages of component function defined in Java
#KT-13605 Fixed
(cherry picked from commit 4785568)
2016-09-29 23:18:28 +03:00
Valentin Kipyatkov
439c3b3e11 Fixed test data
(cherry picked from commit 5e52e74)
2016-09-29 23:18:28 +03:00
Valentin Kipyatkov
eefd74af5b Fixed operator references search for functions declared in Java
(cherry picked from commit 0158ff4)
2016-09-29 23:18:27 +03:00
Valentin Kipyatkov
1974187664 Fast search of contains operator
(cherry picked from commit f6fbd0b)
2016-09-29 23:18:27 +03:00
Valentin Kipyatkov
5597791e79 Optimization
(cherry picked from commit 5ce780c)
2016-09-29 23:18:27 +03:00
Valentin Kipyatkov
b9ce06e42b Fast get/set operators search
(cherry picked from commit 0f32574)
2016-09-29 23:18:26 +03:00
Valentin Kipyatkov
c4005ef4d4 Fast search of assignment operations
(cherry picked from commit eeea85c)
2016-09-29 23:18:26 +03:00
Valentin Kipyatkov
0be6e018df Fast unary operators search
(cherry picked from commit cdf3284)
2016-09-29 23:18:25 +03:00
Valentin Kipyatkov
a71e419897 More correct operator treatment
(cherry picked from commit 322df5b)
2016-09-29 23:18:25 +03:00
Valentin Kipyatkov
92327ae411 More information in log
(cherry picked from commit 43f8fbe)
2016-09-29 23:18:24 +03:00
Valentin Kipyatkov
0663311e9a Minor change in log
(cherry picked from commit e1c1c5f)
2016-09-29 23:18:24 +03:00
Valentin Kipyatkov
d3af0c03c4 More information in log
(cherry picked from commit 8fd9b4a)
2016-09-29 23:18:23 +03:00
Valentin Kipyatkov
de712c23c3 Implemented fast search for binary operators
(cherry picked from commit 1ca698c)
2016-09-29 23:18:23 +03:00
Valentin Kipyatkov
34fa529dda Refactored to avoid code duplication
(cherry picked from commit f2c0d13)
2016-09-29 23:18:22 +03:00
Valentin Kipyatkov
0bc08f3829 Implemented fast search for invoke operator calls
#KT-13643 Fixed
(cherry picked from commit e3b37f9)
2016-09-29 23:18:22 +03:00
Valentin Kipyatkov
0d5b5ed95b Refactored component usages search extracted search for expressions of given type
(cherry picked from commit e1c7d07)
2016-09-29 23:18:22 +03:00
Valentin Kipyatkov
18a2e31ad1 Minor
(cherry picked from commit d93525d)
2016-09-29 23:18:21 +03:00
Valentin Kipyatkov
8fbf667c89 Some more fixes 2016-09-29 23:18:21 +03:00
Valentin Kipyatkov
b507795f88 Do not include "operator" and "infix" into completion item text for override
(cherry picked from commit efac7a1)
2016-09-29 23:18:20 +03:00
Valentin Kipyatkov
dd9f6d9337 Minor changes
(cherry picked from commit e363809)
2016-09-29 23:18:19 +03:00
Valentin Kipyatkov
8bdc8d4ac6 Optimization: don't search named arguments
(cherry picked from commit 05fae1d)
2016-09-29 23:18:19 +03:00
Valentin Kipyatkov
58ce403746 More correct down-shifting to plain search
(cherry picked from commit 29f6108)
2016-09-29 23:18:18 +03:00
Valentin Kipyatkov
9c48638d58 Ignore usages in XML
(cherry picked from commit 6562412)
2016-09-29 23:18:17 +03:00
Valentin Kipyatkov
819ec7babe Fixed bug with class using data class as type parameter in supers list
(cherry picked from commit 06eea53)
2016-09-29 23:18:17 +03:00
Valentin Kipyatkov
1dee8189eb Use one KtDestructuringDeclarationReference per each entry - better highlight usages and other actions
(cherry picked from commit b332867)
2016-09-29 23:18:17 +03:00
Valentin Kipyatkov
c68dae16b6 Down-shifting to plain search when operator usage search required
(cherry picked from commit 9cd7e9d)
2016-09-29 23:18:16 +03:00
Valentin Kipyatkov
cb8ee4149e Fixed infinite recursion
(cherry picked from commit 5682c91)
2016-09-29 23:18:16 +03:00
Valentin Kipyatkov
0bd6308e78 Better testing
(cherry picked from commit 9022c71)
2016-09-29 23:18:16 +03:00
Valentin Kipyatkov
61a3a11b22 Fixed typo
(cherry picked from commit d2ee10d)
2016-09-29 23:18:15 +03:00
Valentin Kipyatkov
2a0fe9ed27 Supported usage in super type list without parenthesis
(cherry picked from commit 8bfc746)
2016-09-29 23:18:14 +03:00
Valentin Kipyatkov
6fb10c5983 Class literal access supported
(cherry picked from commit 5c1e42a)
2016-09-29 23:18:14 +03:00
Valentin Kipyatkov
dff9b37da9 Callable references handled
(cherry picked from commit 4cab04b)
2016-09-29 23:18:14 +03:00
Valentin Kipyatkov
961663935a Extracted method
(cherry picked from commit 6af9567)
2016-09-29 23:18:13 +03:00
Valentin Kipyatkov
31e98b23b1 Supported access to companion object members
(cherry picked from commit 450d0dd)
2016-09-29 23:18:13 +03:00
Valentin Kipyatkov
e2d67036da More actions logged in tests
(cherry picked from commit 63d4491)
2016-09-29 23:18:13 +03:00
Valentin Kipyatkov
af6c28ddc9 Removed unused
(cherry picked from commit 482225f)
2016-09-29 23:18:13 +03:00
Valentin Kipyatkov
f9848946a4 Better log
(cherry picked from commit 724886c)
2016-09-29 23:18:12 +03:00
Valentin Kipyatkov
8250d785a8 Split test for 'for'
(cherry picked from commit f447321)
2016-09-29 23:18:12 +03:00
Valentin Kipyatkov
cf2bac8e4c Split one more test
(cherry picked from commit c864fce)
2016-09-29 23:18:12 +03:00
Valentin Kipyatkov
def568acec Split test for whens
(cherry picked from commit 1221b6b)
2016-09-29 23:18:11 +03:00
Valentin Kipyatkov
3c52183e56 And one more split test
(cherry picked from commit dc1f2d5)
2016-09-29 23:18:11 +03:00
Valentin Kipyatkov
d79b934af4 One more split test
(cherry picked from commit be94fe7)
2016-09-29 23:18:11 +03:00
Valentin Kipyatkov
949137cf02 Split test
(cherry picked from commit 0d9656d)
2016-09-29 23:18:11 +03:00
Valentin Kipyatkov
f81bec2569 Better testing via logging of performed operations
(cherry picked from commit 2ca163a)
2016-09-29 23:18:10 +03:00
Valentin Kipyatkov
a6b97eeede Optimization
(cherry picked from commit 1e80ad3)
2016-09-29 23:18:10 +03:00
Valentin Kipyatkov
17c730c495 SAM-adapters supported
(cherry picked from commit 7a269a0)
2016-09-29 23:18:10 +03:00
Valentin Kipyatkov
6f138ee18d Added TODO
(cherry picked from commit d0d8ea7)
2016-09-29 23:18:10 +03:00
Valentin Kipyatkov
8d35065482 Disabled smart search for classes from library
(cherry picked from commit 1183816)
2016-09-29 23:18:09 +03:00
Valentin Kipyatkov
69cab90b90 Added TODO
(cherry picked from commit 6f21c07)
2016-09-29 23:18:09 +03:00
Valentin Kipyatkov
db6c5afe01 "!is" in when case
(cherry picked from commit e00c8d6)
2016-09-29 23:18:09 +03:00
Valentin Kipyatkov
85c8661a73 Handling of 2 more class of cases:
1. Function has parameter of functional type with our data class inside
2. Value of data class type used in a call with lambda
(cherry picked from commit 5b31020)
2016-09-29 23:18:08 +03:00
Valentin Kipyatkov
594d655970 this@ClassName supported
(cherry picked from commit ca2cd3d)
2016-09-29 23:18:08 +03:00
Valentin Kipyatkov
8e8471a3e1 Supported "is" in when entry condition
(cherry picked from commit 7687c16)
2016-09-29 23:18:08 +03:00
Valentin Kipyatkov
a29573f8d0 Different modes of search
Down-shift to plain search in non-test mode if unknown reference encountered
Internal action to check search algorithm
(cherry picked from commit ecb1910)
2016-09-29 23:18:08 +03:00
Valentin Kipyatkov
ab9083b445 Supported usages as doc-comments
(cherry picked from commit d13cdc6)
2016-09-29 23:18:07 +03:00
Valentin Kipyatkov
8d74b89d72 Supported usages as destructuring declaration for other class
(cherry picked from commit 696f382)
2016-09-29 23:18:07 +03:00
Valentin Kipyatkov
c533c692f7 Plain search inside members and extensions
(cherry picked from commit 80520b4)
2016-09-29 23:18:07 +03:00
Valentin Kipyatkov
72f16c2659 Correct processing of "is" check
(cherry picked from commit 3910f31)
2016-09-29 23:18:07 +03:00
Valentin Kipyatkov
4407081277 Added runReadAction (but it's incorrect anyway)
(cherry picked from commit 25ab660)
2016-09-29 23:18:06 +03:00
Valentin Kipyatkov
8c4778a4e0 Support for 'as' and temporary support for 'is'
(cherry picked from commit 5d427d8)
2016-09-29 23:18:06 +03:00
Valentin Kipyatkov
c759ad0f42 Initial implementation of faster component function usage search
(cherry picked from commit 1674beb)
2016-09-29 23:18:06 +03:00
Valentin Kipyatkov
26d84c73c3 Fixed test data
(cherry picked from commit 17edbac)
2016-09-29 23:18:05 +03:00
Simon Ogorodnik
447c0f1c74 MultiFile tests now support java + kotlin testing. // FILE directive now accepts path in source root instead of just name
(cherry picked from commit 67c916a)
2016-09-29 23:18:05 +03:00
Valentin Kipyatkov
bc4ac857b3 Minor changes on code review
(cherry picked from commit 5f24b68)
2016-09-29 23:18:05 +03:00
Valentin Kipyatkov
529a0a7739 Renamed classes
(cherry picked from commit 9cddd0d)
2016-09-29 23:18:05 +03:00
Valentin Kipyatkov
1f345e8dbc Don't use term "Static import" + refer quickfix by class name in negative tests
(cherry picked from commit cbae3d7)
2016-09-29 23:18:04 +03:00
Valentin Kipyatkov
cb00bb3a5c Changes on review of pull request
(cherry picked from commit 0072bf0)
2016-09-29 23:18:04 +03:00
Simon Ogorodnik
ae4629f07c Added tests, and fixed some bugs using it
(cherry picked from commit 939b476)
2016-09-29 23:18:04 +03:00
Simon Ogorodnik
1582ac8c02 Added ability to test quickfix with java dependencies
(cherry picked from commit 251d87f)
2016-09-29 23:18:04 +03:00
Simon Ogorodnik
67b76d87e5 Refactored to use exiting impl of AutoImportBase
(cherry picked from commit f40bb57)
2016-09-29 23:18:03 +03:00
Simon Ogorodnik
cb86542963 #KT-9009 fixed
(cherry picked from commit 9d56716)
2016-09-29 23:18:03 +03:00
Valentin Kipyatkov
08b3fd4913 Renamed method
(cherry picked from commit 512fb3f)
2016-09-29 23:18:03 +03:00
Valentin Kipyatkov
6789e790f3 Hopefully fixed EA-87200 - TCE: UtilsKt.tryChangeAndCheckErrors
#EA-87200 Fixed
(cherry picked from commit f21f237)
2016-09-29 23:18:02 +03:00
Valentin Kipyatkov
b685ee5782 Groupped tests by folders
(cherry picked from commit 2d875e5)
2016-09-29 23:18:02 +03:00
Valentin Kipyatkov
f5fa590fff sum and sumBy supported
(cherry picked from commit d0f6e25)
2016-09-29 23:18:01 +03:00
Valentin Kipyatkov
5d083b62e0 Corrected comment
(cherry picked from commit 7c92f79)
2016-09-29 23:18:01 +03:00
Valentin Kipyatkov
59f7bcc65b Better test
(cherry picked from commit 61d1826)
2016-09-29 23:18:00 +03:00
Valentin Kipyatkov
dcaf15dfda Math.max/min pattern for min/max supported
(cherry picked from commit 91954e1)
2016-09-29 23:18:00 +03:00
Valentin Kipyatkov
fe98642d01 Another pattern for min/max supported
(cherry picked from commit 84fd24a)
2016-09-29 23:18:00 +03:00
Valentin Kipyatkov
ec03f65b88 max()/minI() supported
(cherry picked from commit 930f796)
2016-09-29 23:17:59 +03:00
Valentin Kipyatkov
d53ab86999 KT-13482 "Loop can be replaced with stdlib operations" changes semantics
#KT-13482 Fixed
(cherry picked from commit 26cdd0d)
2016-09-29 23:17:59 +03:00
Valentin Kipyatkov
e62d144506 Preserve formatting of parenthesis in calls too
(cherry picked from commit 38edb58)
2016-09-29 23:17:59 +03:00
Valentin Kipyatkov
73b44b74aa Introduced Identifier.withNoPrototype()
(cherry picked from commit 8729420)
2016-09-29 23:17:58 +03:00
Valentin Kipyatkov
7419311a23 KT-11804 J2K: incorrect closing parenthesis position for method split to several lines
#KT-11804 Fixed
(cherry picked from commit 0554e17)
2016-09-29 23:17:58 +03:00
Valentin Kipyatkov
9688eb54b7 Use of Block.of()
(cherry picked from commit 20c17fc)
2016-09-29 23:17:58 +03:00
Valentin Kipyatkov
760fcc92f0 KT-13529 Java function is not always converted to Kotlin after paste
#KT-13529 Fixed
(cherry picked from commit c9d3353)
2016-09-29 23:17:58 +03:00
Valentin Kipyatkov
dd6b0f8c3b KT-13298 Suggest names for overridden properties / functions in completion
#KT-13298 Fixed
(cherry picked from commit 7f07890)
2016-09-29 23:17:57 +03:00
Valentin Kipyatkov
1abb37205a Moved class
(cherry picked from commit 7ebf001)
2016-09-29 23:17:57 +03:00
Valentin Kipyatkov
1dffd114d7 arrayListOf, mutableListOf, hashSetOf and mutableSetOf supported
(cherry picked from commit 8e6a01f)
2016-09-29 23:17:57 +03:00
Valentin Kipyatkov
d8d9809e33 More correct checking of smart cast preserving
(cherry picked from commit 054558a)
2016-09-29 23:17:56 +03:00
Valentin Kipyatkov
bc798db8a0 Added tests
(cherry picked from commit bfed954)
2016-09-29 23:17:56 +03:00
Valentin Kipyatkov
55a482f7e8 Added comment
(cherry picked from commit f5530c8)
2016-09-29 23:17:56 +03:00
Valentin Kipyatkov
7b51438034 Moved shouldUseInputVariable from Transformation to TransformationMatcher and changed its semantics a bit
(cherry picked from commit e327243)
2016-09-29 23:17:56 +03:00
Valentin Kipyatkov
737d3139e3 Added comment
(cherry picked from commit a5c7d4f)
2016-09-29 23:17:55 +03:00
Valentin Kipyatkov
b9b5f67143 Minor refactoring
(cherry picked from commit 50cd61e)
2016-09-29 23:17:55 +03:00
Valentin Kipyatkov
16fd7a3742 Used utility
(cherry picked from commit 407a3dd)
2016-09-29 23:17:55 +03:00
Valentin Kipyatkov
d9d5386ef1 Fixed bug
(cherry picked from commit dde397f)
2016-09-29 23:17:54 +03:00
Valentin Kipyatkov
a39ba4db65 Option to use 'asSequence()'
(cherry picked from commit bdd4363)
2016-09-29 23:17:54 +03:00
Valentin Kipyatkov
f82d788aae Minor
(cherry picked from commit acdf9e8)
2016-09-29 23:17:53 +03:00
Valentin Kipyatkov
9fd4b92905 Fixed bug with user data not cleared
(cherry picked from commit 77064c7)
2016-09-29 23:17:53 +03:00
Valentin Kipyatkov
920bde3048 Minor
(cherry picked from commit f4a04f0)
2016-09-29 23:17:53 +03:00
Valentin Kipyatkov
ab219ad3e0 More clear code
(cherry picked from commit c753e33)
2016-09-29 23:17:53 +03:00
Valentin Kipyatkov
c19a1a79b0 Typo correction
(cherry picked from commit 1fece52)
2016-09-29 23:17:52 +03:00
Valentin Kipyatkov
3bad66ffbd Formatting of "?:" onto the next line
(cherry picked from commit 128896f)
2016-09-29 23:17:52 +03:00
Valentin Kipyatkov
e29a4764f1 Code refactoring
(cherry picked from commit 9890ceb)
2016-09-29 23:17:52 +03:00
Valentin Kipyatkov
cefcde52a0 Added comments
(cherry picked from commit c9fa959)
2016-09-29 23:17:51 +03:00
Valentin Kipyatkov
83e8c2ff34 Removed warnings
(cherry picked from commit dd50f55)
2016-09-29 23:17:51 +03:00
Valentin Kipyatkov
75955c1a63 Added one more test
(cherry picked from commit 7c0f9a7)
2016-09-29 23:17:51 +03:00
Valentin Kipyatkov
7038378d2c Added test and asserts
(cherry picked from commit e5903f9)
2016-09-29 23:17:50 +03:00
Valentin Kipyatkov
be5eb571bc Corrected test data after rebase on master
(cherry picked from commit 8b4f8e8)
2016-09-29 23:17:50 +03:00
Valentin Kipyatkov
04fa7f8e92 Minor changes on code review
(cherry picked from commit da772e1)
2016-09-29 23:17:50 +03:00
Valentin Kipyatkov
bfde50d083 "Use withIndex()" intention&inspection
(cherry picked from commit d658d3b)
2016-09-29 23:17:49 +03:00
Valentin Kipyatkov
c7a64e697e Refactoring
(cherry picked from commit 46055df)
2016-09-29 23:17:49 +03:00
Valentin Kipyatkov
0abbfecfbc Added utility from master 2016-09-29 23:17:49 +03:00
Valentin Kipyatkov
00c3f25a7c Supported index++ pattern as non-last statement and even inside expressions
(cherry picked from commit ebdff775f3)
2016-09-29 23:17:49 +03:00
Valentin Kipyatkov
5b4da3350a Added TODO
(cherry picked from commit 2c90114)
2016-09-29 23:17:48 +03:00
Valentin Kipyatkov
bb10b3dd15 Supported forEachIndexed
(cherry picked from commit 4094d77)
2016-09-29 23:17:48 +03:00
Valentin Kipyatkov
dbef33a3ef Supported forEach
(cherry picked from commit f28dca1)
2016-09-29 23:17:48 +03:00
Valentin Kipyatkov
0d37461cda Checking type of the collection being iterated
(cherry picked from commit 394cce8)
2016-09-29 23:17:47 +03:00
Valentin Kipyatkov
a005ab96ab Minor changes on code review
(cherry picked from commit 89dab52)
2016-09-29 23:17:47 +03:00
Valentin Kipyatkov
bc8d4d43a5 Supported indexOf/lastIndexOf
(cherry picked from commit c2103e2)
2016-09-29 23:17:47 +03:00
Valentin Kipyatkov
46a3db0557 Code simplification
(cherry picked from commit c080ecb)
2016-09-29 23:17:46 +03:00
Valentin Kipyatkov
64d32fd366 Refactoring
(cherry picked from commit 87c9af5)
2016-09-29 23:17:46 +03:00
Valentin Kipyatkov
5fb4cde8cc Supported contains()
(cherry picked from commit 834fe9d)
2016-09-29 23:17:46 +03:00
Valentin Kipyatkov
c6fbd620ce Fixed some cases when smart cast problems were not detected
(cherry picked from commit 833f62e)
2016-09-29 23:17:45 +03:00
Valentin Kipyatkov
b43368a4e8 Remove fq-name
(cherry picked from commit fe52bed)
2016-09-29 23:17:45 +03:00
Valentin Kipyatkov
47c7625498 Merging loop with initialization before in more cases + better formatting
(cherry picked from commit e8904d7)
2016-09-29 23:17:45 +03:00
Valentin Kipyatkov
a738015685 Refactoring
(cherry picked from commit 5ddac24)
2016-09-29 23:17:45 +03:00
Valentin Kipyatkov
77e4306f8b Supported indexOfFirst/indexOfLast
(cherry picked from commit b65ecdd)
2016-09-29 23:17:44 +03:00
Valentin Kipyatkov
b0408408b6 Merging subsequent filtering checks even when index variable is used
(cherry picked from commit 5ac2c48)
2016-09-29 23:17:44 +03:00
Valentin Kipyatkov
8ecfa447b4 Do not generate redundant .toList()
(cherry picked from commit aa6240a)
2016-09-29 23:17:44 +03:00
Valentin Kipyatkov
a9e770b513 Added TODO
(cherry picked from commit 813060f)
2016-09-29 23:17:43 +03:00
Valentin Kipyatkov
b3f60d1d96 Minor
(cherry picked from commit 9ea6341)
2016-09-29 23:17:43 +03:00
Valentin Kipyatkov
88c4dbc941 Merged all map-transformations into one class
(cherry picked from commit 4efc8fa)
2016-09-29 23:17:43 +03:00
Valentin Kipyatkov
126773e453 Supported mapIndexedTo and mapIndexedNotNullTo
(cherry picked from commit b6e05e0)
2016-09-29 23:17:42 +03:00
Valentin Kipyatkov
e8f5009236 Supported mapNotNullTo
(cherry picked from commit 2652ea4)
2016-09-29 23:17:42 +03:00
Valentin Kipyatkov
1f115801aa Supported other patterns for mapNotNull
(cherry picked from commit 8c7cdf1)
2016-09-29 23:17:42 +03:00
Valentin Kipyatkov
f79b61f6a6 Prohibiting incorrect transformations of loops with expression-embedded break or continue + allowed "?: continue" pattern for mapNotNull
(cherry picked from commit a6132c7)
2016-09-29 23:17:41 +03:00
Valentin Kipyatkov
0c512922ee Checking that target collection is always the same
(cherry picked from commit cfc82c5)
2016-09-29 23:17:41 +03:00
Valentin Kipyatkov
5c11d7bdbf takeWhile supported
(cherry picked from commit 3f563f7)
2016-09-29 23:17:41 +03:00
Valentin Kipyatkov
ff05ce7a5f filterNotTo supported
(cherry picked from commit 9ff0f4d)
2016-09-29 23:17:40 +03:00
Valentin Kipyatkov
c334a6ab31 filterIsInstanceTo NOT supported
(cherry picked from commit 0a61e5b)
2016-09-29 23:17:40 +03:00
Valentin Kipyatkov
3c0d8e3e3f filterNotNullTo supported
(cherry picked from commit 395e61c)
2016-09-29 23:17:40 +03:00
Valentin Kipyatkov
62e8b24b37 Supported filterIndexedTo
(cherry picked from commit 318f3df)
2016-09-29 23:17:39 +03:00
Valentin Kipyatkov
5522860727 Reduced amount of ResultTransformation implementations
(cherry picked from commit 7c473e7)
2016-09-29 23:17:39 +03:00
Valentin Kipyatkov
246162aa3b More correct and easy comment restoring range management
(cherry picked from commit a07bbf4)
2016-09-29 23:17:39 +03:00
Valentin Kipyatkov
0e50ba7195 Supported case when result variable initialization is not right before the loop
(cherry picked from commit 27063bc)
2016-09-29 23:17:38 +03:00
Valentin Kipyatkov
97c29e27fd Split into more files
(cherry picked from commit 9b69c5c)
2016-09-29 23:17:38 +03:00
Valentin Kipyatkov
8d2d019f3f Moved classes into separate file
(cherry picked from commit b24aee9)
2016-09-29 23:17:38 +03:00
Valentin Kipyatkov
907513444d Recognizing manually incremented index
(cherry picked from commit d61daed)
2016-09-29 23:17:37 +03:00
Valentin Kipyatkov
4e1288171a Initial support for indexed transformations
(cherry picked from commit 14e87b1)
2016-09-29 23:17:37 +03:00
Valentin Kipyatkov
1ad4c46024 Transformation not necessary has real input variable
(cherry picked from commit 955e116)
2016-09-29 23:17:37 +03:00
Valentin Kipyatkov
42a067362f Checking that input variable is really used
(cherry picked from commit e0a7e1d)
2016-09-29 23:17:36 +03:00
Valentin Kipyatkov
7bfce47c20 More usable caret position
(cherry picked from commit 345f2b8)
2016-09-29 23:17:36 +03:00
Valentin Kipyatkov
cbb659b8bd Supported "count()"
(cherry picked from commit db53794)
2016-09-29 23:17:36 +03:00
Valentin Kipyatkov
fbaf7d5c8f Better formatting in some cases
(cherry picked from commit 53e3a67)
2016-09-29 23:17:35 +03:00
Valentin Kipyatkov
859e5af211 More informative intention action text
(cherry picked from commit fe7ddbc)
2016-09-29 23:17:35 +03:00
Valentin Kipyatkov
d0efb6692c Check that "break" and "continue" do not produce false errors when using analyzeInContext
(cherry picked from commit bbb6ef4)
2016-09-29 23:17:35 +03:00
Valentin Kipyatkov
d4a5945d75 Sometimes shorter code with filterTo, mapTo and flatMapTo
(cherry picked from commit 49f2c5f)
2016-09-29 23:17:35 +03:00
Valentin Kipyatkov
0336cde501 One more case when mapTo can be generated
(cherry picked from commit 7441864)
2016-09-29 23:17:34 +03:00
Valentin Kipyatkov
705911ca51 AddToCollectionTransformation checks that the result collection type cannot be changed
(cherry picked from commit db0028c)
2016-09-29 23:17:34 +03:00
Valentin Kipyatkov
14261441c4 Basic support for "add" to collection used inside the loop
(cherry picked from commit f51c5a1)
2016-09-29 23:17:34 +03:00
Valentin Kipyatkov
b973ce3af3 flatMapTo supported
(cherry picked from commit d3721e9)
2016-09-29 23:17:34 +03:00
Valentin Kipyatkov
e1fa681239 Consistent use of term "input variable" instead of "working variable"
(cherry picked from commit f3c7606)
2016-09-29 23:17:33 +03:00
Valentin Kipyatkov
2256c8c344 Moved check about old working variable not needed into common place
(cherry picked from commit df08493)
2016-09-29 23:17:33 +03:00
Valentin Kipyatkov
a4a26f05fc Initial support for "+=", filterTo and mapTo for collections
(cherry picked from commit 22fb397)
2016-09-29 23:17:33 +03:00
Valentin Kipyatkov
d8c72d866e Supported initialization with assignment instead of declaration
(cherry picked from commit ac46684)
2016-09-29 23:17:33 +03:00
Valentin Kipyatkov
21ef97b877 Refactoring
(cherry picked from commit 1fe84b8)
2016-09-29 23:17:32 +03:00
Valentin Kipyatkov
6a06857651 Elvis operator supported for all cases of find
(cherry picked from commit bd6b389)
2016-09-29 23:17:32 +03:00
Valentin Kipyatkov
7eca558458 firstOrNull() ?: ... supported
(cherry picked from commit 7980049)
2016-09-29 23:17:32 +03:00
Valentin Kipyatkov
483bcee381 More relaxed checks for any() with return
(cherry picked from commit 14ef93a)
2016-09-29 23:17:32 +03:00
Valentin Kipyatkov
16bd85985e Generating more simple construct instead of "let" in some cases
(cherry picked from commit ff0bb4f)
2016-09-29 23:17:31 +03:00
Valentin Kipyatkov
89ce911a45 Generating "firstOrNull()?.let {...}"
(cherry picked from commit a760ef3)
2016-09-29 23:17:31 +03:00
Valentin Kipyatkov
2bdc71ed65 More cases supported for "any"
(cherry picked from commit fba9b12)
2016-09-29 23:17:31 +03:00
Valentin Kipyatkov
c746a2a899 Supported "lastOrNull" and "any" without break in the loop
(cherry picked from commit c0f3ab5)
2016-09-29 23:17:30 +03:00
Valentin Kipyatkov
f33b7b2517 Added comments
(cherry picked from commit 0243efd)
2016-09-29 23:17:30 +03:00
Valentin Kipyatkov
dd6d821b91 Merging subsequent .filter()'s
(cherry picked from commit fcbf686)
2016-09-29 23:17:30 +03:00
Valentin Kipyatkov
fdca08480b Refactored API to allow merging ResultTransformation with any kind of previous transformation
(cherry picked from commit 6dbd9c9)
2016-09-29 23:17:30 +03:00
Valentin Kipyatkov
58d69c963d Cannot transform to flatMap if old working variable used in the nested loop
(cherry picked from commit d776277)
2016-09-29 23:17:29 +03:00
Valentin Kipyatkov
2ba0e5c04e Minor changes after code review
(cherry picked from commit 50bd766)
2016-09-29 23:17:29 +03:00
Valentin Kipyatkov
618613c593 Check for continue-statement of the inner loop!
(cherry picked from commit 8630407)
2016-09-29 23:17:29 +03:00
Valentin Kipyatkov
a864e7b816 Checking that smart casts will not be broken by conversion
(cherry picked from commit 8c498af)
2016-09-29 23:17:29 +03:00
Valentin Kipyatkov
f449088470 Temporary fix
(cherry picked from commit 978fc46)
2016-09-29 23:17:28 +03:00
Valentin Kipyatkov
fa94c57cf4 Initial implementation of loop-to-call-chain intention
(cherry picked from commit 12b1a99)
2016-09-29 23:17:28 +03:00
Valentin Kipyatkov
68463a5f19 KtExpression.analyzeInContext uses correct context when analyzing return's
(cherry picked from commit c50cf13611)
2016-09-29 23:17:27 +03:00
Zalim Bashorov
6e8ad80eeb Fix build 2016-09-29 20:15:58 +03:00
Ilya Gorbunov
afd305453a Minor: replace var with val.
(cherry picked from commit 47be8e6)
2016-09-29 18:57:45 +03:00
Ilya Gorbunov
2aaffafb74 Fix working directory where CompilerSmokeTest runs to be 'project.build.directory', otherwise it may vary depending on maven goals invoked.
(cherry picked from commit 2c0edf6)
2016-09-29 18:57:45 +03:00
Ilya Gorbunov
709a2f68f7 Reorder maven project modules to run more tests earlier in build.
(cherry picked from commit 0cd0f3c)
2016-09-29 18:57:45 +03:00
Ilya Gorbunov
ff3d68281a Use explicit public visibility in kotlin-runtime.
(cherry picked from commit 71af020)
2016-09-29 18:57:45 +03:00
Alexey Sedunov
f1cdf1ecac Extract Class: Implement 'Extract Interface' refactoring
#KT-11017 Fixed
(cherry picked from commit b412edf)
2016-09-29 18:24:33 +03:00
Alexey Sedunov
737c368022 Extract Class: Implement 'Extract Superclass' refactoring
#KT-11017 In Progress
(cherry picked from commit af2de09)
2016-09-29 18:24:32 +03:00
Zalim Bashorov
7cb2f2373c JPS: don't consider that the module is not Kotlin JS until check all libraries.
#KT-14082 Fixed

(cherry picked from commit 797f7ab)
2016-09-29 16:40:57 +03:00
Alexey Tsvetkov
c5408c99e5 Refactoring: move gradle tests imported from jps to separate dir
This will allow skipping jps tests when running all tests in directory from Intellij
2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
6e6c576418 Refactoring: move gradle integration tests to separate module 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
a1ba51992c Refactoring: specify internal visibility where possible 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
fef3eb6171 Refactoring: use daemon by default in gradle tests 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
bfc94f6347 Refactoring: cleanup build.gradle files in tests 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
44748751c7 Refactoring: extract kotlin_version constant for gradle tests 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
f755d3db76 Refactoring: cleanup after merge 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
154ff311cf Refactoring: merge modules 'kotlin-gradle-plugin-dsl', 'kotlin-gradle-plugin-core' into 'kotlin-gradle-plugin' 2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
40bca72e77 Generate gradle options from compiler arguments
#KT-13633 fixed
2016-09-29 15:28:11 +03:00
Alexey Tsvetkov
6a0957cbbe Track changes in java files generated by kapt2
#KT-13500 fixed
2016-09-29 15:28:11 +03:00
Stanislav Erokhin
b68f02c093 Changes in project for compatibility with plugin 1.1 in branch 1.0.x.
Added imports for java.lang.IllegalArgumentException and removed language-version 1.0.
Because of this changes it is possible to build branch 1.0.x use plugin 1.1.
When we fix bug with typealias and add language version to IDE we should reverse this commit.
2016-09-29 14:44:01 +03:00
Stanislav Erokhin
fcf9bfdfed Fix EA-86841 and EA-79267. 2016-09-29 14:44:00 +03:00
Alexey Andreev
6780de7fae JS: backporting changes in JS test infrastructure to 1.0.x 2016-09-29 14:28:12 +03:00
Alexey Andreev
e7e8d9ae0e JS: move RTTI tests to proper location 2016-09-29 14:28:11 +03:00
Alexey Andreev
ffd5119f5d JS: describe how to run tests in node.js 2016-09-29 14:28:11 +03:00
Alexey Andreev
7e53495d1c JS: fix remaining tests. Suppress extensionFromTopLevelUnitOneStringArg.kt, use another approach to check whether object's property accessed via this 2016-09-29 14:28:11 +03:00
Alexey Andreev
bdb82d94a3 JS: fix bugs in test environment for mocha.js 2016-09-29 14:28:10 +03:00
Alexey Andreev
6f621b1b0b JS: make most of box tests running in mocha.js 2016-09-29 14:28:10 +03:00
Alexey Andreev
1c4cc9db7c JS: move more test to box tests 2016-09-29 14:28:09 +03:00
Alexey Andreev
2fa69e819e JS: move more test to box tests 2016-09-29 14:28:09 +03:00
Alexey Andreev
f90130167c JS: move more test to box tests 2016-09-29 14:28:08 +03:00
Alexey Andreev
7790354aaf JS: move more test to box tests 2016-09-29 14:28:08 +03:00
Alexey Andreev
99274d2743 JS: move more test to box tests 2016-09-29 14:28:08 +03:00
Alexey Andreev
5d62a849d2 JS: move more test to box tests 2016-09-29 14:28:07 +03:00
Alexey Andreev
0baf560dca JS: move more test to box tests 2016-09-29 14:28:07 +03:00
Alexey Andreev
7afceb544c JS: move inline test to box tests 2016-09-29 14:28:06 +03:00
Alexey Andreev
ec45022b5b JS: move expressions test to box tests 2016-09-29 14:28:06 +03:00
Alexey Andreev
493f3d4ff4 JS: create new common directory for all generated tests, migrate several tests there 2016-09-29 14:28:05 +03:00
Alexey Andreev
fa38b7606e JS: refactor test classes 2016-09-29 14:28:05 +03:00
Alexey Andreev
e6764a4ae3 JS: move InlineMultiModuleTestGenerated under new test class 2016-09-29 14:28:04 +03:00
Alexey Andreev
361d2f1146 JS: introduce a new base class for generated tests 2016-09-29 14:28:04 +03:00
Mikhail Glukhikh
c89f4db320 CFA minor: retain initialization state while analyzing variable declaration 2016-09-29 13:16:23 +03:00
Mikhail Glukhikh
4a96589c15 CFA merge for definition / initialization : more accurate handling of unknown variables #KT-13969 Fixed 2016-09-29 12:47:01 +03:00
Dmitry Jemerov
5eda3a4481 access archive.apache.org via plain HTTP
(cherry picked from commit a1acd04)
2016-09-28 15:31:41 +02:00
Dmitry Jemerov
4d1a7b261a download each IDEA version into separate directory
(cherry picked from commit 53cd079)
2016-09-28 14:51:40 +02:00
Denis Zharkov
8e14b4a3f5 Fix AssertionError in CodegenUtil.getDelegates
Change getAllOverriddenDescriptors contracti, now it returns
original (not substituted) descriptors without any duplicates.

First of all it's necessary in CodegenUtil.getDelegates to avoid
duplicates (see assertion there), but also it's convenient for all
other usages of this method

 #KT-8154 Fixed
2016-09-28 11:52:59 +03:00
Denis Zharkov
cabe9afdc7 Minor. Simplify CodegenUtil.getDelegates 2016-09-28 11:52:59 +03:00
Denis Zharkov
0bd5109b8a Add a couple of covariant necessary overrides
They become unavoidable after checking override conflicts
for delegation members
2016-09-28 11:52:59 +03:00
Denis Zharkov
064d8960f3 Prohibit return type mismatch for delegation members
#KT-13952 Fixed
 #KT-13005 Fixed
2016-09-28 11:52:59 +03:00
Denis Zharkov
f4b4ed144b Minor. Extract subinterface for specific strategy
It contains only methods related to explicitly declared overrides
2016-09-28 11:52:59 +03:00
Dmitry Jemerov
7087d6ecda go back to archive.apache.org for Ant downloads
(cherry picked from commit 0daa2d8)
2016-09-28 10:32:58 +02:00
shiraji
cb88f3a6f7 Add intention to replace Math.max/min with coerceAtLeast/coerceAtMost #KT-13945 Fixed
(cherry picked from commit 3aedf0d)
2016-09-27 20:07:05 +03:00
Mikhail Glukhikh
e17f22225f Remove unnecessary lateinit intention / inspection removed (supported in compiler CFA instead) 2016-09-27 18:30:42 +03:00
Mikhail Glukhikh
77f7bb0fc1 Quick-fix for UNNECESSARY_LATEINIT 2016-09-27 18:30:37 +03:00
Mikhail Glukhikh
09c0865853 UNNECESSARY_LATEINIT: do not report if property is not initialized at use-site #KT-13806 Fixed 2016-09-27 18:30:33 +03:00
Mikhail Glukhikh
88f9938bc6 UNNECESSARY_LATEINIT warning introduced #KT-13295 Fixed 2016-09-27 18:30:16 +03:00
Denis Zharkov
af692e2453 Add filtering of suggested expressions for postfix templates
Do not suggest qualified expression's selector or a part of user type
because they aren't really independent expressions
2016-09-27 17:37:31 +03:00
Dmitry Jemerov
1c5fedeb7e use plain HTTP for downloading AntForKotlin
(cherry picked from commit e30c211)
2016-09-27 16:20:45 +02:00
Alexey Sedunov
c1c62ec54f Introduce Variable: Fix exception on trying to extract variable of functional type
#KT-14004 Fixed
(cherry picked from commit ca482c3)
2016-09-27 14:09:05 +03:00
Alexey Sedunov
174e208cfe Remove Redundant Receiver Parameter: Do not run refactoring inside write action
#KT-13878 Fixed
(cherry picked from commit 0693632)
2016-09-27 14:08:59 +03:00
Denis Zharkov
66d788be7d ModuleDescriptor: invert "friends" relation
Fixes memory leak caused by modules storing their friends (which can be potentially recreated many times)
2016-09-27 12:08:53 +03:00
Denis Zharkov
d7b96519bb Introduce preserve.1.0.4.compatibility VM option
Also add implementation of compatibility mode for relevant inference
refinements in 1.0.5
2016-09-27 10:10:24 +03:00
Pavel V. Talanov
0b82a310ef Light classes: getOwnInnerClasses() filters out inner classes with null names
#KT-13927 Fixed
2016-09-26 19:54:05 +03:00
Simon Ogorodnik
f8d93085c4 KT-13146 J2K recursion while converting self-referenced anonymous functions (#956)
(cherry picked from commit 47bfb81)
2016-09-26 12:56:20 +02:00
Alexander Udalov
e5df475fdc Fix compilation error 2016-09-24 13:40:28 +03:00
Alexander Udalov
d1b49c8321 Remove recursion workaround from DeprecatedClassifierUsageChecker
(cherry picked from commit 9bc6d6ae92)
2016-09-24 11:55:49 +03:00
Alexander Udalov
a72f871347 Move ClassifierUsageChecker invocation lower in LazyTopDownAnalyzer
Invoking checkers right after resolution of qualified expressions is too early:
DeprecatedClassifierUsageChecker tries to load the annotations of a referenced
classifier to report deprecation, and that may result in building light classes
for not yet analyzed declarations

 #KT-13954 Fixed

(cherry picked from commit dca99c3fd2)
2016-09-24 11:55:26 +03:00
Alexander Udalov
53f0780153 Rename LanguageFeatureSettings -> LanguageVersionSettings
(cherry picked from commit c91f77f2a4)
2016-09-24 11:54:08 +03:00
Alexander Udalov
6f2164dfa4 Uninherit LanguageVersion from LanguageFeatureSettings
Introduce LanguageVersionSettingsImpl to store everything related to the
selected language version

(cherry picked from commit aec31bd88f)
2016-09-24 11:38:20 +03:00
Nikolay Krasko
8b899a7cf5 Allow to avoid rebuilding application in debugger tests on local machine 2016-09-24 01:29:12 +03:00
Nikolay Krasko
f3badb6435 Clean application after test in compiler tests
It's disposed after Disposer.dispose(myTestRootDisposable) in tearDown and mixing compiler tests
with non-compiler tests may ruin classes initialization with

"com.intellij.util.IncorrectOperationException: Sorry but parent: com.intellij.mock.MockApplicationEx@52439591 has already been disposed"
2016-09-24 01:29:10 +03:00
Nikolay Krasko
c5e90f7b91 Patch ThreadTracker during Kotlin plugin init
(cherry picked from commit 63943c60d3)
2016-09-24 01:29:09 +03:00
Nikolay Krasko
4723bb12d8 Fix tests for looking implementations from Java - no search for Kotlin declaration from usages
Probably because of this commit: 7d95ff4d86

(cherry picked from commit 37fb8d6306)
2016-09-24 01:29:07 +03:00
Nikolay Krasko
85dedde6bb Solve thread leaking problem in intellij idea ultimate with obfuscated fileds
(cherry picked from commit 4adfb18990)
2016-09-24 01:29:06 +03:00
Nikolay Krasko
9c8ba4620f Problem: fix thread leaking check fail on teamcity for ultimate rename tests
(cherry picked from commit d69e7c7aec)
2016-09-24 01:29:04 +03:00
Nikolay Krasko
2879693c39 Problem: workaround thread leaking problem
(cherry picked from commit ea1aac07ec)
2016-09-24 01:29:03 +03:00
Nikolay Krasko
1af4b5e634 Register TypeAnnotationModifier EP in environment for web demo converter
(cherry picked from commit 835474e5a1)
2016-09-24 01:29:01 +03:00
Nikolay Krasko
a4f641c44a Ignore irrelevant java classes in search results
It looks like JavaClassInheritorsSearcher started to give classes based on useScope

(cherry picked from commit bf12908dfc)
2016-09-24 01:28:59 +03:00
Nikolay Krasko
c6d120f264 Fix goto implementation tests - deffered task should be executed
(cherry picked from commit 6cdb578f76)
2016-09-24 01:28:58 +03:00
Nikolay Krasko
e5b9e4e5ad Add standard inheritors to hierarchy test
(cherry picked from commit 00db1c1490)
2016-09-24 01:28:56 +03:00
Nikolay Krasko
9734c42d1d Make caret left move not-applicable on first function parameter
(cherry picked from commit 89a1389512)
2016-09-24 01:28:55 +03:00
Nikolay Krasko
0ba2cbeb26 Update to 2016.2.3
(cherry picked from commit 5337fd05fb)
2016-09-24 01:28:53 +03:00
Nikolay Krasko
fe8857ad2b Don't run applicationEx.invokeAndWait in testing mode
(cherry picked from commit 7b19454d58)
2016-09-24 01:28:52 +03:00
Nikolay Krasko
d594a94070 Test only: method signature changed
(cherry picked from commit 058dbd3375)
2016-09-24 01:28:50 +03:00
Nikolay Krasko
946f4ca7cd Update compilation in 2016.2
(cherry picked from commit 80bf0b9c3e)
2016-09-24 01:28:49 +03:00
Nikolay Krasko
df9b14b9b2 Update to 162.1447.7
(cherry picked from commit 4b9b3b07e7)
2016-09-24 01:28:47 +03:00
Denis Zharkov
a26c0da48a Use editor instead of file in TypingIndentationTest
Nobody guarantees that changes in editor are saved immediately

(cherry picked from commit 329c1a1e72)
2016-09-24 01:28:46 +03:00
Denis Zharkov
8b561774be Temporary move annotation to methods' modifier list
Java resolver ignores return type annotations if there are ones on modifier list

Related to this commit a2497edcee

(cherry picked from commit 10c840327d)
2016-09-24 01:28:44 +03:00
Denis Zharkov
c30a1a861b Implement a bunch of string based postfix templates
#KT-4710 Fixed

(cherry picked from commit 189705727f)
2016-09-24 01:28:43 +03:00
Denis Zharkov
a612c94004 Implement for/iter postfix templates
#KT-4710 In Progress

(cherry picked from commit 1b39112)
2016-09-24 01:28:41 +03:00
Denis Zharkov
87a8b915a7 Introduce var/val postfix templates
#KT-4710 In Progress

(cherry picked from commit b702886f0d)
2016-09-24 01:28:38 +03:00
Denis Zharkov
514006bcb6 Minor. Introduce 'isVar' parameter for KotlinIntroduceVariableHandler.doRefactoring
(cherry picked from commit 7ba914f92a)
2016-09-24 01:28:36 +03:00
Denis Zharkov
d478ac6341 Implement if/else/null/notnull/when/try postfix templates
#KT-4710 In Progress

(cherry picked from commit 4d28199cc2)
2016-09-24 01:28:35 +03:00
Denis Zharkov
5a9123ac6e Implement 'Surround expression with if' surrounder
#KT-3363 Fixed

(cherry picked from commit 09266b222b)
2016-09-24 01:28:33 +03:00
Denis Zharkov
13904186e3 Implement 'not' postfix template
#KT-4710 In Progress

(cherry picked from commit f18b9cc)
2016-09-24 01:28:32 +03:00
Denis Zharkov
aefc5e0ee5 Update IDEA version to 2016.2
(cherry picked from commit 1eeec18303)
2016-09-24 01:28:30 +03:00
Nikolay Krasko
a453837277 Fix tests for move: check applicability from changed text
Presentation status has stopped working after 18ce2c6070

(cherry picked from commit 3d0d82b862)
2016-09-24 01:28:29 +03:00
Nikolay Krasko
3a9c5e6c3c Register TypeAnnotationModifier as extension point
(cherry picked from commit a471d8907a)
2016-09-24 01:28:27 +03:00
Nikolay Krasko
ffa92714ad Problem: manually shutdown AppScheduledExecutorService to allow compiler stop properly
Without such shutdown console program that gets PSI file will hang forever.

Introduced in 446b80077a

Stack example:

 java.lang.Thread.State: RUNNABLE
	  at com.intellij.util.concurrency.AppDelayQueue.<init>(AppDelayQueue.java:37)
	  at com.intellij.util.concurrency.AppScheduledExecutorService.<init>(AppScheduledExecutorService.java:50)
	  at com.intellij.util.concurrency.AppScheduledExecutorService$Holder.<clinit>(AppScheduledExecutorService.java:41)
	  at com.intellij.util.concurrency.AppScheduledExecutorService.getInstance(AppScheduledExecutorService.java:46)
	  at com.intellij.util.concurrency.AppExecutorUtil.getAppScheduledExecutorService(AppExecutorUtil.java:39)
	  at com.intellij.concurrency.JobScheduler.getScheduler(JobScheduler.java:43)
	  at com.intellij.psi.impl.source.AstPathPsiMap.<clinit>(AstPathPsiMap.java:45)
	  at com.intellij.psi.impl.source.PsiFileImpl.<init>(PsiFileImpl.java:76)
	  at com.intellij.extapi.psi.PsiFileBase.<init>(PsiFileBase.java:39)
	  at org.jetbrains.kotlin.psi.KtFile.<init>(KtFile.java:48)
	  at org.jetbrains.kotlin.parsing.KotlinParserDefinition.createFile(KotlinParserDefinition.kt:73)
	  at com.intellij.psi.SingleRootFileViewProvider.createFile(SingleRootFileViewProvider.java:407)
	  at com.intellij.psi.SingleRootFileViewProvider.createFile(SingleRootFileViewProvider.java:348)
	  at com.intellij.psi.SingleRootFileViewProvider.createFile(SingleRootFileViewProvider.java:326)
	  at com.intellij.psi.SingleRootFileViewProvider.getPsiInner(SingleRootFileViewProvider.java:171)
	  at com.intellij.psi.SingleRootFileViewProvider.getPsi(SingleRootFileViewProvider.java:155)
	  at com.intellij.psi.impl.PsiFileFactoryImpl.trySetupPsiForFile(PsiFileFactoryImpl.java:121)
	  at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:100)
	  at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:56)
	  at org.jetbrains.kotlin.psi.KtPsiFactory.doCreateFile(KtPsiFactory.kt:174)
	  at org.jetbrains.kotlin.psi.KtPsiFactory.createFile(KtPsiFactory.kt:178)
	  at org.jetbrains.kotlin.preprocessor.Preprocessor.processFileSingleEvaluator(Preprocessor.kt:82)
	  at org.jetbrains.kotlin.preprocessor.Preprocessor.processDirectorySingleEvaluator(Preprocessor.kt:105)
	  at org.jetbrains.kotlin.preprocessor.Preprocessor.processDirectorySingleEvaluator(Preprocessor.kt:135)
	  at org.jetbrains.kotlin.preprocessor.Preprocessor.processSources(Preprocessor.kt:74)
	  at org.jetbrains.kotlin.preprocessor.PreprocessorCLI.main(PreprocessorCLI.kt:35)

(cherry picked from commit 99a75021e1)
2016-09-24 01:28:26 +03:00
Nikolay Krasko
d434688a7e Update to idea 162.1024.1
(cherry picked from commit cf63a77396)
2016-09-24 01:28:24 +03:00
Nikolay Krasko
7d808a0636 Tests only: fix compiler error because of changed nullability
(cherry picked from commit e2860eb12a)
2016-09-24 01:28:23 +03:00
Nikolay Krasko
e39087050c Update to 162.844.8
(cherry picked from commit 22f3fe4784)
2016-09-24 01:28:21 +03:00
Nikolay Krasko
3bd5afc02c Tests only: codeCleanup() method signature was changed
(cherry picked from commit dc35524fe1)
2016-09-24 01:28:20 +03:00
Nikolay Krasko
752328d1c8 Compile error because of changed nullability
(cherry picked from commit 89175a0165)
2016-09-24 01:28:18 +03:00
Nikolay Krasko
bc40107902 API change: parameter became NotNull
(cherry picked from commit 1a89d138fb)
2016-09-24 01:28:17 +03:00
Nikolay Krasko
d63dc1535a Build against 162.646.4
(cherry picked from commit 6a11055389)
2016-09-24 01:28:15 +03:00
Nikolay Krasko
18496a5438 Problem: remove static import (temp workaround)
See KT-13954 for details

(cherry picked from commit ff9f3694f1)
2016-09-24 01:28:14 +03:00
Nikolay Krasko
b42c9f42e6 Problem: remove static import (temp workaround)
(cherry picked from commit d5ae37d33a)
2016-09-24 01:28:12 +03:00
Nikolay Krasko
7f2ef4e030 Mock implementation for ExternalAnnotationsManager and InferredAnnotationsManager services
(cherry picked from commit bfef8726bb)
2016-09-24 01:28:11 +03:00
Nikolay Krasko
7876dc54c5 Update to idea 162
(cherry picked from commit dc49f7f21b)
2016-09-24 01:28:09 +03:00
Nikolay Krasko
516f82b40f More write action requirement remove
Workaround for exception: Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock

(cherry picked from commit dba55ec34d)
2016-09-24 01:28:08 +03:00
Nikolay Krasko
fe679690a9 Tests only: add new method in MockPsiManager.java
(cherry picked from commit 7d1a5f1d2b)
2016-09-24 01:28:06 +03:00
Nikolay Krasko
34672edd3f Problem: define idea.plugins.compatible.build setting explicitly to avoid exception about bad idea home path
(cherry picked from commit b05105e849)
2016-09-24 01:28:05 +03:00
Nikolay Krasko
9ec3437e2f API Change: Implement new method isSuppressAll()
(cherry picked from commit 72c6c66b48)
2016-09-24 01:28:03 +03:00
Nikolay Krasko
5776501584 API Change: remove explicit generic type information
(cherry picked from commit db20daae88)
2016-09-24 01:28:02 +03:00
Nikolay Krasko
0c4465aa7f Tests only: No more WatchMessageNode
55029007ad
(cherry picked from commit 9674e1a6c7)
2016-09-24 01:28:00 +03:00
Nikolay Krasko
95a92e1f50 Tests only: Debugger test data modification: extra removed
(cherry picked from commit 58ff7f53fa)
2016-09-24 01:27:59 +03:00
Nikolay Krasko
5da713707e Tests only: implement new method
(cherry picked from commit c7ac8e1650)
2016-09-24 01:27:57 +03:00
Nikolay Krasko
50eb23ea24 Tests only: Constructor for XWatchesViewImpl was changed
1a8de38449
(cherry picked from commit 226735ae05)
2016-09-24 01:27:56 +03:00
Nikolay Krasko
f637eb7bc0 Tests only: reparseRange parameters changed
94863a8df4
(cherry picked from commit 99ed926554)
2016-09-24 01:27:54 +03:00
Nikolay Krasko
f5dddd381e registerUnresolvedError is in base class in idea from br146
(cherry picked from commit bea45ff2e5)
2016-09-24 01:27:52 +03:00
Nikolay Krasko
b6d49b0c7c No jsr166e.jar anymore in br146
(cherry picked from commit 06a0ebe352)
2016-09-24 01:27:51 +03:00
Nikolay Krasko
de4c72c042 Add run configuration for downloading br146
(cherry picked from commit 5cecdddcb6)
2016-09-24 01:27:49 +03:00
Alexey Sedunov
c6d795ae68 Redundant 'toString()' in String Template: Disable for qualified expressions with 'super' receiver
#KT-13942 Fixed
(cherry picked from commit d6daaf0)
2016-09-23 20:58:14 +03:00
Alexey Sedunov
cbad0dc328 Move Files/Directories: Fix behavior of "Open moved files in editor" checkbox
#KT-13909 Fixed
(cherry picked from commit 85c45cf)
2016-09-23 20:58:13 +03:00
Alexey Sedunov
a9ad2384cc Move Nested Class to Upper Level: Preserve state of "Search in comments"/"Search for text occurrences" checkboxes
#KT-13904 Fixed
(cherry picked from commit ad8b534)
2016-09-23 20:58:12 +03:00
Alexey Sedunov
1738945f81 Convert Parameter to Receiver: Do not qualify companion members with labeled 'this'
#KT-13933 Fixed
(cherry picked from commit 79f5097)
2016-09-23 20:58:12 +03:00
Alexey Sedunov
c149f1e351 Move to Companion Object: Warn if companion object already contains function with the same signature
#KT-13877 Fixed
(cherry picked from commit 75481c3)
2016-09-23 20:58:11 +03:00
Alexey Sedunov
1d532cd358 Move to Companion Object: Forbid for functions/properties referencing type parameters of the containing class
#KT-13876 Fixed
(cherry picked from commit 72ff5dd)
2016-09-23 20:58:10 +03:00
Alexey Sedunov
c83857b9c9 Move: Do not ignore target directory selected in the dialog (DnD mode)
#KT-13901 Fixed
(cherry picked from commit 4cd4b87)
2016-09-23 20:58:09 +03:00
Alexey Sedunov
cd925d1966 Move Nested Class to Upper Level: Do not show directory selection dialog twice
#KT-13906 Fixed
(cherry picked from commit 65a1ecc)
2016-09-23 20:58:08 +03:00
Alexey Sedunov
b423273f40 Minor: Add test for KT-13916
(cherry picked from commit 6366383)
2016-09-23 20:58:07 +03:00
Alexey Sedunov
769b8ddd0f Move: Remove companion object which becomes empty after the move
#KT-13903 Fixed
(cherry picked from commit 951dc6a)
2016-09-23 20:58:06 +03:00
Alexey Sedunov
bf9c435c30 Move to Companion Object: Fix exception when applied to class
#KT-13883 Fixed
(cherry picked from commit 11a7a24)
2016-09-23 20:58:05 +03:00
Alexey Sedunov
4e55647255 Move to Companion: Fix AssertionError on running refactoring from Conflicts View
#KT-13874 Fixed
(cherry picked from commit 64e5baa)
2016-09-23 20:58:05 +03:00
Alexey Sedunov
7a9d3a1813 Presentation: Add file name to the presentation of private top-level declaration
#KT-13838 Fixed
(cherry picked from commit 4313f24)
2016-09-23 20:58:04 +03:00
Alexey Sedunov
4878bde795 Shorten References: Compare resolved calls when shortening receiver of qualified call expression
#KT-13660 Fixed
(cherry picked from commit cf28dd0)
2016-09-23 20:58:03 +03:00
Alexey Sedunov
00fd68db17 Misc: Move conflict checking to moveConflictUtils.kt
(cherry picked from commit 84aa82e)
2016-09-23 20:58:02 +03:00
Alexey Sedunov
1f80322a01 Pull Up: Drop 'override' modifier if moved member doesn't override anything
(cherry picked from commit 54faac1)
2016-09-23 20:58:01 +03:00
Alexey Sedunov
3185e92ded Introduce Lambda Parameter: Use IDEA-provided action
(cherry picked from commit dddb4fd)
2016-09-23 20:58:00 +03:00
Alexey Sedunov
a7baee7729 Minor: Fix NPE in MoveKotlinTopLevelDeclarationsDialog
#KT-13856 Fixed
(cherry picked from commit f0a298e)
2016-09-23 20:57:59 +03:00
Alexey Sedunov
0d8768f2ea Rename: Rename all overridden members if user chooses to refactor base declaration(s)
#KT-8867 Fixed
(cherry picked from commit 6e02051)
2016-09-23 20:57:59 +03:00
Alexey Sedunov
3a2bf0facd Move: Do not show directory selection dialog if target directory is already specified by drag-and-drop
#KT-13553 Fixed
(cherry picked from commit a77e1da)
2016-09-23 20:57:58 +03:00
Alexey Sedunov
8478b46fb9 Misc: Do not use empty scope for KtParameter/KtTypeParameter (possible fix for EA-1185336)
(cherry picked from commit bb859ea)
2016-09-23 20:57:57 +03:00
Alexey Sedunov
bc99f6ee62 Move to Companion Intention: Do not use qualified names as labels
#KT-11483 Fixed
(cherry picked from commit 23491af)
2016-09-23 20:57:56 +03:00
Alexey Tsvetkov
9293922d13 Update changelog for 1.0.4 2016-09-23 20:56:28 +03:00
gitreelike
d0ea9ceb07 Implement quick fix to convert a too long char literal to a string #KT-13635 Fixed
(cherry picked from commit 06c8047)
2016-09-23 16:49:27 +03:00
shiraji
89e659fc50 Add "Copy concatenation text to clipboard" intention #KT-13744 Fixed
(cherry picked from commit 391a0fd)
2016-09-23 16:48:47 +03:00
Denis Zharkov
edb4d9c2e0 Prevent generation of delegations to interfaces private methods
#KT-13381 Fixed
 #KT-13996 Fixed
2016-09-23 14:55:37 +03:00
Alexey Tsvetkov
2b48f8245f Print gradle output only if test is failed 2016-09-22 20:41:43 +03:00
Nikolay Krasko
b9f3584194 Remove toString() test for StorageManager
Storing place of creating was removed in cb32bc97dd

(cherry picked from commit 293d3b4320)
2016-09-22 19:27:01 +03:00
Simon Ogorodnik
081d382b76 KT-11990 J2K native to external conversion (#957)
(cherry picked from commit ab2b674)
2016-09-22 17:12:32 +02:00
Mikhail Glukhikh
3ba98d7266 Random-order variable sets are no more in use in CFG #KT-13990 Fixed
(cherry picked from commit fc89385)
2016-09-22 14:42:08 +03:00
Alexander Udalov
e876b70a37 Exclude some codegen tests on Android
These tests rely on the fact that sources are located in the default package,
whereas Android tests alter the package name of each test

(cherry picked from commit b3803d6fe7)
2016-09-22 13:07:04 +03:00
Denis Zharkov
e8bf230011 Apply diagnostics test data difference between 1.1 and 1.0.5 2016-09-22 13:05:03 +03:00
Denis Zharkov
f84840e038 Fix false positive "Cannot capture" error reporting
There is no need to report an error in case of non-top-level
capture conversion, just don't add relevant capture type in the system instead

If system can be solved successfully without captured type, then it's just fine
(see KT-13950)
In case of contradiction TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR is reported

 #KT-13950 Fixed
2016-09-21 20:44:15 +03:00
Denis Zharkov
04f75e76c2 Fix inference when captured type is used as a lambda parameter type
Use lower approximation bound to obtain acceptable types for lambda parameters
those types depend on captured type

 #KT-12238 Fixed
 #KT-10627 Fixed
2016-09-21 20:44:15 +03:00
Nikolay Krasko
9fc9f1f144 Remove logging in LockBasedStorageManager creation as it all the same useless
HEAD - 3 leads to "org.jetbrains.kotlin.storage.LockBasedStorageManager.createWithExceptionHandling(LockBasedStorageManager.java:65)" debug string

(cherry picked from commit cb32bc9)
2016-09-21 16:10:58 +03:00
Nikolay Krasko
42076b0842 Remove another place with mentioning bare plugin
(cherry picked from commit b7b6d31)
2016-09-21 16:10:57 +03:00
Nikolay Krasko
893c5635ea Fix severe freezes because of long lint checks on large files (KT-13071)
- Run lint analyze under indicator with write action priority. Otherwise ProgressManager.checkCanceled() checks doesn't work
 - Move ProgressManager.checkCanceled() up or they are not called in large files without lint warnings

(cherry picked from commit d96863d)

 #KT-13071 Fixed
2016-09-19 19:01:10 +03:00
Nikolay Krasko
07f3a9a762 Skip lazy parsable lambdas without actually parsing them
(cherry picked from commit 131e779)
2016-09-19 19:01:09 +03:00
Alexey Andreev
1df29e90e9 KT-13664: write values of long compile-time constants as constants. Fix #KT-13664 2016-09-19 12:32:46 +03:00
Mikhail Glukhikh
0cc58bb50e Minor refactoring: convert to expression body
(cherry picked from commit 1e5fb91)
2016-09-19 11:52:43 +03:00
Mikhail Glukhikh
3da99b3e0d J2K fix: do not use auto-conversion of accessors to = Unit format
(cherry picked from commit 909b9b6)
2016-09-19 11:52:31 +03:00
Mikhail Glukhikh
5788c9ec7e Convert to expression body fix: do not allow = Unit for constructors
(cherry picked from commit 4509cd4)
2016-09-19 11:52:18 +03:00
Mikhail Glukhikh
bfc126ca82 Minor: WITH_RUNTIME removed from a set of intention tests
(cherry picked from commit 24c7efd)
2016-09-19 11:52:05 +03:00
Mikhail Glukhikh
7141bdb477 Partial build fix (new convert to expression body opportunity in quick-fixes)
(cherry picked from commit 9ad8202)
2016-09-19 11:51:52 +03:00
Mikhail Glukhikh
e0b7b765ac Add function to supertype immediately removes redundant modifiers #KT-12297 Fixed
(cherry picked from commit 6083689)
2016-09-16 16:32:02 +03:00
Mikhail Glukhikh
bfc50c02a9 KT-12297 related: make not open quick-fix for REDUNDANT_OPEN_IN_INTERFACE
(cherry picked from commit 32d11c3)
2016-09-16 16:31:05 +03:00
shiraji
5878dc3e46 Allow to convert empty Unit returning functions to expression form #KT-13588 Fixed
(cherry picked from commit 4f49444)
2016-09-16 15:40:00 +03:00
Ilya Gorbunov
f8febada54 Fix js RegExp test not to rely on array equality. #KT-8283 2016-09-16 10:13:56 +03:00
Yan Zhulanow
de55de218f Use LightParameter from Kotlin light classes to add an inner class constructor parameter instead of calling addParameter(name, type). The latter tries to load an icon :( (KT-13798)
(cherry picked from commit cc86d79)
2016-09-15 19:23:21 +03:00
Yan Zhulanow
198115bbbf Kapt: Return substituted supertypes in directSupertypes() for immediate class types (KT-13746)
(cherry picked from commit 3aae990)
2016-09-15 19:23:20 +03:00
Yan Zhulanow
49b07a7905 asMemberOf() should always substitute type parameters for methods using the relevant substitutor
(cherry picked from commit dfadd17)
2016-09-15 19:23:19 +03:00
Yan Zhulanow
95dde72ae6 Kapt: Allow to make CompilerConfiguration mutable again
(cherry picked from commit 0780de8)
2016-09-15 19:23:18 +03:00
Yan Zhulanow
60c807ed96 Kapt: allow to use Kapt from compileBunchOfSources()
(cherry picked from commit 09d857b)
2016-09-15 19:23:17 +03:00
Yan Zhulanow
1d8d533d24 Kapt: Fix erasure() for immediate class types (KT-13748)
(cherry picked from commit f9860cb)
2016-09-15 19:23:15 +03:00
Yan Zhulanow
20c1d1ee46 Kapt: calculate default values of Kotlin annotations correctly for annotations from binaries (KT-13733)
(cherry picked from commit 94f8991)
2016-09-15 19:23:15 +03:00
Alexey Tsvetkov
4b7ea0c683 Avoid dexing at Kapt2IT
(cherry picked from commit e8afbf1)
2016-09-15 19:23:14 +03:00
Alexey Tsvetkov
327e36842c Do not try to remove source annotations from not .class file
(cherry picked from commit 2ce3418)
2016-09-15 19:23:13 +03:00
Alexey Tsvetkov
ab7d1b8727 Change directory for sync task cache #KT-13732 fixed
(cherry picked from commit ca06b5c)
2016-09-15 19:23:12 +03:00
Alexey Tsvetkov
b2bf1d31df Minor: fix gradle plugin order in test
(cherry picked from commit 14e677f)
2016-09-15 19:23:11 +03:00
Alexey Tsvetkov
ba7b66e2ff Remove source annotations when copy class with kapt2
Writing source annotations enables incremental compilation for kapt2.
However they are not needed in bytecode, so we remove them when
copying classes.
(cherry picked from commit 999660d)
2016-09-15 19:23:10 +03:00
Yan Zhulanow
a714e84033 Minor: Fix path separators check on Windows
(cherry picked from commit 974bbe7)
2016-09-15 19:23:09 +03:00
Yan Zhulanow
c35e139520 Kapt: load all annotations, even if annotation processors does not require it explicitly. Some annotation processors may want to process some more annotations (see DbFlow, Database annotation).
Blacklist some common-used Java and Kotlin annotations instead (like Deprecated, Nullable or Metadata).
(cherry picked from commit 6856a7c)
2016-09-15 19:23:08 +03:00
Yan Zhulanow
09180ba82a Kapt: Provide SourceRetentionAnnotationHandler for incremental compilation.
Collect annotations with the "SOURCE" retention.
(cherry picked from commit 6ef66e7)
2016-09-15 19:23:07 +03:00
Yan Zhulanow
bab8df5bc9 Kapt: Write annotations with the "SOURCE" retention if kapt2 is enabled
(cherry picked from commit 6177b2b)
2016-09-15 19:23:07 +03:00
Yan Zhulanow
dca654505e Kapt: Remove generated output directory each time before annotation processing
(cherry picked from commit c4b772a)
2016-09-15 19:23:06 +03:00
Yan Zhulanow
28c3cf3f57 Minor: fix compilation exception (due to exception in kotlinc)
(cherry picked from commit 5f2d3c4)
2016-09-15 19:23:05 +03:00
Yan Zhulanow
9cb09ac412 Kapt: support incremental compilation in Gradle (KT-13500)
Kapt will process sources on each step of incremental compilation.
(cherry picked from commit 4cb2127)
2016-09-15 19:23:04 +03:00
Yan Zhulanow
fc7fc15ae6 Kapt: Add tests with Filer.
JavaFileObject.getName() now returns a path as required.
(cherry picked from commit c611f9b)
2016-09-15 19:23:03 +03:00
Yan Zhulanow
e9c0c2b867 Kapt: support multiple annotation processing steps (KT-13651)
(cherry picked from commit 880e183)
2016-09-15 19:23:02 +03:00
Yan Zhulanow
2bf575b501 Kapt: provide a default constructor if PsiClass does not have any
(cherry picked from commit 550b1c0)
2016-09-15 19:23:01 +03:00
Yan Zhulanow
42df808b84 Kapt: Do not substitute type arguments for PsiClassReferenceType
(cherry picked from commit 3954c71)
2016-09-15 19:23:00 +03:00
Yan Zhulanow
7e66a87087 Kapt: Do not use PsiType comparison in equals() where possible
(cherry picked from commit 89ba634)
2016-09-15 19:22:59 +03:00
Yan Zhulanow
c2f5ffe523 Kapt: Represent a single element as an array if the annotation method type is array type
(cherry picked from commit 19ce4cb)
2016-09-15 19:22:58 +03:00
Yan Zhulanow
8493659162 Kapt: Fix erasure() for executable types (KT-13629)
(cherry picked from commit 461c29d)
2016-09-15 19:22:57 +03:00
Yan Zhulanow
71495c4643 Kapt: abort compilation on error in annotation processing stage (KT-13622)
(cherry picked from commit f78b8b4)
2016-09-15 19:22:56 +03:00
Yan Zhulanow
71b5cd78ed Kapt: Allow passing primitive types and void to erasure() (KT-13617)
(cherry picked from commit 91444c5)
2016-09-15 19:22:54 +03:00
Alexey Tsvetkov
06bc681c85 Fix compatibility with AS 2.2 gradle plugin
#KT-13594 fixed
(cherry picked from commit b857df2)
2016-09-15 19:22:53 +03:00
Alexey Tsvetkov
d08f54da80 Fix snapshot version for testModuleKind
(cherry picked from commit a1f91ca)
2016-09-15 19:22:52 +03:00
Alexey Tsvetkov
fedbd1e043 Assume cache format is always up-to-date when compiling non-incrementally
(cherry picked from commit a300d2c)
2016-09-15 19:22:51 +03:00
Yan Zhulanow
bea2eba319 KT-12303 Pass only relevant annotations to annotation processors
(cherry picked from commit 01742aa)
2016-09-15 19:22:49 +03:00
Yan Zhulanow
3cc6492fe4 Kapt: Fix type arguments in JeDeclaredType. In case of type variable, JeTypeVariableType should be returned
(cherry picked from commit ed34ec0)
2016-09-15 19:22:47 +03:00
Yan Zhulanow
be1ec63ff7 Kapt: JeTypeElement getInterfaces() and getSuperClass() should provide reference type mirrors
(cherry picked from commit 5f50ab6)
2016-09-15 19:22:46 +03:00
Yan Zhulanow
ef063edb25 Kapt: Support String[] in annotation proxy
(cherry picked from commit 5e9eab9)
2016-09-15 19:22:45 +03:00
Yan Zhulanow
771988168d Kapt: Use also the compile classpath, not only apt classpath
(cherry picked from commit d810119)
2016-09-15 19:22:45 +03:00
Yan Zhulanow
f73a8fc82e Kapt, Gradle: The first dependency is kotlin-annotation-processing (we reuse the old configurations from kapt)
(cherry picked from commit f95a3d1)
2016-09-15 19:22:44 +03:00
Alexey Tsvetkov
d4ccd9f706 Support multi-project IC for android projects
(cherry picked from commit a0b477a)
2016-09-15 19:22:43 +03:00
Alexey Tsvetkov
427961f8fd Fixes after review
(cherry picked from commit 973e2a8)
2016-09-15 19:22:42 +03:00
Alexey Tsvetkov
117edc968f Implement multiproject IC in Gradle
#KT-13528 fixed
(cherry picked from commit f01daf4)
2016-09-15 19:22:41 +03:00
Alexey Tsvetkov
acef77a326 Join paths to string for better assertion message in idea
(cherry picked from commit c3c4e7d)
2016-09-15 19:22:40 +03:00
Alexey Tsvetkov
3d7969f2bb Refactor version checking
(cherry picked from commit db24fe8)
2016-09-15 19:22:39 +03:00
Alexey Tsvetkov
445624c881 Introduce KotlinGradleBuildServices that is created once per build
(cherry picked from commit 9bfbdd9)
2016-09-15 19:22:38 +03:00
Alexey Tsvetkov
4a7608eda8 Minor: remove outdated TODO
(cherry picked from commit 4e696c7)
2016-09-15 19:22:37 +03:00
Alexey Tsvetkov
b1cc1ffbc9 Refactor loading kotlin version in gradle plugin
(cherry picked from commit 845d174)
2016-09-15 19:22:37 +03:00
Alexey Tsvetkov
d87c4fb1dc Ensure java is forced to compile when kotlin is compiled incrementally
Previously java compilation was not forced when there were only
removed kotlin files.
(cherry picked from commit 2eee4b0)
2016-09-15 19:22:36 +03:00
Alexey Tsvetkov
c2e37ea20d Fix incremental build with kapt and gradle 2.14
#KT-13179 fixed
(cherry picked from commit 1daee05)
2016-09-15 19:22:35 +03:00
Yan Zhulanow
b361b9ea67 Kapt: Support nested annotations property.
Also do not rely on Java class comparison, check against qualified names.
(cherry picked from commit 7610945)
2016-09-15 19:22:34 +03:00
Yan Zhulanow
8e09b4ccec Kapt: Fix broken assertion
(cherry picked from commit 36b0b52)
2016-09-15 19:22:33 +03:00
Alexey Sedunov
0eea622cbe Minor: Fix compilation 2016-09-15 16:29:51 +03:00
Alexey Sedunov
d418eeeaa3 Convert to Kotlin: AbstractExpressionSelectionTest
(cherry picked from commit a6e3aac)
2016-09-15 16:29:50 +03:00
Alexey Sedunov
4c87f46081 Convert to Kotlin: AbstractExpressionSelectionTest (rename to .kt)
(cherry picked from commit 96a2c97)
2016-09-15 16:29:49 +03:00
Alexey Sedunov
8d3935a443 Convert to Kotlin: AbstractSmartSelectionTest
(cherry picked from commit b0a1eca)
2016-09-15 16:29:48 +03:00
Alexey Sedunov
99d268f617 Convert to Kotlin: AbstractSmartSelectionTest (rename to .kt)
(cherry picked from commit 1ab40f6)
2016-09-15 16:29:48 +03:00
Alexey Sedunov
17c09c64c4 Refactoring: Split KotlinRefactoringUtil2.kt to several files
(cherry picked from commit f6d0fca)
2016-09-15 16:29:47 +03:00
Alexey Sedunov
19b592f149 Convert to Kotlin: KotlinRefactoringUtil2 (replace object with top-level declarations)
(cherry picked from commit b6a671c)
2016-09-15 16:29:46 +03:00
Alexey Sedunov
604195fa1a Convert to Kotlin: KotlinRefactoringUtil2 (prettify)
(cherry picked from commit 16b4c2c)
2016-09-15 16:29:45 +03:00
Alexey Sedunov
994b480eb9 Convert to Kotlin: KotlinRefactoringUtil2
(cherry picked from commit fc9b288)
2016-09-15 16:29:44 +03:00
Alexey Sedunov
35a8f6f29d Convert to Kotlin: KotlinRefactoringUtil2 (rename to .kt)
(cherry picked from commit 1f8dba9)
2016-09-15 16:29:43 +03:00
Alexey Sedunov
28b26f4de3 Minor: Temporary rename of KotlinRefactoringUtil before conversion to Kotlin (to avoid conflict with existing kotlinRefactoringUtil.kt)
(cherry picked from commit f47b416)
2016-09-15 16:29:42 +03:00
Alexey Sedunov
cca3824bb0 Introduce Type Parameter
#KT-13155 Fixed
(cherry picked from commit 2f9a911)
2016-09-15 16:29:41 +03:00
Alexey Sedunov
0193622ea3 Rename: Support inplace rename on type parameters
(cherry picked from commit 4e2c4d9)
2016-09-15 16:29:40 +03:00
Alexey Sedunov
a4366686f7 Quick-Fixes: Do not show Change Signature dialog when applying "Remove parameter" quick-fix
(cherry picked from commit 34c268b)
2016-09-15 16:29:39 +03:00
Alexey Sedunov
3f24cb6514 Convert Receiver to Parameter: Use template instead of the dialog
#KT-9490 Fixed
(cherry picked from commit 639186d)
2016-09-15 16:29:38 +03:00
Alexey Sedunov
b830c1d343 Create from Usage: Implement "Create type parameter" quickfix
#KT-11525 Fixed
(cherry picked from commit 63092f6)
2016-09-15 16:29:37 +03:00
Alexey Sedunov
07e129a655 Move: Forbid moving of enum entries
#KT-13215 Fixed
(cherry picked from commit 64f0532)
2016-09-15 16:28:58 +03:00
Alexey Sedunov
83e29b3355 Search: Optimize usage scope of class members
#KT-9285 Fixed
(cherry picked from commit d9698df)
2016-09-15 16:28:57 +03:00
Alexey Sedunov
69f433984d Search: Restrict KtParameter usage scope to its containing declaration
#KT-13542 Fixed
 #KT-8672 Fixed
(cherry picked from commit e908c6c)
2016-09-15 16:28:56 +03:00
Alexey Sedunov
d94219e839 Move: Report separate conflicts for each property accessor
#KT-13216 Fixed
(cherry picked from commit 6480118)
2016-09-15 16:28:55 +03:00
Alexey Sedunov
a1cf4e67bb Pull Up: Remove visibility modifiers on adding 'override'
#KT-13535 Fixed
(cherry picked from commit 9607fd0)
2016-09-15 16:28:54 +03:00
Alexey Sedunov
6e57ab9cb8 Type Hierarchy: Support Type Hierarchy on references inside of super type call entries
#KT-9125 Fixed
(cherry picked from commit 47d4454)
2016-09-15 16:28:53 +03:00
Alexey Sedunov
73a6cdf041 Convert to Kotlin: HierarchyUtils (prettify)
(cherry picked from commit cd1943c)
2016-09-15 16:28:52 +03:00
Alexey Sedunov
3218deb431 Convert to Kotlin: HierarchyUtils
(cherry picked from commit 4622f08)
2016-09-15 16:28:51 +03:00
Alexey Sedunov
9c270d54ef Convert to Kotlin: HierarchyUtils (rename to .kt)
(cherry picked from commit 91cc22e)
2016-09-15 16:28:50 +03:00
Alexey Sedunov
937020ef90 Convert to Kotlin: KotlinTypeHierarchyProvider (prettify)
(cherry picked from commit 05abc01)
2016-09-15 16:28:49 +03:00
Alexey Sedunov
e2d604849b Convert to Kotlin: KotlinTypeHierarchyProvider
(cherry picked from commit 23d9f92)
2016-09-15 16:28:49 +03:00
Alexey Sedunov
b2dd2330d8 Convert to Kotlin: KotlinTypeHierarchyProvider (rename to .kt)
(cherry picked from commit 438777a)
2016-09-15 16:28:48 +03:00
Mikhail Glukhikh
d6a5f3eca5 IntentionBasedInspection minor refactoring: inspectionRange --> inspectionTarget
(cherry picked from commit f973be2)
2016-09-15 14:35:01 +03:00
shiraji
6d9906b507 Add inspection + intention to replace .let { it.foo() } with .foo() #KT-13551 Fixed
(cherry picked from commit e4c873d)
2016-09-15 14:34:48 +03:00
Mikhail Glukhikh
8892a53532 Speed search is enable in add import action #KT-13326 Fixed
(cherry picked from commit cdf4309)
2016-09-15 14:34:33 +03:00
Denis Zharkov
5eab0e1ce6 Fix testData related to changes in special built-ins resolution 2016-09-15 10:38:01 +03:00
Mikhail Glukhikh
c9c0567c48 Minor: message fixed in diagnostics test 2016-09-15 10:38:01 +03:00
Denis Zharkov
63f6e673b7 Add compatibility flag for implicit inner classes' arguments
If the flag is set to 1, implicit arguments are resolved in the same way
they would before 1.0.5
2016-09-15 10:38:01 +03:00
Denis Zharkov
b88dd8caad Refine diagnostic about type arguments for an outer class
#KT-11263 Fixed
2016-09-15 10:38:01 +03:00
Denis Zharkov
a6f40d4c69 Fix implicit type arguments resolution for inner classes
When resolving arguments on inner classifier, one can omit the arguments
for outer class 'Outer' if they are present implicitly in the scope:
- One of the supertypes of current class is Outer
- One of the outer classes or one of their supertypes is Outer

Relevant arguments are obtained from the first type found by
the algorithm above

Note that before this commit implicit arguments were only been searched
in containing classes

 #KT-11123 Fixed
2016-09-15 10:38:01 +03:00
Denis Zharkov
5b4c81e389 Minor. Add covariant override for TypeParameterDescriptor.original 2016-09-15 10:38:01 +03:00
Alexey Andreev
5978f315cc JS: add explanation to inline/arrayLiteralAliasing.kt test 2016-09-14 16:46:10 +03:00
Alexey Andreev
1679d4939e KT-8283: fix Kotlin.equals method to compare arrays by reference 2016-09-14 16:46:09 +03:00
Alexey Andreev
41967c9700 KT-7397: use reference comparison (===) when translating a is A, where A is an object. Use more sophisticated check for reified parameters. 2016-09-14 13:17:08 +03:00
Dmitry Jemerov
098894382e fix compilation after cherry-pick 2016-09-13 17:33:50 +02:00
Simon Ogorodnik
284d5e393f #KT-13750 fix (#951)
(cherry picked from commit 115d63a)
2016-09-13 17:33:50 +02:00
Mikhail Glukhikh
a4bf73991a Minor: intention message changed for if/when -> assignment/return
(cherry picked from commit 222b964)
2016-09-12 18:17:12 +03:00
Mikhail Glukhikh
9ea351b2d8 Quick-fix for reassignment in try / catch (fold to assignment) #KT-13778 Fixed
(cherry picked from commit edacc7f)
2016-09-12 18:17:01 +03:00
shiraji
42f5d4212b KT-13674 Add quickfix to remove the final upper bound
#KT-13674 Fixed
(cherry picked from commit 7c3835b)
2016-09-12 15:07:14 +03:00
shiraji
2dc5ae2afd KT-13693 Expand selection for array brackets
#KT-13693 Fixed

(cherry picked from commit d83b174)
2016-09-12 12:28:13 +02:00
Michael Bogdanov
7070147403 'toString' implementation in DescriptorBasedFunctionHandle
(cherry picked from commit 4b0c272)
2016-09-12 13:01:07 +03:00
Alexander Udalov
9357a713cd Fix AssertionError in notFoundClasses.kt on bad FQ names (EA-85046)
FQ names like "Foo." or "Foo..Bar" were causing this exception. No tests added:
no idea how to reproduce this exception

(cherry picked from commit 81556b1339)
2016-09-12 10:45:53 +03:00
Alexander Udalov
3ba63212cb Fix reflective access on overridden generic property reference
Generation of callable reference's signature in codegen should use the same
mechanism for obtaining the signature as the runtime in RuntimeTypeMapper,
namely DescriptorUtils.unwrapFakeOverride(...).original

 #KT-13700 Fixed

(cherry picked from commit 90eafe0d71)
2016-09-12 10:45:48 +03:00
Alexey Andreev
ac5b14937c JS: fix compile-time failure when inheriting one local class from another local class 2016-09-09 17:55:04 +03:00
Denis Zharkov
32029c5d4b Fix signature clash problems caused by special built-ins
Do not treat members with already changed signature as a reason
to create a hidden copy

See tests for clarification:
- There are `charAt` method in B that has different name in Kotlin - `get`,
  i.e. relevant descriptor has initialSignatureDescriptor != null
- When collecting methods from supertypes, `charAt` from A is also get
  transformed to `get`
- So it has effectively the same signature as B.get (already declared)
- If by an accident B.get had been declared with Kotlin signature
  we would have add A.charAt (after transformation) with special flag:
  HiddenToOvercomeSignatureClash (hides it from resolution)
- But here B.charAt was artificially changed to `get`, so no signature clash
  actually happened

 #KT-13730 Fixed
2016-09-09 17:33:13 +03:00
Simon Ogorodnik
de4848d93e Correct diagnostics and quick-fix for T::class with non-reified type parameter #KT-9590 fixed
(cherry picked from commit 2b63bca, implementation for 1.0.x)
2016-09-09 16:34:32 +03:00
Mikhail Glukhikh
25b32db782 Change to star projection no longer applied for functional types #KT-13715 Fixed
Also EA-87648 Fixed
(cherry picked from commit 998399b)
2016-09-09 15:05:59 +03:00
Mikhail Glukhikh
13a0413e4e Convert lambda to reference intention: apply shorten references to callable reference only, not to the whole argument list
(cherry picked from commit 23132ad)
2016-09-09 15:05:44 +03:00
Mikhail Glukhikh
33b7fb0077 Refactoring: add braces to when entry intention is integrated into general add braces intention
(cherry picked from commit 06b7881)
2016-09-09 15:05:29 +03:00
Mikhail Glukhikh
010d9073e2 Minor: remove braces is now applicable for the whole loop or when entry
(cherry picked from commit cbc7f72)
2016-09-09 15:05:18 +03:00
Mikhail Glukhikh
2deaa27e7c Refactoring: remove braces from when entry intention is integrated into general remove braces intention
(cherry picked from commit cf2839e)
2016-09-09 15:05:04 +03:00
Mikhail Glukhikh
5791b4d385 Convert lambda to reference has now INFO severity
(cherry picked from commit 7f955fd)
2016-09-09 15:04:53 +03:00
Alexey Andreev
a8ce855dd8 JS: fix tests that don't fail due to lack of support of strict mode (multiValInIntFor, multiValInIntRangeFor). 2016-09-09 14:36:00 +03:00
Alexey Andreev
9e75072327 KT-12868: if a property initializer is a complex expression that emits additional statements, emit these statements directly before assignment to the property, not at the beginning of constructor 2016-09-09 14:35:59 +03:00
Alexey Andreev
c09e5e5412 KT-13583: allow local classes to capture members of outer classes 2016-09-09 14:35:59 +03:00
Nikolay Krasko
ca2e7792b7 Make removing artifacts work with rri branches 2016-09-08 21:35:04 +03:00
shiraji
9d0b449652 Add quickfix for FINAL_UPPER_BOUND: inline type parameter #KT-13773 Fixed
(cherry picked from commit 9d768e2)
2016-09-08 17:52:28 +03:00
Nikolay Krasko
e7cdba7260 More tests for ChangeVisibilityModifierIntention 2016-09-07 18:46:55 +03:00
Nikolay Krasko
bf2aadea66 Restrict default applicability range for intentions to enclosing block 2016-09-07 18:46:54 +03:00
Nikolay Krasko
533fca11c7 Make KtLambdaExpression lazy parsable element 2016-09-07 18:46:50 +03:00
Michael Bogdanov
fa21a3225b Support for property reference inlining
(cherry picked from commit 7230965)
2016-09-07 14:59:42 +03:00
Michael Bogdanov
9b092d0068 Mark linenumber in property reference
(cherry picked from commit 237afb4)
2016-09-07 13:59:16 +03:00
Michael Bogdanov
0a0cfc4878 PropertyReferenceCodegen refactoring
(cherry picked from commit b4ae701)
2016-09-07 13:57:46 +03:00
Michael Bogdanov
f00aca2907 Check lambda inlining in package part files in test framework
(cherry picked from commit a12d7b6)
2016-09-07 13:43:16 +03:00
Nikolay Krasko
a21e85b172 j2k: fix converter 2016-09-06 15:18:55 +03:00
Nikolay Krasko
c0db343bd0 j2k: right after convert 2016-09-06 15:18:52 +03:00
Nikolay Krasko
8deaa34a57 j2k: rename file 2016-09-06 15:18:51 +03:00
Nikolay Krasko
0b25723f07 Extract base class for goto action tests 2016-09-06 15:18:49 +03:00
Nikolay Krasko
3cd100bbcf Tests for GotoTypeDeclaration action 2016-09-06 15:18:48 +03:00
Nikolay Krasko
9eddf05676 Force building with 1.0.4
Stay on 1.0.4 intentionally to make the moment of pushing incompatible changes explicit as they will
be visible as failure on buildserver.
2016-09-06 15:16:18 +03:00
Nikolay Krasko
3dba661bed Update more usages of ResolveEverythingToKotlinAnyLocalClassifierResolver 2016-09-06 14:49:25 +03:00
Nikolay Krasko
ea8811900d Fix compile error for 1.0.x compiler 2016-09-06 14:46:34 +03:00
Alexey Andreev
b864737330 KT-13658: don't capture FakeCallableDescriptorForObject in closure 2016-09-06 11:02:50 +03:00
Denis Zharkov
35ff738f5e Fix decompilation of types based on local classifiers
If deserializing a type with arguments based on a local class for
decompiler, then just return Any type (without arguments).

Previously Any constructor was used with serialized arguments, that lead
to exception

Note that in case of deserialization for compiler nothing changes about
local-classes-based types (LocalClassifierResolverImpl is just inlined)

 #KT-13408 Fixed
2016-09-05 18:58:43 +03:00
Alexander Udalov
c3a83a9ea7 Add -language-version 1.0 to compiler settings 2016-09-05 18:56:58 +03:00
Alexander Udalov
24ebd4479c Exclude more irrelevant maven-generated stuff in CodeConformanceTest
(cherry picked from commit 1be3b9c192)
2016-09-05 16:48:55 +03:00
Alexander Udalov
ed96f715af Fix concurrent access issues in CallableReference implementations
Because of multiple reads from the same non-volatile variable, NPE was possible
to achieve in a multi-threaded application

(cherry picked from commit dc689ff514)
2016-09-05 16:48:47 +03:00
Alexander Udalov
41be67a161 Fix occasional NPE from reflection initialization
This could happen when a .jar containing Kotlin stdlib and reflection classes
was launched with 'java -jar'

(cherry picked from commit 8fb5858dae)
2016-09-05 16:48:42 +03:00
Alexander Udalov
773bb67e5f Minor, rename ConsPStack$1 -> ConsPStack$Itr
To somewhat improve stack traces (see
http://stackoverflow.com/questions/34214290/kotlin-massive-amounts-of-conspstack-how-can-i-avoid/34214718#34214718)

(cherry picked from commit 9da1840523)
2016-09-05 16:48:39 +03:00
Alexander Udalov
9ab01053b5 Optimize KClass creation from Class instance
Don't create unnecessary iterator every time in HashPMap.get (see
https://github.com/hrldcpr/pcollections/pull/41). Also fix a warning and remove
misleading comment

(cherry picked from commit f4a1aa640e)
2016-09-05 16:48:36 +03:00
Alexander Udalov
9ece8a69ec Optimize argument array creation in reflection call
(cherry picked from commit d0d1824e7d)
2016-09-05 16:48:34 +03:00
Alexander Udalov
39fc50dbbc Fix NPE in CallableReferencesResolutionUtils.kt on incomplete code
#KT-13685 Fixed

(cherry picked from commit c8b30d3310)
2016-09-05 13:08:09 +03:00
Nikolay Krasko
07bc4d0087 Show lint diagnostics even if there're errors in the file (KT-12022)
It also affects working with KotlinChangeLocalityDetector. Right after error is fixed in local context file is still reported as having errors and diagnostics are not counted.

(cherry picked from commit 67f3539)

 #KT-12022 Fixed
2016-09-02 13:55:54 +03:00
Nikolay Krasko
86094f3a2d Don't highlight declaration with WRAPPED_INTO_REF
Leave highlighting only for usage. This may allow to make highlighting more local and lazy.
Java follows the same rules for "Implicit anonymous class parameter".

(cherry picked from commit 795fef2)
2016-09-02 13:55:52 +03:00
Nikolay Krasko
3bba94f222 Precheck method is called main in RunConfiguration check
(cherry picked from commit f797d53)
2016-09-02 13:55:50 +03:00
Nikolay Krasko
0f9ef7bacd Drop kotlin-bare-plugin (KT-11859)
(cherry picked from commit 9a54aa9)
2016-09-02 13:55:49 +03:00
Nikolay Krasko
baf1f9928c Minor: toString() for NONE filter
(cherry picked from commit 4a0f14b)
2016-09-02 13:55:47 +03:00
Nikolay Krasko
bab8ea4725 Make changes in super call lambda not cause out-of-block modification (KT-13474)
(cherry picked from commit 52dd02f)

 #KT-13474 Fixed
2016-09-02 13:55:42 +03:00
Nikolay Krasko
42ed4c91cd Test that out-of-block behaviour conforms running the analyze of the nearest expression
Mark as exceptions cases with field initialize expression and body of class init for now

(cherry picked from commit 64d5115)
2016-09-02 13:53:08 +03:00
Nikolay Krasko
cc50667eab Use AtomicLong for modification stamp
(cherry picked from commit ec6780b)
2016-09-02 13:53:06 +03:00
Nikolay Krasko
c0cf9c0e0a Re-highlight only single function after local modifications
(cherry picked from commit 82bcd81)
2016-09-02 13:52:57 +03:00
Nikolay Krasko
8a1206d56f Minor: remove warnings and refactoring
(cherry picked from commit 043502f)
2016-09-02 13:47:25 +03:00
Stanislav Erokhin
43a49078e7 Potential fix for some random errors about "cannot choose between equals invoke functions".
(cherry picked from commit 407fe02)
2016-09-01 15:53:01 +03:00
Stanislav Erokhin
c37f4f1dcf Set reference target and report custom error instead unresolved reference for cases: interface, generic parameter, object + invoke, class without companion.
#KT-2787 Fixed.
2016-09-01 15:19:58 +03:00
Mikhail Glukhikh
c39c2efe21 Convert lambda to reference: use fully qualified type names if needed #KT-13438 Fixed
(cherry picked from commit e2e761e)
2016-09-01 14:41:27 +03:00
Mikhail Glukhikh
f68d7399fc Convert lambda to reference: flexible receiver types are handled correctly #KT-13411 Fixed
(cherry picked from commit ecad1c3)
2016-09-01 14:41:21 +03:00
Mikhail Glukhikh
ecb2a9576a Convert lambda to reference: no more allowed for extension KFunction parameters #KT-13527 Fixed
(cherry picked from commit 84c4ff7)
2016-09-01 14:41:15 +03:00
Mikhail Glukhikh
bc4a2ee9e1 Convert lambda to reference: range reduced to a call itself #KT-13661 Fixed
(cherry picked from commit f7b5d34)
2016-09-01 14:41:10 +03:00
Alexey Sedunov
1d3e09695a Find Usages: Do not duplicate containing declaration in super member warning dialog
#KT-10209 Fixed
(cherry picked from commit 9fd61b8)
(cherry picked from commit 0d63004)
2016-09-01 14:37:19 +03:00
Alexey Sedunov
9a657c8c38 Create from Usage: Place extension properties after the usage and generate stub getter
#KT-11795 Fixed
(cherry picked from commit c2b38cf)
(cherry picked from commit c7ae2e9)
2016-09-01 14:37:18 +03:00
Alexey Sedunov
851e4b11f7 Create from Usage: Make extension functions/properties 'private' by default
#KT-11799 Fixed
(cherry picked from commit 99ba340)
(cherry picked from commit 0fb8f49)
2016-09-01 14:37:17 +03:00
Alexey Sedunov
61117d6ab8 Remove Unused Receiver: update function/property usages
#KT-8903 Fixed
(cherry picked from commit 92b0c85)
(cherry picked from commit cd3f6d6)
2016-09-01 14:37:16 +03:00
Alexey Sedunov
0d26035ef4 Rename: Support rename of packages with non-standard quoted names
#KT-13488 Fixed
(cherry picked from commit 0fc28fe)
(cherry picked from commit a3eebe3)
2016-09-01 14:37:15 +03:00
Alexey Sedunov
89d1cb870f Rename: Do not search for component convention usages
#KT-9381 Fixed
(cherry picked from commit f6de6ea)
(cherry picked from commit ad4c7d5)
2016-09-01 14:37:14 +03:00
Alexey Sedunov
530b5bfe68 Rename: Fix parameter rename when new name matches call selector
#KT-13476 Fixed
(cherry picked from commit f507eed)
(cherry picked from commit 3ee20d9)
2016-09-01 14:37:13 +03:00
Alexey Sedunov
eb6ca55bfd Rename: Quote parameter name when necessary
#KT-13463 Fixed
(cherry picked from commit 5e577c3)
(cherry picked from commit 67543b0)
2016-09-01 14:37:12 +03:00
Alexey Sedunov
c94f35d435 Override/Implement: Make return type non-nullable (platform collection case) when overriding Java method
#KT-13455 Fixed
(cherry picked from commit 238f99a)
(cherry picked from commit dfa4b7f)
2016-09-01 14:37:11 +03:00
Alexey Sedunov
7dedfa07c5 Intentions: Implement intention to replace camel-case test function name with a space-separated one
#KT-12489 Fixed
(cherry picked from commit 21e24a1)
2016-09-01 14:37:10 +03:00
Mikhail Glukhikh
c81d533914 CFA: additional jumps to catch / finally generated in the end of try / before exits from try #KT-5469 Fixed
Also #KT-13612 Fixed
(cherry picked from commit 7c188b3)
2016-08-31 19:06:13 +03:00
Mikhail Glukhikh
4ca8316e76 KT-13612 KotlinPositionManager: fixed initialization in try / catch
(cherry picked from commit ecae5c6)
2016-08-31 19:06:02 +03:00
Mikhail Glukhikh
b4fb5bd53f UNUSED_VALUE is now reported on expression only if this expression is unused in all (e.g. finally) branches #KT-9825 Fixed
(cherry picked from commit aac8e94)
2016-08-31 19:05:41 +03:00
Mikhail Glukhikh
5c3ec6cfbd Nested classes are no more allowed inside any anonymous objects or local classes #KT-13510 Fixed 2016-08-31 12:21:46 +03:00
Alexey Andreev
08b0a3eca1 KT-12873: add temporary variables generated by delegation expression to class initializer. Fix #KT-12873 2016-08-30 12:29:36 +03:00
Sergey Mashkov
e6f743aad8 KT-12810 IDL: support special modifiers(e.g. getter and setter) 2016-08-29 17:57:42 +03:00
Yoshinori Isogai
c955f88d03 KT-5193 Make multiline strings foldable (#938)
* KT-5193 Make multiline strings foldable
 #KT-5193 Fixed

* Avoid multiple replace call

(cherry picked from commit e1eba8f)
2016-08-29 16:54:41 +02:00
Alexander Udalov
1655792a22 Support "-no-reflect" in "kotlin" command
#KT-13491 Fixed

(cherry picked from commit 3298649bd7)
2016-08-26 21:45:38 +03:00
Ilya Gorbunov
2963fc5017 JS: Implement Long.hashCode function.
#KT-13576 Fixed

(cherry picked from commit 25d8af3112)
2016-08-26 18:19:05 +03:00
Ilya Gorbunov
e94444cb07 JS: Remove intrinsic for Long.equals, because it's applied incorrectly for nullable longs.
#KT-7500 Fixed

(cherry picked from commit 813bee62e5)
2016-08-26 18:18:36 +03:00
Alexey Tsvetkov
e6d45ebc6a Update link to jarjar 2016-08-26 18:15:13 +03:00
Mikhail Glukhikh
95add79c66 CFG refactoring: extractVariableDescriptorFrom 2016-08-26 14:11:32 +03:00
Dmitry Jemerov
a8009dc26f show primary constructor properties in project view when "Show members" is enabled
#KT-11776 Fixed

(cherry picked from commit 9264c87)
2016-08-25 14:23:37 +02:00
Dmitry Jemerov
e13e54c55e KtClassOrObjectTreeNode: cleanup after J2K
(cherry picked from commit 1cf79d9)
2016-08-25 14:23:29 +02:00
Dmitry Jemerov
614cc843d9 KotlinProjectViewUtil, KtClassOrObjectTreeNode: J2K
(cherry picked from commit fceb626)
2016-08-25 14:23:22 +02:00
Dmitry Jemerov
5f69b25df7 KtClassOrObjectTreeNode: rename to .kt
(cherry picked from commit a7d5b7c)
2016-08-25 14:23:14 +02:00
Dmitry Jemerov
f6e5866036 KotlinProjectViewUtil: rename to .kt
(cherry picked from commit 49c9573)
2016-08-25 14:23:06 +02:00
Dmitry Jemerov
015dd21aab show icon of class initializer
#KT-11775 Fixed

(cherry picked from commit 3ec583b)
2016-08-25 14:22:58 +02:00
Dmitry Jemerov
e42cabb949 show local functions in structure view
#KT-13473 Fixed

(cherry picked from commit 8ff0814)
2016-08-25 14:22:50 +02:00
Dmitry Jemerov
86c7898bb8 KotlinStructureViewElement: cleanup after J2K
(cherry picked from commit 5091420)
2016-08-25 14:22:43 +02:00
Dmitry Jemerov
6b7da50a79 KotlinStructureViewElement: J2K
(cherry picked from commit 50b1951)
2016-08-25 14:22:35 +02:00
Dmitry Jemerov
e081b99231 KotlinStructureViewElement: rename to .kt
(cherry picked from commit 2ebacb6)
2016-08-25 14:22:25 +02:00
Nikolay Krasko
eb160a26f8 Remove net/sf/cglib/ classes from Kotlin compiler (KT-13565)
#KT-13565 Fixed
2016-08-25 15:20:12 +03:00
Nikolay Krasko
e90e5f9088 Debugger doesn't step into 'for' body if there's inline function call in range expression (KT-13534)
#KT-13534 Fixed
2016-08-25 15:20:12 +03:00
Nikolay Krasko
1b7d4ef5a0 More emulate debugging after dexing - dex removes several lines mapped to one instruction 2016-08-25 15:20:12 +03:00
Mikhail Glukhikh
47a55f6c1a Has platform type inspection: do not suggest !! for not-null types #KT-12820 Fixed
(cherry picked from commit 8830ff7)
2016-08-25 10:26:16 +03:00
Mikhail Glukhikh
5447242e5e KT-13536 related: correct handling of objects
(cherry picked from commit 7ae9b6b)
2016-08-25 10:26:08 +03:00
Mikhail Glukhikh
0c6d233875 No more SOE in UnusedSymbolInspection #KT-13536 Fixed
(cherry picked from commit 23961ee)
2016-08-25 10:25:59 +03:00
Mikhail Glukhikh
d2a2dfad9a Invert if: more correct handling of empty returns #KT-13444 Fixed
(cherry picked from commit be2adaf)
2016-08-25 10:25:51 +03:00
Mikhail Glukhikh
d7fc708ee6 Pseudocode label now cannot be bound to a non-owning pseudocode #KT-13555 Fixed
Also EA-77641 Fixed
(cherry picked from commit 07643ce)
2016-08-25 10:25:42 +03:00
Mikhail Glukhikh
d1f4f2d694 PseudocodeLabel is extracted from PseudocodeImpl (now not an inner class), some its properties / functions are supported now by base Label
(cherry picked from commit 30dd52e)
2016-08-25 10:25:32 +03:00
Mikhail Glukhikh
56cd8c2209 Label.java converted to Kotlin
(cherry picked from commit 3891d76)
2016-08-25 10:25:23 +03:00
Mikhail Glukhikh
a73e495677 CFG: break and continue are now handled in the same (safe) way EA-85060 Fixed
(cherry picked from commit eec4b1b)
2016-08-25 10:25:15 +03:00
Mikhail Glukhikh
f7718468e9 BreakableBlockInfo : converted to Kotlin
(cherry picked from commit 22c7ee5)
2016-08-25 10:25:07 +03:00
Mikhail Glukhikh
005c80fdd6 BreakableBlockInfo.java -> BreakableBlockInfo.kt
(cherry picked from commit d5f7c3f)
2016-08-25 10:24:59 +03:00
Mikhail Glukhikh
a6aad3d6b7 LoopInfo: converted to Kotlin
(cherry picked from commit f64d60e)
2016-08-25 10:24:48 +03:00
Mikhail Glukhikh
8a468a1759 LoopInfo.java --> LoopInfo.kt
(cherry picked from commit d952dbd)
2016-08-25 10:24:39 +03:00
Mikhail Glukhikh
e44a6e6724 EA-85060: BreakableBlockInfo is split into LoopInfo & SubroutineInfo to make code more clear
(cherry picked from commit 48faf4a)
2016-08-25 10:24:31 +03:00
Alexey Andreev
4ceee60166 JS: add support of JS module kind to Gradle task. Add tests of support of module kind to Maven tests 2016-08-23 18:26:45 +03:00
Alexey Andreev
f9894ca04c JS: refactor how cached access translators work. Fix cached access translator in case of arrays. Use cached access translator to translate reassignments 2016-08-23 18:25:10 +03:00
Alexey Andreev
7139540dd7 JS: don't translate RHS of overloaded assignment operators twice. It can break compilation in some cases, for example, when there are lambdas in RHS.
Fix #KT-12808 #KT-12807
2016-08-23 18:25:10 +03:00
Mikhail Glukhikh
c71b65622b USELESS_ELVIS_RIGHT_IS_NULL : build fix (add to different files in DiagnosticsTestGenerated), do not report if USELESS_ELVIS already exists 2016-08-23 16:25:04 +03:00
Alexey Andreev
adb8502655 KT-13025: when receiver of call of 'invoke' method is a Function, check whether receiver is an extension function and generate additional '.call' invocation. Fix #KT-13025 2016-08-23 15:53:25 +03:00
Alexey Andreev
61ddd39f7e KT-13043: fix translation of super call from secondary constructor when base constructor has default arguments 2016-08-23 15:53:25 +03:00
Pavel V. Talanov
4e51d904d2 IntentionBasedInspection: Removing synchronizing on intention instances
Recreate intention instance in `buildVisitor`
Lock caused contention for UpSource
(cherry picked from commit 1b6c96c)
2016-08-23 10:25:04 +03:00
shiraji
dc810d548e KT-13521 Warning right part of "expression ?: null" is useless
cherry picked from commit a3f131d)
2016-08-23 10:19:14 +03:00
Kirill Rakhman
cb23c68422 Clean up quick fix package
(cherry picked from commit 2dd4194)
2016-08-22 18:16:52 +03:00
Mikhail Glukhikh
01fa0139c6 Replace with safe calls forbidden for comparisons #KT-13432 Fixed
(cherry picked from commit c07906f)
2016-08-22 18:16:43 +03:00
Kirill Rakhman
4ba465e839 Add quickfix for "A type annotation is required on a value parameter" #KT-12804 Fixed
(cherry picked from commit 1fbd667)
2016-08-22 18:16:38 +03:00
shiraji
5e68c30448 Inspection to warn on using == with array types #KT-13384 Fixed
(cherry picked from commit 1bbde54)
2016-08-22 18:03:13 +03:00
Mikhail Glukhikh
7f8a723f34 Added fake override search in unused symbol inspection #KT-13288 Fixed
(cherry picked from commit b3b83e3)
2016-08-22 18:02:18 +03:00
Mikhail Glukhikh
a67a83c61f Build fix (RemoveEmptyParenthesesFromLambdaCallInspection) : IntentionBasedInspection 1.0.x / master incompatibility 2016-08-22 17:59:37 +03:00
Dmitry Jemerov
d21a0d4f41 use less brute-force method for updating converted file content in J2K (may fix KT-13493 and friends)
(cherry picked from commit ebd45a8)
2016-08-22 16:23:06 +02:00
Kirill Rakhman
912a5db41f Add intention+inspection to remove empty parentheses from method call with single lambda parameter
Fixes #KT-13519
(cherry picked from commit 1bc2af6)
2016-08-22 15:23:30 +03:00
Kirill Rakhman
2319bfe705 fix "Can be replaced with comparison" false positive if extension method called 'equals' is used
Fixes #KT-13480
(cherry picked from commit e6e4680)
2016-08-22 15:23:18 +03:00
Kirill Rakhman
2e2b252546 Clean up intentions package
(cherry picked from commit 45b5157)
2016-08-22 15:23:05 +03:00
Yoshinori Isogai
3df578d09e KT-4519 Show first line with content of block comment when collapsed (#928)
(cherry picked from commit 7d35316)
2016-08-22 13:10:24 +02:00
Yoshinori Isogai
1ddb1f2e73 KT-12697 Expand selection action select ": Type" (#898)
(cherry picked from commit 4669fb3)
2016-08-22 12:37:47 +02:00
Ilya Gorbunov
8da75d5691 Kotlin script execution for maven: include kotlin-runtime as explicit dependency for script.
Relates to #KT-11839
(cherry picked from commit 0f8bf31)
2016-08-19 18:42:27 +03:00
Dmitry Jemerov
4a7891d8c4 diagnostics that helped catch KT-13381
(cherry picked from commit 742d7db)
2016-08-19 16:31:23 +02:00
Dmitry Jemerov
7739ae06d1 diagnostics for EA-86187 - KNPE: KDocElementFactory.createNameFromText
(cherry picked from commit ac6f0b5)
2016-08-18 17:33:43 +02:00
Dmitry Jemerov
e47bc77f06 don't try to walk over the siblings of PsiFile to check if "introduce variable" is enabled (EA-86136 - assert: SharedPsiElementImplUtil.getChildIndex)
(cherry picked from commit 8a22e1e)
2016-08-18 17:33:35 +02:00
Dmitry Jemerov
fe70636f42 stop at file level when going up the tree in KtPsiUtil.areParenthesesNecessary() (EA-86495 - NPE: KtPsiUtil.areParenthesesNecessary)
(cherry picked from commit 7ee72f2)
2016-08-18 17:33:28 +02:00
Dmitry Jemerov
2a7af137c2 check for project disposed in NewKotlinActivityAction (EA-82450 - assert: ComponentManagerImpl.getPicoContainer)
(cherry picked from commit ef791fe)
2016-08-18 17:33:20 +02:00
Mikhail Glukhikh
670e651f39 More correct handling of compile time constant types #KT-13421 Fixed
(cherry picked from commit ac3dfd9)
2016-08-18 17:46:53 +03:00
Kirill Rakhman
b4cee026d5 Add Intention to replace a..b-1 with a until b and vice versa #KT-13483 Fixed
(cherry picked from commit 354d047)
2016-08-18 17:46:40 +03:00
Alexey Sedunov
2eff9cd4a7 Light Classes: Support property accessors with non-conventional names
#KT-13032 Fixed
(cherry picked from commit fbd6edc)
2016-08-18 13:21:52 +03:00
Alexey Sedunov
76a35a7e5b Pull Up: Skip super members without explicit declarations
#KT-13124 Fixed
(cherry picked from commit 94c4b42)
2016-08-18 13:21:51 +03:00
Alexey Sedunov
0617df933b Push Down: Do not specifiy visibility on generated overriding members
#KT-12971 Fixed
(cherry picked from commit 6766494)
2016-08-18 13:21:51 +03:00
Alexey Sedunov
d583809ed7 Rename: Use RenameKotlinParameterProcessor for constructor/lambda parameters
#KT-13253 Fixed
(cherry picked from commit ad3ffda)
2016-08-18 13:21:50 +03:00
Alexey Sedunov
a61bce207c Rename: Do not report shadowing conflict if redeclaration is detected
#KT-13240 Fixed
(cherry picked from commit 2e887eb)
2016-08-18 13:21:49 +03:00
Alexey Sedunov
f9a2c3a669 Move: Warn about accessibility conflicts when moving entire file
#KT-13175 Fixed
(cherry picked from commit 8232c66)
2016-08-18 13:21:48 +03:00
Alexey Sedunov
1eb279830c Move: Warn about accessibility conflicts due to moving to unrelated module
#KT-13174 Fixed
(cherry picked from commit baa549e)
2016-08-18 13:21:47 +03:00
Alexey Sedunov
ccd1c11f1f Rename: Warn about function name conflicts
#KT-13239 Fixed
(cherry picked from commit 6a42802)
2016-08-18 13:21:46 +03:00
Alexey Sedunov
43400200c0 Rename: Fix name quoting for automatic renamers
#KT-13282 Fixed
 #KT-13283 Fixed
(cherry picked from commit 385640c)
2016-08-18 13:21:45 +03:00
Alexey Sedunov
bd126420b6 Rename: Conflict detection for type parameters
#KT-13254 Fixed
(cherry picked from commit a5da9e8)
2016-08-18 13:21:44 +03:00
Alexey Sedunov
65cfb6062d Create from Usage: Disable "Create property" (non-abstract) in interfaces. Make "Create function" (non-abstract) generate function body in interfaces
#KT-13365 Fixed
(cherry picked from commit 562488b)
2016-08-18 13:21:43 +03:00
Alexey Sedunov
f21a8c1681 Change Signature: Yield to other usage processor if target element is neither KtFunction, nor PsiMethod
#KT-13277 Fixed
(cherry picked from commit f4d9f33)
2016-08-18 13:21:43 +03:00
Kirill
dd50c29cad Make folding if to return/assignment work with if-else if-else #KT-13452 Fixed
(cherry picked from commit 1926825)
2016-08-18 09:40:25 +03:00
Kirill
0c43ff0068 Minor: make var val
(cherry picked from commit 6bb4c28)
2016-08-18 09:40:12 +03:00
Zalim Bashorov
d975f21e99 Use target of current module when find libraries with incompatible binary format
#KT-12977 Fixed
2016-08-17 20:41:18 +03:00
Nikolay Krasko
d6d3846137 Reformat main function templates 2016-08-17 20:23:47 +03:00
Nikolay Krasko
cf1bdba2cf Introduce 'maino' and 'psvmo' templates for generating main in object (KT-6520)
#KT-6520 Fixed
2016-08-17 20:22:40 +03:00
Yan Zhulanow
467d0fd10f Kapt: Gradle integration tests for the new kapt 2016-08-17 16:40:07 +03:00
Yan Zhulanow
bb370f1732 Kapt: Get rid of the 'compiler-tests' dependency in 'plugins-tests' 2016-08-17 16:40:03 +03:00
Yan Zhulanow
1391e597b4 Kapt: compile annotation-processing artifact with target "1.6" 2016-08-17 16:40:01 +03:00
Yan Zhulanow
9686344ade Kapt: Make javaCompile parameter in KotlinGradleSubplugin non-null 2016-08-17 16:40:00 +03:00
Yan Zhulanow
a9c77e1d69 Kapt: Fix type arguments order for JeDeclaredType, should not use substitutor 2016-08-17 16:39:59 +03:00
Yan Zhulanow
3ced8a677f Kapt: Support default packages in Filer 2016-08-17 16:39:58 +03:00
Yan Zhulanow
02a3e6bafe Kapt: Support inherited annotations 2016-08-17 16:39:58 +03:00
Yan Zhulanow
b248b2062f Kapt: Filter out kapt2 sources in KotlinCompile task 2016-08-17 16:39:57 +03:00
Yan Zhulanow
6e72dc83bc Kapt Gradle plugin: use the old configuration names 2016-08-17 16:39:56 +03:00
Yan Zhulanow
f4fc8f13c1 Kapt: Gradle plugin for the new kapt 2016-08-17 16:39:55 +03:00
Yan Zhulanow
e6067d595d Kapt: verbose output mode 2016-08-17 16:39:55 +03:00
Yan Zhulanow
df9c825726 Kapt: Provide toString() implementations for no-types 2016-08-17 16:39:50 +03:00
Yan Zhulanow
a14d7cee28 Kapt: Fixes in KotlinElements:
1. 'overrides()' when 'type' extends containing(overrider) and implements containing(overridden). According to documentation, In this case the function should return true.
2. Handle both kotlin.Deprecated and java.lang.Deprecated for Kotlin in 'isDeprecated'.
3. Fix 'isFunctionalInterface'.
2016-08-17 16:39:48 +03:00
Yan Zhulanow
0ff95846fb Kapt: Calculate constant values in the similar way.
Always use originalElement in JeAnnotationValue factory.
2016-08-17 16:39:44 +03:00
Yan Zhulanow
ed8e2e49ac Kapt: Use the base types in KotlinProcessingEnvironment 2016-08-17 16:39:41 +03:00
Yan Zhulanow
948a4b6157 Kapt: add some JeElement tests 2016-08-17 16:39:40 +03:00
Yan Zhulanow
3eecf78307 Kapt: add JeElementRenderer 2016-08-17 16:39:40 +03:00
Yan Zhulanow
649b93833c Kapt: Minor, refactor JeAnnotationMirror:getElementValues() 2016-08-17 16:39:39 +03:00
Yan Zhulanow
4591f134d7 Kapt: annotation-processing is not dependent on 'cli' module anymore 2016-08-17 16:39:38 +03:00
Yan Zhulanow
be31262f0e Kapt: Fixes on review 2016-08-17 16:39:34 +03:00
Yan Zhulanow
7a06a91f41 Kapt: Support Java source root processing.
Support resource file writing.
2016-08-17 16:39:32 +03:00
Yan Zhulanow
27ec053f93 Kapt: Support "*" in supported annotation qualified names (all annotations) 2016-08-17 16:39:31 +03:00
Yan Zhulanow
71c8dfb57a Kapt: Check DEFAULT modifier only in Java 8 2016-08-17 16:39:27 +03:00
Yan Zhulanow
82dcbf36e5 Kapt: Drop custom annotation stub factory, implement it with AnnotationParser in sun.reflect as done in Javac 2016-08-17 16:39:19 +03:00
Yan Zhulanow
0a684aa1d1 Kapt: Refactor kapt type wrappers. Now every ordinary (not NoType) type has a backed PsiType so it's easy to call utility functions from IntelliJ. 2016-08-17 16:39:12 +03:00
Yan Zhulanow
17ad807b82 Kapt: Analyze sources again if the received analysis result is 'RetryWithAdditionalJavaRoots'. ->
Add additional Java roots to Java source roots and clear diagnostic messages before the next analysis round.
2016-08-17 16:38:55 +03:00
Yan Zhulanow
7180961212 Kapt: Add ability to get constant value from KtLightAnnotation 2016-08-17 16:38:48 +03:00
Yan Zhulanow
32c461a7a7 Kapt: Implement Annotation Processing plugin in Kotlin (KT-13499) 2016-08-17 16:38:43 +03:00
Yan Zhulanow
1214513498 Kapt: Add APT wrappers for PSI elements 2016-08-17 16:38:33 +03:00
Zalim Bashorov
5cadbb2d20 JS: fix runtime type checking for native non-fake interfaces on WebKit (JavaScriptCore); add tests for object and object expressions.
(cherry picked from commit 33e96fc)
2016-08-17 14:27:17 +03:00
Alexander Udalov
8baf9ce3a0 Rename CompanionObjectMapping.hasMappingToObject -> isMappedIntrinsicCompanionObject
(cherry picked from commit 18887f8bec)
2016-08-16 15:04:59 +03:00
Alexander Udalov
9e6812408c Make KClasses for primitives equal to KClasses for wrapper types
Both primitive int and wrapper type java.lang.Integer are represented by the
single type kotlin.Int in Kotlin, so inequality between the corresponding
KClasses was confusing here. To keep the old behavior, one may call 'k1.java ==
k2.java' instead of `k1 == k2`

 #KT-13462 Fixed

(cherry picked from commit 5b1ee13db8)
2016-08-16 15:04:59 +03:00
Alexander Udalov
bd2763a797 Fix NPE on .companionObjectInstance for built-in classes
#KT-13370 Fixed

(cherry picked from commit 3efa738bc0)
2016-08-16 15:04:59 +03:00
Alexander Udalov
8bc65875ff Minor, make CompanionObjectMapping a singleton
(cherry picked from commit 611899e9d3)
2016-08-16 15:04:59 +03:00
Denis Zharkov
16fe13fbb3 Remove JavaToKotlinClassMap dependency on built-ins instance
(cherry picked from commit 7fe5a9db8d)
2016-08-16 15:04:59 +03:00
Kirill Rakhman
41cf8680af Allow suppressing warnings for secondary constructor (KT-12627)
#KT-12627 Fixed
2016-08-16 12:56:00 +03:00
Nikolay Krasko
970ac5a508 Make quick evaluate work on receiver in qualified expressions (KT-13269)
#KT-13269 Fixed
2016-08-16 12:32:43 +03:00
Michael Bogdanov
c427f1f7ef Fix for KT-13374: CompilationException: Inline function call with anonymous object implementing an interface by delegation
#KT-13374 Fixed
(cherry picked from commit 7325baa)
2016-08-16 10:53:21 +03:00
Natalia Ukhorskaya
ade959ef0c Eval4J: loadClass should return prepared class, otherwise ClassNotPreparedException fails in invokeMethod
#KT-12641 Fixed
2016-08-16 09:35:08 +03:00
Natalia Ukhorskaya
3caea45918 Debugger: allow to evaluate 'this' and fields in java files 2016-08-16 09:34:59 +03:00
Natalia Ukhorskaya
c6ff1b2c32 Fixes after review: get last statement in codeFragmetn using psi instead of findElementAt 2016-08-16 09:34:49 +03:00
Natalia Ukhorskaya
eb0bc8cab3 Minor: extract similar parts to separate function 2016-08-16 09:34:37 +03:00
Natalia Ukhorskaya
0ca207acb8 Debugger: allow to evaluate kotlin expressions in java files
#KT-7549 Fixed

 If the context is inside PsiJavaFile, get list of all local variables available in current frame (this logic was removed in 29778311e8 01.12.2015 Drop unnecesary logic about additional context for lambda in debugger). For each variable create KtProperty inside top-level KtFunction in KtFile and set it as contextElement for KtCodeFragment. This file should have all imports from PsiJavaFile. We do not create properties on top-level because they will be highlighted as top-level vals/vars.
2016-08-16 09:34:24 +03:00
Natalia Ukhorskaya
df375f3f1b Debugger tests: mark objects using NodeDescriptorImpl.getMarkup. Primitive values cannot be marked. 2016-08-16 09:33:45 +03:00
Stanislav Erokhin
8a38ec01a5 Fixed exception AssertionError: Illegal resolved call to variable with invoke
#KT-13330 Fixed
#KT-13349 Fixed
(cherry picked from commit 85a951d)
2016-08-15 19:25:44 +03:00
Mikhail Glukhikh
17cc7be30e Do not suggest "Replace infix with safe call" inside conditions or binary / unary expressions #KT-13328 Fixed
(cherry picked from commit b53cb91)
2016-08-15 18:49:39 +03:00
shiraji
11b4c387ff Fix problem with appending literal to variable omitting braces #KT-13336 Fixed
(cherry picked from commit 4296927)
2016-08-15 18:49:28 +03:00
Kirill
290124b3fe Implement intentions to add/remove braces to/from when entries #KT-12043 Fixed
(cherry picked from commit 223fd9f)
2016-08-15 17:20:03 +03:00
Kirill Rakhman
a7a97b6aaf Highlight use of toString() inside string interpolation as redundant #KT-10731 Fixed
(cherry picked from commit d68a681)
2016-08-15 17:19:50 +03:00
Kirill Rakhman
3f472143f2 Format spaces around !is and !in (KT-13314)
#KT-13314 Fixed
2016-08-15 16:14:00 +03:00
Mikhail Glukhikh
3edb91c98d KT-13430 related: add non-null assertion works also for UNSAFE_INFIX_CALL
(cherry picked from commit 52dacd1)
2016-08-15 10:15:28 +03:00
Mikhail Glukhikh
f3d1e7c5ae Add non-null assertion: correct handling of unary expression unsafe calls #KT-13430 Fixed
(cherry picked from commit cf2d575)
2016-08-15 10:15:16 +03:00
Mikhail Glukhikh
26d3a3dd76 Minor: convert to expression body is forbidden also for nested non-exhaustive whens
(cherry picked from commit e01e084)
2016-08-15 10:15:04 +03:00
Mikhail Glukhikh
405d966ec2 Unused symbol: handling of import as alias not only for objects / enums #KT-11933 Fixed
(cherry picked from commit 1397577)
2016-08-15 10:14:48 +03:00
Mikhail Glukhikh
013d605dca Convert to expression body is forbidden for if without else #KT-12951 Fixed
(cherry picked from commit 6a6c67d)
2016-08-15 10:14:35 +03:00
Mikhail Glukhikh
3d59603fa8 Report of UNINITIALIZED_ENUM_COMPANION also for implicit receivers #KT-11769 Fixed
(cherry picked from commit 1c5c650)
2016-08-12 18:04:45 +03:00
Mikhail Glukhikh
53775140e2 KT-11769 case with companion function call: error is now detected if companion receiver is stated explicitly
(cherry picked from commit 04f71bc)
2016-08-12 18:04:34 +03:00
shiraji
ebdda7a0ad Add quickfix for adding 'inline' to a function with reified generic #KT-6975 Fixed
(cherry picked from commit 3e58283)
2016-08-12 15:14:12 +03:00
Sergey Mashkov
25f414c099 KT-13211 KotlinCompileMojoBase could provide better compilation failure info
(cherry picked from commit 3c00262)
2016-08-12 14:02:11 +03:00
Mikhail Glukhikh
b9d2d17602 Fix for SOE in VarianceChecker #KT-13401 Fixed
(cherry picked from commit 6cf90cf + modification due to refactoring in 1.1)
2016-08-11 13:23:30 +03:00
Alexey Tsvetkov
d47dbfd163 Revert replacing convention with extension
It seems that was wrong
2016-08-10 22:20:24 +03:00
Alexey Sedunov
d6fb46c969 Introduce Property: Fix duplicate count in popup window
#KT-13395 Fixed
(cherry picked from commit 3475a1f)
2016-08-10 16:03:13 +03:00
Alexey Sedunov
71720af295 Light Classes: Do not compute annotations for light elements with invalid
origin (possible fix for KT-13199)
(cherry picked from commit ab7d48a)
2016-08-10 16:03:12 +03:00
Alexey Sedunov
f918756ad8 Move: Quote package name (if necessary) when moving declarations to new file
#KT-13385 Fixed
(cherry picked from commit 4ab25bd)
2016-08-10 16:03:12 +03:00
Alexey Sedunov
8f76445ea7 Extract Function: Skip callable reference selectors
#KT-13218 Fixed
(cherry picked from commit b793252)
2016-08-10 16:03:11 +03:00
Alexey Sedunov
22f3bd994d Create from Usage: Do not suggest creating annotations/enum classes for unresolved type parameter bounds
#KT-13364 Fixed
(cherry picked from commit 6e3d1d7)
2016-08-10 16:03:10 +03:00
Alexey Sedunov
d680ebde03 Override/Implement Members: Do not make return type non-nullable if base
return type is explicitly nullable
 #KT-13383 Fixed
 #KT-13379 Fixed
(cherry picked from commit 1a4ff59)
2016-08-10 16:03:09 +03:00
Alexey Sedunov
a06e5b207e Quick Fixes: Use simple class name in "Change function return type" quickfix
#KT-12919 Fixed
(cherry picked from commit 75573bd)
2016-08-10 16:03:08 +03:00
Alexey Sedunov
ca083757aa Override/Implement Members: Support "Copy JavaDoc" options for library classes
#KT-12997 Fixed
(cherry picked from commit f57c927)
2016-08-10 16:03:07 +03:00
Alexey Sedunov
7af981c274 Introduce Variable: Skip leading/trailing comments inside selection
#KT-13054 Fixed
(cherry picked from commit 8a9a328)
2016-08-10 16:03:07 +03:00
Alexey Sedunov
074e9620a7 Introduce Variable: Retain entered name after changing "Specify type explicitly" option
#KT-13128 Fixed
(cherry picked from commit 00b6839)
2016-08-10 16:03:06 +03:00
Alexey Sedunov
2ac07f4a41 Extract Function: Extract Function: Fix generation of destructuring declarations
#KT-13010 Fixed
(cherry picked from commit 792177f)
2016-08-10 16:03:05 +03:00
Alexey Sedunov
7cab3f102b Extract Function/Parameter/Type Alias: Automatically quote declaration name when necessary
#KT-13157 Fixed
(cherry picked from commit 06e7672)
2016-08-10 16:03:04 +03:00
Alexey Sedunov
1d74fd56ab Presentation: Render function signature in RefactoringDescriptionLocation
#KT-12943 Fixed
(cherry picked from commit 59a714c)
2016-08-10 16:03:03 +03:00
Alexey Sedunov
f420c8fb9f Introduce Variable: Do not suggest expressions without type
#KT-12922 Fixed
(cherry picked from commit 892c843)
2016-08-10 16:03:02 +03:00
Alexey Sedunov
a535daba1e Rename: Fix function description in super method warning dialog
#KT-12945 Fixed
(cherry picked from commit 3cd35f8)
2016-08-10 16:03:02 +03:00
Alexey Sedunov
d639d4099d Refactoring: Allow multiple ElementKinds when choosing element to refactor
(cherry picked from commit b5828a5)
2016-08-10 16:03:01 +03:00
Alexey Sedunov
87f93fda26 Misc: Update function/type alias signature preview upon changing checkbox state
(cherry picked from commit 09d3629)
2016-08-10 16:03:00 +03:00
Alexey Sedunov
f849cf993d Change Signature: Consider super call a by-name propagation site if either its class, or its primary constructor is a propagation target.
This fixes testJavaConstructorParameterPropagation test flickering
(cherry picked from commit 57bc0d6)
2016-08-10 16:02:59 +03:00
Alexey Sedunov
a662feb39b Convert to Kotlin: AbstractParameterTablePanel.java
(cherry picked from commit ce0e5b4)
2016-08-10 16:02:58 +03:00
Alexey Sedunov
de0012086a Convert to Kotlin: AbstractParameterTablePanel.java (rename to .kt)
(cherry picked from commit 27773fb)
2016-08-10 16:02:58 +03:00
Alexey Sedunov
3a894fdb65 Convert to Kotlin: ExtractFunctionParameterTablePanel.java
(cherry picked from commit 3d49b27)
2016-08-10 16:02:57 +03:00
Alexey Sedunov
b9ff03b510 Convert to Kotlin: ExtractFunctionParameterTablePanel.java (rename to .kt)
(cherry picked from commit abe7b8c)
2016-08-10 16:02:56 +03:00
Alexey Sedunov
c592e3f90f Refactoring: Extract AbstractParameterTablePanel class
(cherry picked from commit 6b0968c)
2016-08-10 16:02:55 +03:00
Alexey Sedunov
362b393b8d Minor: Move and rename KotlinFunctionSignatureComponent
(cherry picked from commit 9e339c1)
2016-08-10 16:02:54 +03:00
Alexey Sedunov
0d9633cff8 Refactoring: Extend expression selection utilities to support KtTypeElement
(cherry picked from commit 301f86c)
2016-08-10 16:02:54 +03:00
Alexey Sedunov
9549d623d0 Inline Variable/Property: Move test data
(cherry picked from commit 7773a1c)
2016-08-10 16:02:53 +03:00
Alexey Tsvetkov
5696c3b667 Invalidate jar cache at the end of a Gradle build
#KT-12912 fixed
2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
e1316ff069 Add simple file modification util for gradle incremental tests 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
4e5092e2a6 Refactoring: cleanup gradle plugin 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
a7582f6f0b Refactoring: move util functions to gradleUtils.kt 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
af053ef160 Refactoring: remove unused ScriptHandler 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
c5243e323c Refactoring: simplify KotlinSourceSet creation 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
ce4f220bd9 Refactoring: extract constants 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
7a1d7c4af5 Refactoring: stop using internal classes to create DSL extensions 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
7b1bd21366 Refactoring: taskUtils.kt->gradleUtils.kt 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
a204c0a4c7 Refactoring: remove usages of ProjectInternal 2016-08-10 15:52:55 +03:00
Alexey Tsvetkov
9ac897f36c Refactoring: inject FileResolver
This is part of refactoring to minimize using of internal API in gradle plugin
2016-08-10 15:52:55 +03:00
Ilya Chernikov
8c40d4aadd Attempt to fix EA-82064:
"java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit"
2016-08-10 14:15:05 +02:00
Zalim Bashorov
1bcb3eda93 JS backend: fix runtime type checking for interfaces
(cherry picked from commit 9ece62f)
2016-08-10 15:13:03 +03:00
Zalim Bashorov
0cfcef2279 Fix printing file size of generated js files for TeamCity statistics
(cherry picked from commit 060255e)
2016-08-10 15:12:56 +03:00
Dmitry Jemerov
a33c4b8f03 workaround for IDEA's issue that throws an exception when using union() on a LocalSearchScope with no elements (EA-82063 - AIOOBE: GlobalSearchScope.union)
(cherry picked from commit f08a7f1)
2016-08-10 13:29:49 +02:00
Dmitry Jemerov
2d66aa54b3 don't use document for checking whether a folding region is one-line, use only PSI, as it may not correspond to the state of the document (EA-81838 - IOOBE: LineSet.findLineIndex)
(cherry picked from commit 180f70b)
2016-08-10 13:29:38 +02:00
Dmitry Jemerov
375c3b9214 don't crash if we don't have a descriptor for the declaration under caret (EA-86248 - KNPE: KDocNameCompletionSession.doComplete)
(cherry picked from commit a4aa3cd)
2016-08-10 13:29:30 +02:00
Dmitry Jemerov
3e478f096b correct fix for showing dialog from popup callback (EA-86138)
(cherry picked from commit ddb91cc)
2016-08-10 13:29:18 +02:00
Dmitry Jemerov
c354cdef5b correct fix for invoking 'safe delete' refactoring outside of write action (EA-80766 - E: BaseRefactoringProcessor.run)
(cherry picked from commit 5c113a4)
2016-08-10 13:29:11 +02:00
Dmitry Jemerov
763fa7d193 one more missing read action in Find Usages (EA-81276 - assert: SharedImplUtil.getParent)
(cherry picked from commit 5d92f65)
2016-08-10 13:29:01 +02:00
Dmitry Jemerov
ae50e1f766 check element validity in KotlinSelectInProjectViewProvider (EA-84485 - PIEAE: OwnBufferLeafPsiElement.getContainingFile)
(cherry picked from commit f9d3804)
2016-08-10 13:28:52 +02:00
Dmitry Jemerov
033ee0953e don't check intention availability on PsiFile (EA-85587 - assert: SharedPsiElementImplUtil.getChildIndex)
(cherry picked from commit 8632790)
2016-08-10 13:28:45 +02:00
Mikhail Glukhikh
56869950c8 Do not report USELESS_CAST when casting null to nullable (special case)
(cherry picked from commit 687698d)
2016-08-10 12:36:39 +03:00
Mikhail Glukhikh
fbb9b09870 Minor: imports removed, formatting
(cherry picked from commit 8d537d2)
2016-08-10 12:29:34 +03:00
Mikhail Glukhikh
5dc7975b95 CAST_NEVER_SUCCEEDS: do not report when casting nullable to nullable #KT-260 Fixed
(cherry picked from commit 098520d)
2016-08-10 12:29:18 +03:00
Ilya Gorbunov
026134e7e0 Changelog for 1.0.4: stdlib changes
(cherry picked from commit 0ce4bce)
2016-08-09 19:08:03 +03:00
Ilya Gorbunov
08201ddb9f Docs: clarify docs for 'generateSequence'.
(cherry picked from commit ae985e24ca)
2016-08-09 18:18:26 +03:00
Ilya Gorbunov
c544ed1b70 Docs: preserve empty lines in the generated documentation to separate summary and paragraphs in the body.
(cherry picked from commit fed24c2be6)
2016-08-09 18:18:25 +03:00
Ilya Gorbunov
a245ec691d Improve FileTreeWalk documentation,
#KT-13297 Fixed

(cherry picked from commit e31167e74f)
2016-08-09 18:18:24 +03:00
Ilya Gorbunov
e933f8ebcd Document that sequences could be iterated multiple times.
#KT-13115 Fixed

(cherry picked from commit e7d250b7d7)
2016-08-09 18:18:22 +03:00
Ilya Gorbunov
69309a038e Support platform null sneaking to Closeable.use.
#KT-12894
2016-08-09 18:15:23 +03:00
Alexander Udalov
51aa31c5a5 CLI, Ant: add kotlin-reflect.jar to classpath by default, support "-no-reflect"
Note that now "-no-stdlib" implies "-no-reflect".

 #KT-13237 Fixed

(cherry picked from commit 0d26087040)
2016-08-09 11:27:32 +03:00
Mikhail Glukhikh
7606b1db1f Minor: test comment, relevant to KT-13322 2016-08-08 19:24:11 +03:00
Mikhail Glukhikh
5ac31268c8 Rewrite slice error removed for LEAKING_THIS #KT-13371 Fixed
Also EA-86478 fixed
2016-08-08 19:24:01 +03:00
Mikhail Glukhikh
94d3b4c2de Correct CFA order for enums: first own members, then entries, and at last companion object members #KT-6054 Fixed 2016-08-08 19:02:36 +03:00
Mikhail Glukhikh
7b2857f261 Report UNINITIALIZED_VARIABLE also for qualified object property #KT-12809 Fixed 2016-08-08 14:36:33 +03:00
Mikhail Glukhikh
76ac6d1571 UNINITIALIZED_ENUM_ENTRY compiler warning introduced #KT-2349 Fixed 2016-08-08 14:36:28 +03:00
Mikhail Glukhikh
4b09de89a0 CFA: No more UNRESOLVED_CALL for object / enum entry qualifiers 2016-08-08 14:36:23 +03:00
Mikhail Glukhikh
a1394bc39c ControlFlowInformationProvider: convert to Kotlin 2016-08-08 14:36:18 +03:00
Mikhail Glukhikh
28bb9ea90c ControlFlowInformationProvider.java --> ControlFlowInformationProvider.kt 2016-08-08 14:36:13 +03:00
Mikhail Glukhikh
e0d7f78bd4 DataFlowValueFactory: converted to Kotlin
(cherry picked from commit 7f9b9dd)
2016-08-08 14:36:08 +03:00
Mikhail Glukhikh
f34c9ba5c6 DataFlowValueFactory.java --> DataFlowValueFactory.kt
(cherry picked from commit b1a2a07)
2016-08-08 14:36:03 +03:00
Valentin Kipyatkov
32c6eac1f6 KT-12793 Code completion doesn't suggest abstract protected extension methods
#KT-12793 Fixed
(cherry picked from commit 6ff91d1)
2016-08-05 19:38:18 +03:00
Zalim Bashorov
5ccd5246eb JS backend: add the ability to get JS constructor function by class name and from instance. Support it for reified type parameters too. Add ability to get name of class.
#KT-5987 Fixed
 #KT-4115 Fixed
(cherry picked from commit 88ad00b)
2016-08-05 18:37:46 +03:00
Zalim Bashorov
29da38a9d2 JS backend: always (explicitly) generate constructor function for classes. Use name of class as name of constructor function when it isn't special.
#KT-4115 In Progress
(cherry picked from commit e7eb35b)
2016-08-05 18:37:05 +03:00
Nikolay Krasko
8a6fe3c1b7 Minor: rename variables 2016-08-05 16:42:06 +03:00
Nikolay Krasko
886a36da8f Decrease xmx in tests 2016-08-05 16:42:05 +03:00
Nikolay Krasko
67022ab0f8 Use nullable value and destroy it in tearDown for REPL tests 2016-08-05 16:42:03 +03:00
Nikolay Krasko
78a983c952 Fix compile error 2016-08-05 16:42:02 +03:00
Alexey Andreev
96612cae72 JS: add tests to show that #KT-12865 fixed as well 2016-08-05 16:34:27 +03:00
Alexey Andreev
861a6821a6 KT-12864: add Comparable interface to Enum metadata so that RTTI should handle is Comparable case correctly 2016-08-05 16:34:26 +03:00
Nikolay Krasko
4f466b168c Report RETURN_NOT_ALLOWED and RETURN_IN_FUNCTION_WITH_EXPRESSION_BODY only on the return with label (KT-13340)
#KT-13340 Fixed
(cherry picked from commit 300e0ac)
2016-08-05 15:03:22 +03:00
Michael Bogdanov
0db13823e1 Disable kt13133 test on android
(cherry picked from commit 67808ef)
2016-08-05 14:17:25 +03:00
Stanislav Erokhin
e2a9c956bf Add more debug info for EA-85303 and EA-79267 2016-08-04 17:59:20 +03:00
Alexey Tsvetkov
767329fcab Update changelog for 1.0.4 2016-08-04 11:26:03 +03:00
Pavel V. Talanov
74e6d59885 Add assertions to prohibit creating LazyJavaClassDescriptor by KtLightClass
Diagnosing KT-12966
2016-08-03 17:54:07 +03:00
Pavel V. Talanov
7a4c9ab1f2 KtLightClassForDecompiledDeclaration is now marked by KtLightClassMarker
Rename: KtJavaMirrorMarker -> KtLightClassMarker
Introduce code to be able to tell light classes from source and binaries apart in 'frontend.java'
2016-08-03 17:53:54 +03:00
Alexey Tsvetkov
150b1c2640 Update changelog for 1.0.4 2016-08-03 14:59:39 +03:00
Alexey Tsvetkov
ae39a58614 Configure KotlinCompile.destinationDir before evaluation
Previously it was possible to refer to destinationDir
in gradle scripts (evaluation phase), so in order to
preserve compatibility destinationDir should be configured
before evaluation.

This does not affect android plugin because in this case kotlin
tasks were created after evaluation anyway, so it
was not possible to refer to destinationDir
during evaluation anyway.
2016-08-02 20:59:03 +03:00
shiraji
45d82f1cb7 Intention / inspection for unnecessary lateinit #KT-13011 Fixed 2016-08-02 19:52:32 +03:00
Nikolay Krasko
f7830a5843 Ignore intervals that has no mapping for origin line (KT-12896)
(cherry picked from commit a9ee10a)
2016-08-02 13:29:53 +03:00
Nikolay Krasko
aa50374705 Better search for inlined strings in strata: there might me several file mappings to the same file (KT-12896)
#KT-12896 In Progress
(cherry picked from commit 2dd7470)
2016-08-02 13:29:51 +03:00
Nikolay Krasko
7fcc7795ad Refactorings: functions moves
(cherry picked from commit ace58e8)
2016-08-02 13:29:50 +03:00
Nikolay Krasko
f7d162476a Fix breakpoints in inline functions after dexing (KT-12896)
#KT-12896 In Progress
(cherry picked from commit 5df7358)
2016-08-02 13:29:48 +03:00
Nikolay Krasko
7fa096bc43 Allow to step into inline functions while debugging Android app (KT-12896)
#KT-12896 In Progress
(cherry picked from commit 64979ae)
2016-08-02 13:29:47 +03:00
Nikolay Krasko
908debe7eb Emulate debugging after dexing for stepping tests with 'dex' prefix (KT-12896)
Remove SourceDebugExtension attribute from resulting class files

 #KT-12896 In Progress
(cherry picked from commit 2a2d7cd)
2016-08-02 13:29:45 +03:00
Nikolay Krasko
134824549a Refresh output dirs to make CompilerPaths.getModuleOutputDirectory() method work
(cherry picked from commit ad1907f)
2016-08-02 13:29:44 +03:00
Nikolay Krasko
b4f3df9224 Refactoring: introduce constants with strata names and reuse them in debugger
(cherry picked from commit 64e0349)
2016-08-02 13:29:42 +03:00
Nikolay Krasko
b8e96c48e2 Refactoring: move smapUtil and DebuggerUtils to debugger package
(cherry picked from commit 66bbcf4)
2016-08-02 13:29:41 +03:00
Mikhail Glukhikh
4c7a42ad29 KT-13113 related: KtStringTemplateExpression.singleExpressionOrNull() fixed 2016-08-02 12:59:56 +03:00
Mikhail Glukhikh
266f9d0d40 Single-expression string template is inspection for strings and intention otherwise #KT-13113 Fixed 2016-08-02 12:42:22 +03:00
shiraji
49a3ef35a7 KT-13113: Add inspection to detect single-expression string template 2016-08-02 12:42:08 +03:00
Mikhail Glukhikh
7f6be5b0bd Build fix: replace call with comparison inspection test 2016-07-29 19:46:40 +03:00
Mikhail Glukhikh
8f13c84e7c KT-13262 related: surround with null check is applicable now also for qualified calls with argument type mismatch 2016-07-29 19:17:04 +03:00
Mikhail Glukhikh
7044348086 Wrap with safe let call handles qualified calls correctly #KT-13262 Fixed 2016-07-29 19:14:01 +03:00
Mikhail Glukhikh
042fc0d3b8 Replace call with comparison inspection introduced #KT-11425 Fixed 2016-07-29 19:07:04 +03:00
Mikhail Glukhikh
7219904a87 KT-11425: convert a.compareTo(b) to binary comparison if possible 2016-07-29 19:06:37 +03:00
Mikhail Glukhikh
56c7786756 KT-11425: convert !a.equals(b) to a != b 2016-07-29 18:55:58 +03:00
Mikhail Glukhikh
5d47fdf557 KT-11425: replace call with binary operator works now also with equals() and == 2016-07-29 18:32:02 +03:00
Mikhail Glukhikh
679867bff9 ReplaceInfixCallFix --> ReplaceInfixOrOperatorCallFix 2016-07-29 18:27:27 +03:00
Mikhail Glukhikh
208798d4b0 Replace with safe call works now on UNSAFE_IMPLICIT_INVOKE #KT-12628 Fixed 2016-07-29 18:27:23 +03:00
Mikhail Glukhikh
56c9d7ecac KT-12628: !! is now correctly added to array expressions 2016-07-29 18:27:19 +03:00
Mikhail Glukhikh
3d67f8432e KT-12628: replace infix call supports now array accesses too 2016-07-29 18:27:14 +03:00
Mikhail Glukhikh
a7e4e2d5b0 KT-12628: new test for arg + something with nullable arg 2016-07-29 18:27:10 +03:00
Stanislav Erokhin
24b5be3ebe KT-13264 IAE: Argument for @NotNull parameter 'errorClass' createErrorTypeConstructorWithCustomDebugName must not be null
#KT-13264 Fixed
(cherry picked from commit aa91b5a)
2016-07-29 18:12:15 +03:00
Stanislav Erokhin
f6f5af9baa Do not add receiver for function expression by expected type.
(cherry picked from commit 2c2f105)
2016-07-29 18:12:14 +03:00
Mikhail Glukhikh
dd30bd5749 Make constructor parameter a property: additional test for private property in superclass 2016-07-29 17:58:21 +03:00
Mikhail Glukhikh
dc8c19590e Make constructor parameter a property: select 'private' to be able to remove it #KT-13187 Fixed 2016-07-29 17:58:16 +03:00
Mikhail Glukhikh
19389093c2 Make constructor parameter a property: message shortened a bit 2016-07-29 17:58:12 +03:00
Alexey Tsvetkov
3af7494d94 Add additional java source dir to source set in android test 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
57f721bb6e Refactoring: extract function to map classpath 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
9795864e30 Move call to kotlinTask.source to doTargetSpecificProcessing 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
4b825509ca Refactoring: move mapKotlinTaskProperties call to createKotlinJVMTask 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
c808fc368f Refactor classpath handling in KotlinCompile
#KT-13234 fixed
2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
167a83970d Add test for code using internal compiled incrementally
The issue was fixed during refactoring

    #KT-12923 fixed
2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
7a06d4dfe2 Track changes in generated source files
#KT-12962 fixed
2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
535ca5ddd4 Refactoring: simplify source roots search 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
7397e05aa4 Refactoring: use convention mapping for configuring classpath of kotlin tasks
#KT-12658 fixed
    #KT-12750 fixed
2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
cc5a3caf55 Refactor source configuration for android 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
c51ec9a67d Minor: cleanup 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
a8a021306e Refactoring: set task properties directly 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
28eb5c8d8e Refactoring: remove extra property to pass stubs directory 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
207b609f95 Refactoring: do not use extraProperties to pass kapt options to task 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
d65a31bea1 Refactoring: remove reflection calls 2016-07-29 17:52:28 +03:00
Alexey Tsvetkov
bf1af18dd6 Refactoring: remove remainings of custom classloader in gradle plugin 2016-07-29 17:52:28 +03:00
Pavel V. Talanov
bf68d4286a Fix compilation with '1.0.x' compiler 2016-07-29 14:55:41 +03:00
Pavel V. Talanov
9a4a7cadac Sync code in 'idea-ultimate' 2016-07-29 14:55:40 +03:00
Pavel V. Talanov
d5e8b7ab18 Fix test data 2016-07-29 14:55:38 +03:00
Pavel V. Talanov
6455c838c5 KtLightClassForSourceDeclaration.create(): check for enum entry earlier 2016-07-29 14:55:36 +03:00
Pavel V. Talanov
c0ed8b0158 LightClassDataProvider: FqName calculation is redundant now 2016-07-29 14:55:35 +03:00
Pavel V. Talanov
2fefba0802 Light class test for classes with dollars in name 2016-07-29 14:55:33 +03:00
Pavel V. Talanov
57c3f90ff2 PsiChecker test for classes with dollars in name 2016-07-29 14:55:32 +03:00
Pavel V. Talanov
985c78ea56 StubClassBuilder: correctly calculate short name when building delegates for light classes 2016-07-29 14:55:30 +03:00
Pavel V. Talanov
945e7e7889 Do not build light classes for scripts
Supports old behaviour
2016-07-29 14:55:28 +03:00
Pavel V. Talanov
5baa962dde FqName is not required to create source light classes 2016-07-29 14:55:27 +03:00
Pavel V. Talanov
e8e2d89314 Drop KtLightClass#getFqName() and some usages of classFqName in KtLightClassForDecompiledDeclaration 2016-07-29 14:55:25 +03:00
Pavel V. Talanov
2cddd4220a Local classes do not have qualified names
Mirros java psi
2016-07-29 14:55:24 +03:00
Pavel V. Talanov
43d37ff0a4 Refactor: restructure light class hierarchy for sources
KtLightClassBase
	| KtLightClassForSourceDeclaration
		| KtLightClassImpl (new!) // top level or inner/nested of top level class
		| KtLightClassForInterfaceDefaultImpls
		| KtLightClassForLocalDeclaration (new!)
			| KtLightClassForAnonymousDeclaration
				| KtLightClassForEnumEntry
2016-07-29 14:55:22 +03:00
Pavel V. Talanov
62e5fdac78 Refactor: rename KtWrappingLightClass -> KtLightClassBase 2016-07-29 14:55:21 +03:00
Pavel V. Talanov
186409902f Refactor: rename KtLightClassForExplicitDeclaration -> KtLightClassForSourceDeclaration 2016-07-29 14:55:19 +03:00
Pavel V. Talanov
a7a01654d7 Refactor: move KotlinCodeBlockModificationListener to 'idea-analysis' module 2016-07-29 14:55:17 +03:00
Pavel V. Talanov
d19e81716c Refactor: move OldPackageFacadeClassUtils to 'frontend.jvm' module 2016-07-29 14:55:16 +03:00
Pavel V. Talanov
83f38a03d9 Refactor: split classes in 'asJava' package into several subpackages to reflect their structure 2016-07-29 14:55:14 +03:00
Nikolay Krasko
02c7528cb2 Refactoring: move KtLightField interface to file with light elements 2016-07-29 14:55:12 +03:00
Pavel V. Talanov
d94b98dbc0 Drop PsiCodegenPredictor 2016-07-29 14:55:10 +03:00
Nikolay Krasko
f67f051b8f Postpone counting fqName for anonymous classes (KT-12645)
#KT-12645 Fixed
2016-07-29 14:55:09 +03:00
Alexander Udalov
0c0c8364ae Fix test data after bc8953b 2016-07-29 14:43:55 +03:00
Nikolay Krasko
d9715cc286 Refactoring: extract DebuggerClassNameProvider
(cherry picked from commit 5a5cd0e)
2016-07-28 16:07:39 +03:00
Nikolay Krasko
8466158c0d Minor: invert if, clean up
(cherry picked from commit 50e196d)
2016-07-28 16:07:38 +03:00
Nikolay Krasko
95592e83b0 Refactoring: fix weak warning about unnecessary escaped dot
(cherry picked from commit 097288d)
2016-07-28 16:07:36 +03:00
Nikolay Krasko
8237c71aa4 Refactoring: extract pattern to variable and add language injection
(cherry picked from commit e7ee0d1)
2016-07-28 16:07:34 +03:00
Nikolay Krasko
8384e2fe76 Refactoring: additional changes in smap functions and KotlinExceptionFilter
(cherry picked from commit 071285f)
2016-07-28 16:07:33 +03:00
Nikolay Krasko
27b44e7383 Refactoring: working with smap methods
(cherry picked from commit f71e244)
2016-07-28 16:07:32 +03:00
Nikolay Krasko
24d3bc60ec Refactoring: extract functions working with smap to separate file
(cherry picked from commit fcf0b7a)
2016-07-28 16:07:30 +03:00
Stanislav Erokhin
8903350918 Add assertion for variable as function call with explicit type parameters.
(cherry picked from commit f3be1b8)
2016-07-27 18:49:57 +03:00
Alexey Andreev
8e3d8169b7 KT-13160: when decomposing assignment with lhs like array[index], extract array instead of supporting only qualifier.name` 2016-07-27 18:38:03 +03:00
Dmitry Petrov
515570c935 KT-13241 Indices optimization leads to VerifyError with smart cast receiver
Use expected receiver type from the corresponding extension function.
2016-07-27 12:55:00 +03:00
Alexander Udalov
8bdca3b31e Never resolve modality of members to SEALED
(cherry picked from commit 0380b6cd88)
2016-07-26 22:19:05 +03:00
Alexander Udalov
7d2fbd683d Fix algorithm of determining modality for fake overrides
Previously we inferred "open" if there was at least one open member in the
hierarchy. However, that's not correct when that member is overridden by
another member in the hierarchy which is abstract. This led to incorrect code
being accepted by the front-end, and an exception during the bridge generation

 #KT-12467 Fixed

(cherry picked from commit b72293883d)
2016-07-26 22:16:57 +03:00
Mikhail Glukhikh
63435b4d77 Cast never succeeds: special 'Nothing' / 'Nothing?' case 2016-07-26 19:43:35 +03:00
Mikhail Glukhikh
68af26c994 Standard library regenerated 2016-07-26 19:43:29 +03:00
Mikhail Glukhikh
feab6f3262 kotlin-stdlib-gen: UNCHECKED_CAST instead of CAST_NEVER_SUCCEEDS 2016-07-26 19:43:23 +03:00
Mikhail Glukhikh
7d9aa0449f Suppress CAST_NEVER_SUCCEEDS removed from standard library code 2016-07-26 19:43:18 +03:00
Mikhail Glukhikh
d448a920ec Suppress CAST_NEVER_SUCCEEDS removed from source code 2016-07-26 19:43:12 +03:00
Mikhail Glukhikh
5fc797a3ef CAST_NEVER_SUCCEED: replace subtyping check with subclassing check #KT-13206 Fixed 2016-07-26 19:43:06 +03:00
Mikhail Glukhikh
47fd9906d5 KT-13170 related: correct handling of inspection parameters in additional checker 2016-07-26 19:17:21 +03:00
Mikhail Glukhikh
0589b4829a Has platform type inspection: do not report by default on Kotlin types with platform arguments #KT-13170 Fixed
Also #KT-12820 Obsolete
2016-07-26 19:17:16 +03:00
Mikhail Glukhikh
57eb4c1fcb Can be val inspection: local functions are taken into account #KT-13151 Fixed 2016-07-26 19:16:27 +03:00
Nikolay Krasko
501f2d199b Don't store analyze result longer than ModuleResolverProvider valid time
For synthetic files there might be file modifications without PsiModificationTracker.MODIFICATION_COUNT increment.
2016-07-26 17:45:00 +03:00
Nikolay Krasko
5c3e65da8c Remove psi modification tracker from pooled threads (EA-86038, KT-13163)
IDEA 163 explicitly forbids such tricks with exceptions.
(cherry picked from commit 3c8e35f)

 #KT-13163 Fixed
2016-07-26 17:24:55 +03:00
Michael Bogdanov
c1c53b42d6 Test for KT-13182: Regression: compiler internal error at inline
(cherry picked from commit 9b9abb2)
2016-07-26 16:18:54 +03:00
Michael Bogdanov
3e807149d9 Fix for KT-13133: Incorrect InnerClasses attribute value for anonymous object copied from an inline function
#KT-13133 Fixed
(cherry picked from commit 99cdc41)
2016-07-26 16:18:07 +03:00
Nikolay Krasko
f05364c8f9 Run SafeDeleteFix without run action to avoid "Refactorings should not be started inside write action" (KT-13207)
(cherry picked from commit a0226f3)
 #KT-13207 Fixed
2016-07-26 13:57:41 +03:00
Nikolay Krasko
919ef3c8ad Add "Studio" as version separator (KT-13184)
#KT-13184 Fixed
2016-07-26 13:57:41 +03:00
Alexander Udalov
54e81bc6b9 Move tests on KClass.java* to box/classLiteral/java
Also replace WITH_REFLECT to WITH_RUNTIME to test that these cases correctly
work without reflection in the classpath

(cherry picked from commit 0ea885ce58)
2016-07-26 13:53:56 +03:00
Alexander Udalov
ed8601797d Minor, make JavaClassProperty intrinsic a singleton
(cherry picked from commit 28dc5d788c)
2016-07-26 13:52:38 +03:00
Pavel V. Talanov
f326b95703 Show all Kotlin annotations when browsing hierarchy of "java.lang.Annotation" 2016-07-26 11:43:48 +03:00
Pavel V. Talanov
2c7d02fb7d Index enum classes as if they have "Enum" in supertypes
#KT-13057 Fixed
2016-07-26 11:43:36 +03:00
Pavel V. Talanov
9cc7591f90 Add test for KT-13057 with infrastructure 2016-07-26 11:43:25 +03:00
Alexey Andreev
491210db1e KT-12275 Add JS optimization that transforms the following code
```
do {
    X
    if (B) break;
} while (A)
```

to

```
do {
    X
} while (!B && A)
```

Add inversion that takes boolean expression and applies negation to it, simplifying if possible (like !!a => a).
2016-07-25 18:49:09 +03:00
Alexey Andreev
ce9fc1030a KT-12275 Add JS optimization that transforms the following code
```
do {
    guard: {
        // do something
        break guard;
        // do something
    }
} while (condition)
```

to

```
do {
    // do something
    continue;
    // do something
} while (condition)
```
2016-07-25 18:49:09 +03:00
Alexey Andreev
62f21eef3a KT-12275 Preserve evaluation order when do..while loop with extractable condition contains continue statement 2016-07-25 18:49:08 +03:00
Alexander Udalov
0e0d818006 Fix compilation 2016-07-25 16:42:23 +03:00
Alexander Udalov
c930b4f7c1 Minor, add comment, remove warning suppression
(cherry picked from commit 3ef3bb8251)
2016-07-25 15:58:04 +03:00
Alexander Udalov
cd37eded97 Move some members from OverrideResolver to OverridingUtil
(cherry picked from commit d945c33d5e)
2016-07-25 15:57:55 +03:00
Alexander Udalov
88ce657e1b Minor, inline HashSetUtil#symmetricDifference
(cherry picked from commit aaf618e035)
2016-07-25 15:57:13 +03:00
Alexander Udalov
03b32e74fa Simplify OverrideResolver#filterOverrides
- move source vs binary equivalent call filtering hack to
  ResolutionResultsHandler (see c4778bfe5a for
  the original commit introducing this behavior)
- rewrite the algorithm so that it doesn't need noDuplicates in the beginning:
  modulo the hack above whish is only needed in ResolutionResultsHandler,
  descriptor equivalence is checked anyway in OverrideResolver#overrides

(cherry picked from commit 475fb6e8a7)
2016-07-25 15:57:09 +03:00
Alexander Udalov
4c015924c5 Move OverrideResolver#generateOverridesInAClass to CollectionStubMethodGenerator
Also simplify substantially

(cherry picked from commit a6faab834d)
2016-07-25 15:57:05 +03:00
Alexander Udalov
33a787f4ae Use kotlin.Function1 instead of intellij Function in OverrideResolver
(cherry picked from commit bbd1e889a6)
2016-07-25 15:57:00 +03:00
Alexander Udalov
a50ad588ad Remove OverrideResolver#filterOutOverriding, simplify the only usage
(cherry picked from commit 191f532675)
2016-07-25 15:56:56 +03:00
Alexander Udalov
2c4128b50c Remove unreachable code in ResolutionResultsHandler
(cherry picked from commit 5d04fa3c2f)
2016-07-25 15:56:52 +03:00
Alexander Udalov
bb6414a217 Move utilities used in IDE from OverrideResolver to descriptorUtils.kt
(cherry picked from commit 89c5799155)
2016-07-25 15:56:40 +03:00
Alexander Udalov
cb510a993e Remove unnecessary loop from OverrideResolver#filterOverrides
It was not needed because overridability in both ways is already checked in
DescriptorEquivalenceForOverrides, which is called in
OverrideResolver#overrides

(cherry picked from commit 24c383a009)
2016-07-25 15:56:11 +03:00
Alexey Tsvetkov
bcf3db7979 Update changelog 2016-07-25 15:53:46 +03:00
Kirill Rakhman
39e0cb9cd4 Quickfix "Make primary constructor parameter a val" makes the val private now
Fixes #KT-13187
(cherry picked from commit ce80f94)
2016-07-25 12:29:02 +03:00
Yoshinori Isogai
90180172bc KT-12887 Extend selection should select call's invoked expression (#904)
#KT-12887 fixed
(cherry picked from commit 8aaf28e)
2016-07-22 20:28:59 +02:00
Alexander Udalov
bc8953b957 Remove quotes around visibility in invisible member diagnostic
(cherry picked from commit 83000c50ff)
2016-07-22 18:15:52 +03:00
Alexander Udalov
81c5211007 Improve error message for inaccessible invisible_fake members
#KT-8989 Fixed

(cherry picked from commit b6b2303aa7)
2016-07-22 18:15:50 +03:00
Alexander Udalov
67465fda94 Do not report "reflection is not available" on built-in sources
(cherry picked from commit a92f0a0446)
2016-07-22 18:15:47 +03:00
Alexander Udalov
289b8682a9 Check presence of dispatch receiver parameter in modifier checks
Also fix typo in "inapplicable infix" diagnostic message

(cherry picked from commit 9be219b69c)
2016-07-22 18:15:38 +03:00
Alexander Udalov
e4c7395950 Fix quotes in diagnostic messages
See 8316953259

(cherry picked from commit 2a390155a9)
2016-07-22 18:15:32 +03:00
Mikhail Glukhikh
5232af595c KT-10903 Lambda to callable reference: use named arguments if needed, lift restriction about parameter default values 2016-07-22 17:24:08 +03:00
Kirill Rakhman
4755596301 AddConstModifierIntention: handle more edge cases #KT-13173 Fixed 2016-07-22 16:13:54 +03:00
Nikolay Krasko
f1d463fd80 Do not fail on adding sources to libraries that can't be recognized (EA-73238)
It's valid situation when user in Gradle project had created ordinal Java module and wants to configure
it with Kotlin. We should add Gradle library to dependency but there's no need to configure sources for it.

(cherry picked from commit adbb07f)
2016-07-22 15:30:34 +03:00
Nikolay Krasko
af53d56d47 Minor: fix warning
(cherry picked from commit 0f4319d)
2016-07-22 15:30:33 +03:00
Nikolay Krasko
2f93710e92 Evaluate getting text under read action (EA-82155, EA-82587)
(cherry picked from commit 95d0604)
2016-07-22 15:30:31 +03:00
Nikolay Krasko
8824c1fa0d Don't fail if there's no modules in combobox with unconfigured modules (EA-76203)
Confirmed reproduction steps:
1. Open Kotlin gradle project (or do the sync) - it will be considered unconfigured until synchronisation is finished
2. Click configure and see Choose Configuration popup
3. Wait sync is finished
4. Click proposed configurator in popup

As all projects are considered configured now, single module selection will be empty
(cherry picked from commit 3d0cfdf)
2016-07-22 15:30:30 +03:00
Alexander Udalov
d581e4a08c Fix type of reference to protected var
#KT-12982 Fixed

(cherry picked from commit 9ab8da2ef9)
2016-07-22 12:07:54 +03:00
Alexander Udalov
52979fd215 Minor, inline LexicalScope.Companion.empty
(cherry picked from commit 6baf3ae737)
2016-07-22 12:07:54 +03:00
Alexander Udalov
a29ef253bf Simplify code in callable reference resolution
(cherry picked from commit 2fcd4e955a)
2016-07-22 12:07:54 +03:00
Alexander Udalov
50f9dc364b Fix "rewrite at slice LEXICAL_SCOPE" during callable reference resolution
Following the TODO in CallableReferencesResolutionUtils.kt, delete the
suspicious scope and use the new resolution process with the qualifier which
was obtained after the resolution of LHS. However, by default the tower
resolution algorithm also considers each qualifier as a class value as well,
which would be wrong here because resolution of LHS as a "value" happens
earlier in DoubleColonExpressionResolver and with slightly different rules. To
avoid that, do not mix in the "explicit receiver" scope tower processor when
creating processors for callable reference resolution.

Also delete unused functions and classes related to deleted scope, refactor
Scopes.kt

 #KT-8596 Fixed

(cherry picked from commit 00f1415ed7)
2016-07-22 12:07:54 +03:00
Mikhail Glukhikh
e5ecad7379 Build fix: inconsistency with master in *.txt rendering in tests 2016-07-22 11:56:39 +03:00
Mikhail Glukhikh
f47cd6e9d5 Source code cleanup: leaking this quick fixes applied
(cherry picked from commit 31cdc91)
2016-07-22 10:17:36 +03:00
Mikhail Glukhikh
28261f651b KT-12152: quick fix "make final" for member / containing class
(cherry picked from commit de3fbe3)
2016-07-22 10:16:13 +03:00
Mikhail Glukhikh
4c7d96160d KT-12152 : leaking this inspection: accessing non-final member / this in non-final class
(cherry picked from commit a22e7d3)
2016-07-22 10:16:02 +03:00
Mikhail Glukhikh
f8b0dafb04 KT-12152 : constructor consistency: non-final function calls
(cherry picked from commit 3d6bd81)
2016-07-22 10:15:30 +03:00
Mikhail Glukhikh
d940b1138b KT-12152 : constructor consistency: distinguish properties with and w/o backing fields, with default / custom accessors
(cherry picked from commit be40cf8)
2016-07-22 10:15:18 +03:00
Mikhail Glukhikh
e0dbef4dd5 KT-12152 : constructor consistency: handle open property accessing
(cherry picked from commit 422ea4c)
2016-07-22 10:15:08 +03:00
Mikhail Glukhikh
314615c8fa KT-12152 : constructor consistency: handle non-final classes
(cherry picked from commit f7b5d67)
2016-07-22 10:14:53 +03:00
Mikhail Glukhikh
0ceabd434f KT-12152 : constructor consistency analysis, base cases
(cherry picked from commit 8e18165)
2016-07-22 10:14:42 +03:00
Michael Bogdanov
6392b1cb8d 'superConstructorCall' test folder moved under 'innerNested'
(cherry picked from commit 1d5924d)
2016-07-21 19:12:21 +03:00
Michael Bogdanov
7f1e28ad94 Removed obsolete code in 'lookupConstructorExpressionsInClosureIfPresent' method
(cherry picked from commit 55382ba)
2016-07-21 19:12:18 +03:00
Michael Bogdanov
be56010608 Fix for KT-11833: Error generating constructors of class null with kind IMPLEMENTATION on anonymous object inheriting from nested class of super class
#KT-11833 Fixed
(cherry picked from commit 5dca4db)
2016-07-21 19:12:15 +03:00
Mikhail Glukhikh
2ac8a66ad9 A pair of "Suppress" changed from CAST_NEVER_SUCCEEDS to UNCHECKED_CAST 2016-07-21 15:35:19 +03:00
Mikhail Glukhikh
2629d5502b Array<Subtype> can be now cast to Array<Supertype(?)> without CAST_NEVER_SUCCEEDS #KT-6391 Fixed 2016-07-21 15:35:16 +03:00
Mikhail Glukhikh
9e6f4bf5d7 KT-6391: Arrays with same erased types counted as cast-compatible now 2016-07-21 15:35:13 +03:00
Mikhail Glukhikh
731a6704ab Remove setter parameter type inspection #KT-5771 Fixed 2016-07-21 15:22:28 +03:00
Alexey Tsvetkov
4df0432d83 Update changelog for 1.0.4 2016-07-21 14:59:03 +03:00
Alexey Tsvetkov
bf00a7c0e3 Update changelog for 1.0.4 2016-07-20 22:31:55 +03:00
Michael Bogdanov
f1ee066bd5 'getSuperCallLabelTarget' refactoring
(cherry picked from commit 6da9702)
2016-07-20 16:59:34 +03:00
Michael Bogdanov
bc70b0d822 Fix for KT-11634: UOE in ConstructorContext.getOuterExpression for super call in delegation
#KT-11634 Fixed
(cherry picked from commit 6f41e3b)
2016-07-20 16:59:32 +03:00
Natalia Ukhorskaya
0de42d9660 Debugger: check that label for marked object is a valid java identifier (KT-12651)
#KT-12651 Fixed
2016-07-19 17:56:15 +03:00
Nikolay Krasko
216c7c04b1 Remove call invokeAndWait() under read lock in debugger (KT-13037)
Call to invokeAndWait() in dispatch thread or in situation when read lock isn't held left untouched. Can't remove invokeAndWait() completely because without the
progress bar idea looks to be stacked on debugger start because of long search for inline functions usages (searching for breakpoints places).

 #KT-13037 Fixed
2016-07-19 16:22:47 +03:00
Mikhail Glukhikh
d9818bd3a5 Grammar: obsolete 'annotationEntry' changed to 'unescapedAnnotation' in a few places 2016-07-19 15:02:55 +03:00
Mikhail Glukhikh
7bdf55646e Grammar: obsolete 'package' element removed #KT-8429 Fixed 2016-07-19 15:02:52 +03:00
Mikhail Glukhikh
904a18cf08 A set of soft modifiers added to grammar #KT-13143 Fixed 2016-07-19 15:02:48 +03:00
Dmitry Jemerov
ba5760c913 fix muted test KotlinFindUsagesWithLibraryTestGenerated$KotlinLibrary.testLibraryCompanionObjectUsages
(cherry picked from commit 3ad6dae)
2016-07-19 13:28:22 +02:00
Dmitry Jemerov
59fcab987c in REPL tests, wait for process destroyed handler to fire after destroying process and before performing the rest of dispose
(cherry picked from commit dc0020b)
2016-07-19 13:28:16 +02:00
Dmitry Jemerov
b5a0cef907 fix muted test MultiFileIntentionTestGenerated.testImplementAbstractMember_implementVarInJava_ImplementAllInJava: apply intention in deterministic order, remove trailing space in expected output file
(cherry picked from commit 30f00bb)
2016-07-19 11:29:53 +02:00
Dmitry Jemerov
fa8d62c834 fix testdata for muted test IntentionTestGenerated$ReplaceItWithExplicitFunctionLiteralParam.testApplicable_nestedFunctionWithIt
(cherry picked from commit 9100ca8)
2016-07-19 11:29:53 +02:00
Kirill
a9bfb336f9 Implement quickfix for wrong long suffix
Fixes: KT-13134
(cherry picked from commit b9d235d)
2016-07-19 09:52:17 +03:00
Alexey Andreev
536f5f04d1 JS: in tests add verifier that checks whether no expression statements with only null expression exist 2016-07-18 19:31:40 +03:00
Alexey Andreev
4722752fd0 JS: add TranslationContext.cacheExpressionIfNeeded and use it where possible 2016-07-18 19:31:40 +03:00
Alexey Andreev
03d3035efe JS: add tests for support of 'for' statement in TemporaryAssignmentElimination 2016-07-18 19:31:40 +03:00
Alexey Andreev
d0d66f7719 JS: add tests to prove that KT-8003, KT-8318 and KT-12157 are no longer reproducible 2016-07-18 19:31:39 +03:00
Alexey Andreev
06bab7aa15 JS: minor code style and formatting fixes 2016-07-18 19:31:39 +03:00
Alexey Andreev
1e018388b6 JS: refactor generation of temporary variables 2016-07-18 19:31:39 +03:00
Alexey Andreev
fffec436a5 JS: get rid of JsEmptyExpression, use JsLiteral.NULL instead, rely on optimizer to remove redundant code 2016-07-18 19:31:38 +03:00
Alexey Andreev
f389c17c30 JS: during translation of expression mark assignment to temporary variables as synthetic statement.
This helps optimizer to find and eliminate temporary variables.
2016-07-18 19:31:38 +03:00
Dmitry Jemerov
73ec2163b6 to reduce VM contention between JVM with tests and JVM with Ant, run Ant with -Xmx128m
(cherry picked from commit 82babaf)
2016-07-18 17:01:34 +02:00
Dmitry Jemerov
54d61dc86b to ensure that JNA uses the DLL version from the jar and not an incompatible version that happens to be available on the machine running the tests, run tests with -Djna.nosys option
(cherry picked from commit 5224ad7)
2016-07-18 17:01:27 +02:00
Dmitry Jemerov
38341e0acd delete work dir after each JPS test
(cherry picked from commit b315a07)
2016-07-18 17:01:19 +02:00
Mikhail Glukhikh
5cafae59e1 KotlinJUnitStaticEntryPoint.wasSelected made public field #KT-13114 Fixed 2016-07-18 14:19:36 +03:00
Mikhail Glukhikh
ce0c43c59a Lambda to callable reference: inspection is optional depending on text length 2016-07-18 12:20:04 +03:00
Mikhail Glukhikh
b620099f32 Convert lambda to callable reference intention / inspection #KT-10903 Fixed 2016-07-18 12:19:47 +03:00
Denis Zharkov
f316973e12 Fix test data after 4725dd3 2016-07-16 09:12:57 +03:00
Denis Zharkov
df64f5ff19 Fix ConvertTextJavaCopyPasteProcessor after 4725dd3
In cases like 'fun foo() = \n fun dummy(){}'
declaration on the next line is parsed as top-level declaration.

But ConvertTextJavaCopyPasteProcessor expects that 'fun dummy(){}'
would be a part of an expression body, so we replace "\n" with " "
to turn off recovery in the case

See TextJavaToKotlinCopyPasteConversionTestGenerated.testAsExpressionBody
2016-07-16 09:12:57 +03:00
Denis Zharkov
8c22e8588a Minor. Drop unused method 2016-07-15 19:08:43 +03:00
Denis Zharkov
3ddd48472a Implement recovery for incomplete expression before declaration
It's needed when declarations are parsed as a part of previous expression
(see tests)

Currently we apply this kind of recovery in a conservative way,
only when declaration starts at the next line, and while
the condition could be relaxed, there's no need to do this

 #KT-4948 Fixed
 #KT-7118 Fixed
2016-07-15 19:08:43 +03:00
Denis Zharkov
00ccd3eccb Minor. Invert boolean parameter meaning
It looks much more sensible to me
2016-07-15 19:08:43 +03:00
Denis Zharkov
c2ac753758 Add EOL to EXPRESSION_FOLLOW recovery set
This change is used in further commits, but it's extracted
to emphasize that testData modifications are caused by this.
2016-07-15 19:08:42 +03:00
Alexey Sedunov
a51d3fc12a Create from Usage: Show target class name in the text of "Create member" quick fix 2016-07-15 02:20:22 +03:00
Alexey Sedunov
47073b5381 Minor: Convert CallablePlacement to sealed class 2016-07-15 02:20:20 +03:00
Alexey Sedunov
7b54ad0ec9 Rename: Fix exception on property rename preview 2016-07-15 02:20:19 +03:00
Alexey Sedunov
c0d5df15f7 Create from Usage: Show receiver type in the text of "Create extension" quick fix 2016-07-15 02:20:18 +03:00
Alexey Sedunov
917cd22327 Create from Usage: Approximate unresolvable types
#KT-7722 Fixed
2016-07-15 02:20:17 +03:00
Dmitry Jemerov
2cbabcc50f show line markers for properties defined in the primary constructor (KT-12626)
(cherry picked from commit e224041)
2016-07-14 23:37:34 +02:00
Dmitry Jemerov
313aab24d6 do not reenter indices to avoid deadlock
#KT-12718 Fixed
(cherry picked from commit 4391d83)
2016-07-14 23:36:24 +02:00
Dmitry Jemerov
34f8371613 don't consider calls to methods with the same name as a property to be calls to accessors of that property
#KT-12813 Fixed
(cherry picked from commit 5380b63)
2016-07-14 23:36:07 +02:00
Dmitry Jemerov
51d30a036a correctly find usages of overridden Java method through synthetic accessors
#KT-12869 Fixed
(cherry picked from commit 14037f0)
2016-07-14 23:35:48 +02:00
Alexey Andreev
dda9ae3d41 JS: refactor TemporaryVariableElimination 2016-07-14 18:02:16 +03:00
Alexey Tsvetkov
792d33f1f6 Correct test case for KT-12776
After minifying test, it stopped failing without fix
2016-07-14 16:43:32 +03:00
Alexey Tsvetkov
3ec6e94955 Do not force dependency resolution when configuring kapt with stabs
#KT-12776 fixed
2016-07-14 16:00:03 +03:00
Dmitry Jemerov
1f3b0ee950 Kotlin JUnit run configuration producer needs to take precedence over IDEA's PatternConfigurationProducer
#KT-13084 Fixed
(cherry picked from commit b09fc7c)
2016-07-13 16:08:52 +02:00
Dmitry Jemerov
af6c73156e add alternate path to common.jar dependency to work around the fact that it's no longer shipped in plugins/android/lib since AS 2.2 preview
(cherry picked from commit e66e292)
2016-07-13 13:43:34 +02:00
Dmitry Jemerov
25e8fea4fd ClsWrapperStubPsiFactory can be a singleton
(cherry picked from commit 5201fc1)
2016-07-13 13:17:12 +02:00
Alexander Udalov
2ede98f430 Minor, fix yellow code in OverrideResolver and OverridingUtil
(cherry picked from commit 87387d030f)
2016-07-13 13:44:36 +03:00
Alexander Udalov
d7158cab88 Suppress UNCHECKED_CAST instead of CAST_NEVER_SUCCEEDS in several places
This is related to KT-6611 being fixed recently. Note that not all cases of
incorrect "cast never succeeds" were fixed

(cherry picked from commit 8f33830f29)
2016-07-13 13:44:12 +03:00
Alexander Udalov
f143c8a40a Fix AssertionError in DescriptorResolver#checkBounds
#KT-9620 Fixed

(cherry picked from commit 13b0fda3c2)
2016-07-13 13:44:05 +03:00
Denis Zharkov
d0b4c29c9e Increase SOURCE_STUB_VERSION
It's necessary because of changes in parser
(mostly recovery f1026935a0)
2016-07-13 13:22:58 +03:00
shiraji
543c6bc6a1 Implement inspection to remove @ from annotation argument #KT-9228 Fixed 2016-07-13 12:57:29 +03:00
Dmitry Jemerov
0ad8c53706 specify FQ names for collection types as well
(cherry picked from commit c80e094)
2016-07-12 17:35:18 +02:00
Dmitry Jemerov
7b761dcf55 more sensible docs for @MustBeDocumented
(cherry picked from commit e492d23)
2016-07-12 16:26:58 +02:00
Dmitry Jemerov
4983b787d8 fix qualified links in Module.md
#KT-11373 Fixed
(cherry picked from commit ccbc19f)
2016-07-12 16:26:51 +02:00
Mikhail Glukhikh
c1faed5ab9 KT-12942 related: remove braces now does not work for if inside if 2016-07-12 17:20:34 +03:00
Mikhail Glukhikh
29a7bfed09 When to if now add braces for if branches inside #KT-12942 Fixed 2016-07-12 17:20:29 +03:00
Mikhail Glukhikh
828f4bfada Specify type explicitly: do not consider star projection arguments in KotlinType.isFlexibleRecursive() #KT-13055 Fixed 2016-07-12 17:19:32 +03:00
Mikhail Glukhikh
eb05a7a493 Can be primary constructor property: check whether property belongs to the same class #KT-12876 Fixed 2016-07-12 17:18:56 +03:00
Nikolay Krasko
b6a9e2da16 Generate linenumber for goto instruction in while (KT-13059)
Otherwise linenumber for previous instruction will be used in debugger. That can lead to error stepping
because it might be line that isn't reachable on current iteration.

 #KT-13059 Fixed
2016-07-12 14:37:02 +03:00
Nikolay Krasko
db2de7f55f Refactoring: invert if 2016-07-11 20:21:23 +03:00
Nikolay Krasko
d518fe67a6 Disable local mirrors for public teamcity 2016-07-11 20:21:23 +03:00
Nikolay Krasko
887e334517 Tests for Gradle inspections with configured Gradle project 2016-07-11 20:21:23 +03:00
Nikolay Krasko
0a9e48dd6a Warn about using different versions of Kotlin plugin and standard library in Gradle (KT-12730)
#KT-12730 Fixed
2016-07-11 20:21:23 +03:00
Nikolay Krasko
87f7a1b784 Fix getting external path for retrieving gradle model 2016-07-11 20:21:23 +03:00
Nikolay Krasko
f2eb7a5c59 Refactoring: extract method for getting Kotlin plugin version and remove findAllRecursively usage 2016-07-11 20:21:23 +03:00
Nikolay Krasko
607020e781 Use internalName for compare with module name 2016-07-11 20:21:23 +03:00
Pavel V. Talanov
60a3f2b268 Increase BINARY_STUB_VERSION
Should have been done after earlier changes: 022ef6410d
2016-07-11 19:05:29 +03:00
Pavel V. Talanov
0780c5d9b8 Put all stub versions into one place, explain their meaning 2016-07-11 19:05:27 +03:00
Pavel V. Talanov
fe8d0a8578 update ChangeLog for 1.0.3 2016-07-11 19:05:25 +03:00
Nikolay Krasko
1a6c7a6bf8 Fix LocalVarShadowingMemberProperty test by renaming test files 2016-07-11 13:06:05 +03:00
Denis Zharkov
3a1db42b6a Fix ClassCastException when data object is being analyzed
#KT-12687 Fixed
2016-07-10 15:05:10 +03:00
Michael Bogdanov
6af3635ba8 Print bytecode on linenumber test fail
(cherry picked from commit 93f6761)
2016-07-09 15:24:31 +03:00
Michael Bogdanov
e0b551443a Fix for KT-13040: Invalid bytecode generated for extension lambda invocation with safe call
#KT-13040 Fixed
(cherry picked from commit 23a0e19)
2016-07-09 15:10:33 +03:00
Michael Bogdanov
3ae5d3ad08 Fix for KT-12908: Variable initialization in loop causes VerifyError bad local variable type
#KT-12908 Fixed
(cherry picked from commit 486aa56)
2016-07-09 15:08:51 +03:00
Nikolay Krasko
be1241bf6d Fix bad refactoring 2016-07-08 21:37:49 +03:00
Nikolay Krasko
eeada69515 Minor: add some comments after review 2016-07-08 21:20:20 +03:00
Nikolay Krasko
0ddc79dc0f Support multi-module environment in DifferentKotlinGradleVersionInspection 2016-07-08 21:20:18 +03:00
Nikolay Krasko
38adac8612 Make DifferentKotlinGradleVersionInspection inpection work for classpath call with braces 2016-07-08 21:20:11 +03:00
Nikolay Krasko
737a1d0dbf Update description in DifferentKotlinMavenVersionInspection 2016-07-08 21:20:09 +03:00
Nikolay Krasko
2b697a69e2 Refactoring: extract strings 2016-07-08 21:20:08 +03:00
Nikolay Krasko
a27c3f506b Fallback to properly resolved version if heuristic doesn't work in DifferentKotlinGradleVersionInspection 2016-07-08 21:20:06 +03:00
Nikolay Krasko
59da76d7d1 Add inspection that warns if Gradle plugin version differs from the one in IDE (KT-12730)
#KT-12730 Fixed
2016-07-08 21:20:05 +03:00
Dmitry Jemerov
121b3db2e9 fix incompatibility with ASM 6: don't call getReturnType() on a type which is not a method type (IDEA-158090) 2016-07-08 17:20:31 +02:00
Denis Zharkov
0d5090c41d Extend recovery set when expecting property accessor
#KT-12987 Fixed
2016-07-08 16:12:34 +03:00
Denis Zharkov
3cd8a15477 Add recovery for properties without name
If property name is parsed on the next line and declaration is invalid
(no receiver/type/initializer), treat that name as it does not belong to property

 #KT-12987 In Progress
2016-07-08 16:12:34 +03:00
Denis Zharkov
3798f3932e Minor. Drop redundant AnnotationParsingMode 2016-07-08 16:07:59 +03:00
Denis Zharkov
162f7a4e40 Minor. Extract parsePropertyDelegateOrAssignment 2016-07-08 16:07:59 +03:00
Denis Zharkov
4d651fd54a Minor. Cleanup KotlinParsing
- Remove unused field and commented code
- Add some comments
- jet -> kotlin
2016-07-08 16:07:59 +03:00
Denis Zharkov
63cdf5955a Minor. Drop unreachable conditional branch
- allowShortAnnotations is true only for IN_ANNOTATION_LIST
- when starting parsing of annotation list we can't come to modifier list
(see the only usage of IN_ANNOTATION_LIST)
2016-07-08 16:07:59 +03:00
Denis Zharkov
127fbcd85e Add val/var tokens in parameter name recovery set
Recovery after val/var everywhere beside value parameters works
properly without this change

 #KT-7915 Fixed
2016-07-08 16:07:59 +03:00
Dmitry Petrov
8f130495e3 KT-13023 Char operations throw ClassCastException for boxed Chars
Char is not a Number, so we can't use the same coercion strategy for Char members,
since it doesn't work for boxed Chars.
(cherry picked from commit b0edec8)
2016-07-08 13:28:41 +03:00
Dmitry Petrov
f792b19cae Minor: fix NPE in CallableMethod.toString for methods of primitive types
(cherry picked from commit 2ccb0ca)
2016-07-08 13:28:10 +03:00
Dmitry Petrov
d2b22c37a2 KT-6916: do not create Progression instances in for-in-downTo loops
(cherry picked from commit bf4f263)
2016-07-08 09:53:35 +03:00
Dmitry Jemerov
1c11f8a75e add test for resolving links to library classes from KDoc comments
(cherry picked from commit dec2f98)
2016-07-07 19:32:18 +02:00
Dmitry Jemerov
945938ef8b use navigation element to resolve KDoc links, so that we have correct context when resolving links in the documentation of library elements
#KT-10654 Fixed
(cherry picked from commit 80e10c6)
2016-07-07 19:31:42 +02:00
Dmitry Jemerov
790330f804 use a better API for locating target element when navigating by documentation link, to ensure we find the source for descriptors belonging to library classes
#KT-12932 Fixed
(cherry picked from commit fac1b85)
2016-07-07 19:31:32 +02:00
Dmitry Jemerov
9ac01d633a use QualifiedNameResolver for resolving links in KDoc
#KT-10398 Fixed
(cherry picked from commit 88fe668)
2016-07-07 19:31:23 +02:00
Valentin Kipyatkov
f4e7c7b940 KT-12803 Unused import when class is used in method reference
#KT-12803 Fixed
(cherry picked from commit 5e48b73)
2016-07-07 20:15:18 +03:00
Valentin Kipyatkov
11b62d0cad KT-10433 Copy-pasting reference to companion object member causes import dialog in specific case
#KT-10433 Fixed
(cherry picked from commit 1941572)
2016-07-07 20:15:18 +03:00
Valentin Kipyatkov
659f916086 KT-12646 ConvertToBlockBody intention should use BodyResolveMode.PARTIAL
#KT-12646 Fixed
(cherry picked from commit 9463880)
2016-07-07 20:15:18 +03:00
Dmitry Jemerov
7ca54b9011 avoid NPE when trying to create a file that already exists
#KT-12655 FIxed
(cherry picked from commit 60523fb)
2016-07-07 18:04:16 +02:00
Dmitry Jemerov
9199bafe10 check that main() returns Unit
#KT-12760 Fixed
(cherry picked from commit 972ebd5)
2016-07-07 18:04:11 +02:00
Dmitry Jemerov
6b68377954 MainFunctionDetector: cleanup after J2K
(cherry picked from commit 30d721c)
2016-07-07 18:04:05 +02:00
Dmitry Jemerov
b8ac43c9d9 MainFunctionDetector: J2K
(cherry picked from commit b58c659)
2016-07-07 18:03:59 +02:00
Dmitry Jemerov
8a6e761bdb MainFunctionDetector: rename to .kt
(cherry picked from commit b9a9f25)
2016-07-07 18:03:54 +02:00
Dmitry Jemerov
5a1860833b to restore pre-1.0.3 highlighting behavior, inherit "extension function" and "extension property" colors from "static method" and "static field"
#KT-12937 Fixed
(cherry picked from commit 193a404)
2016-07-07 18:03:49 +02:00
Dmitry Jemerov
c352822539 fix rendering of code blocks escaped with multiple backticks or containing backslashes
#KT-12998 Fixed
 #KT-12999 Fixed
(cherry picked from commit 216d548)
2016-07-07 18:03:42 +02:00
Dmitry Jemerov
4423daa9e1 don't lose ! when rendering markdown
#KT-13000 Fixed
(cherry picked from commit 801a128)
2016-07-07 18:03:36 +02:00
Alexey Tsvetkov
14a74446f3 Fix kapt stubs generation 2016-07-07 17:23:56 +03:00
Alexey Tsvetkov
3495c0fe86 Do not run integration tests with old gradle versions
Reason finalizedBy is not supported with gradle < 2.0
2016-07-07 15:40:39 +03:00
Alexander Udalov
5f3ef4f6cf Minor, fix NonExistentClass name and format
(cherry picked from commit 720c29e8f4)
2016-07-07 14:57:57 +03:00
Alexander Udalov
e544013a4c Get rid of CallChecker#checkPropertyCall, create fake ResolvedCall
(cherry picked from commit ceb54492e6)
2016-07-07 14:55:00 +03:00
Dmitry Jemerov
a63d5956f6 fix ASM 5 src download URL (file was removed in IDEA commit ed9c9fc)
(cherry picked from commit 623673c)
2016-07-07 12:50:16 +02:00
Nikolay Krasko
6dc1c67900 Add description for Kotlin gradle plugin 2016-07-06 20:13:23 +03:00
Nikolay Krasko
6c6c7b246b Refactoring: better name for SameVersionInspection
It now has better suppression string
2016-07-06 20:13:23 +03:00
Nikolay Krasko
b9e3b9ef46 Refactoring: rename SameVersionIDEPluginInspection
It now has better suppression string
2016-07-06 20:13:23 +03:00
Nikolay Krasko
205a95a03d Show versions that are reported different in SameVersionIDEPluginInspection 2016-07-06 20:13:23 +03:00
Nikolay Krasko
6b79c09ad2 Avoid "loader constraint violation: when resolving method "ActionsKt.runReadAction()" 2016-07-06 20:13:23 +03:00
Nikolay Krasko
60ae115f33 Read test files with \r removed on Windows 2016-07-06 20:13:23 +03:00
Nikolay Krasko
62c6a599c1 Fix AbstractAnnotationProcessorBoxTest on Windows: load text without \r 2016-07-06 20:13:23 +03:00
Nikolay Krasko
d4e2da0b3c Minor: mark folder as resources not a source root 2016-07-06 20:13:23 +03:00
Alexey Tsvetkov
f418af9c74 Remove dependency on Files from guava 2016-07-06 16:29:57 +03:00
Alexey Tsvetkov
4d108f4aec Gradle: copy kotlin classes after java compilation
#KT-9392 fixed
    #KT-12295 fixed
    #KT-12736 fixed
2016-07-06 16:29:57 +03:00
Alexander Udalov
08827a5177 Minor, move isInfixCall implementation out of InfixCallChecker
(cherry picked from commit d331b6ae8e)
2016-07-05 19:33:40 +03:00
Alexander Udalov
6045b9d934 Minor, fix typo in KParameter#isOptional kdoc
(cherry picked from commit a48e1680e9)
2016-07-05 19:33:09 +03:00
Alexander Udalov
f29dc71a32 Fix reflection on reference to generic property
See a93484b457 for the similar fix to function
references

 #KT-12967 Fixed

(cherry picked from commit 3b349e9be0)
2016-07-05 19:32:54 +03:00
Alexander Udalov
a88e2e1db7 Fix AssertionError in OverrideResolver on bad hierarchy
Previously the code was operating under the assumption that if the
implementation of some function (both the implementation and the function come
from supertypes) does not have a proper return type (the one which is a subtype
of return type of all declarations of this function in the supertypes), then
there's necessarily at least one abstract declaration of the function, such
that the implementation's return type is not a subtype of the return type of
that declaration. The assertion makes sense when the hierarchy above the
current class does not have any errors: we should report at least one function
as being "not implemented" in the current class.

However, as demonstrated by the test case, if there's an error already in the
supertypes with regard to overridability of members, this assertion may be
wrong. Reporting the "not implemented" error in such case is in fact not
necessary because of the already existing error ("return type mismatch" in the
test) in the supertypes

 #KT-12482 Fixed

(cherry picked from commit 48fe9fb2c0)
2016-07-05 19:32:47 +03:00
Alexander Udalov
3c711dddee Fix debug names for some slices
Also move RUNTIME_ASSERTION_INFO and LOAD_FROM_JAVA_SIGNATURE_ERRORS to a
single class for simplicity

(cherry picked from commit a533f8597d)
2016-07-05 19:32:02 +03:00
Alexander Udalov
8df12e5933 Fix test data for KT-11075
References to object members are not supported in 1.0.x branch

 #KT-11075 Fixed
2016-07-05 18:06:10 +03:00
Dmitry Petrov
35591839e5 KT-12983 java.lang.VerifyError: Bad type on operand stack in arraylength
Use proper receiver value type.
2016-07-05 17:52:58 +03:00
Dmitry Petrov
41118ceb13 Minor: extract optimized loop codegen creation logic for optimized 'for' cases.
There will be some more of those, and they all require some ad hock processing.
(cherry picked from commit e187f79)
2016-07-05 17:52:57 +03:00
Dmitry Petrov
8e10b99037 KT-12733 'rangeTo' as a non-qualified call is not optimized in 'for'
Use ResolvedCall corresponding to 'for' loop range expression
for optimized "for-in-range-literal".
Cleanup.
2016-07-05 17:52:57 +03:00
Kirill Rakhman
6fd9b29157 Show quick doc for implicit lambda parameter 'it' (#889)
* Show quick doc for implicit lambda parameter 'it'
Fixes #KT-9271

* Remove useless code
(cherry picked from commit 79fff4a)
2016-07-05 14:01:45 +02:00
Dmitry Jemerov
3bdb4fd376 fix test
(cherry picked from commit a770fe2)
2016-07-05 13:44:08 +02:00
Kirill Rakhman
9fe233b312 Implement quickfix for wrong primitive literal (#885)
* Implement quickfix for wrong primitive literal
Fixes: KT-12251

* fix style issue
(cherry picked from commit b50176f)
2016-07-05 13:44:01 +02:00
Kirill Rakhman
54a039de77 Add quickfix for "Illegal usage of inline parameter" that adds noinline (#888)
Fixes #KT-12838
(cherry picked from commit 3b290ce)
2016-07-05 12:15:22 +02:00
Dmitry Petrov
aa5401ceed KT-11892: explicitly qualified 'super' with a supertype that is overridden
by a different explicitly declared supertype is an error (as in Java)
(see http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.3)
2016-07-05 11:01:42 +03:00
Dmitry Petrov
de73cdd117 Minor: use NoLookupLocation.WHEN_GET_SUPER_MEMBERS
for unqualified 'super' resolution
2016-07-05 11:01:42 +03:00
Denis Zharkov
06018b9ca8 Report declaration that was being analyzed when internal error happened
#KT-12188 Fixed
2016-07-04 18:23:58 +03:00
Denis Zharkov
a1fa8ebe81 Minor. Move KotlinFrontEndException to frontend module 2016-07-04 18:23:58 +03:00
Denis Zharkov
cf43eba70c Do not add error types as upper bounds in type parameter
#KT-10237 Fixed
 #KT-11821 Fixed
 #KT-8200 Fixed
2016-07-04 18:23:58 +03:00
Denis Zharkov
febe3d4380 Minor. Change CompilationException parameter to @Nullable
A lot of call sites actally pass null as an element,
so it's better to fail with original stack-trace instead of NPE
caused by nullability check
2016-07-04 18:23:18 +03:00
Alexander Udalov
3042f31cd0 Do not consider fake variables for objects in :: resolution
The main change is in
NewResolutionOldInference.ResolutionKind.CallableReference, where
createVariableProcessor creates a processor which no longer lists objects

 #KT-12322 Fixed

(cherry picked from commit b44f060ffa)
2016-07-04 15:52:17 +03:00
Alexander Udalov
a5d1b7f503 Initial support of type inference for callable references
There are two main changes here:

- In CallCompleter, there was a bug: we assumed that the return type of a
  candidate must be a subtype of the expected type and were adding a
  corresponding constraint to the system. However, this is not true for
  callable references where the type of the expression is KFunctionN<...> and
  the return type of the candidate must be a subtype of the _last generic
  argument_ of the functional type.
- In CandidateResolver, we use a more correct (although still not precise)
  heuristic to determine if a candidate fits based on the non-substituted type
  of the callable reference expression which it would produce.

This can be further improved, see TODOs in CallCompleter. Also this does not
influence resolution of callable references being passed as arguments to
generic calls (that happens in GenericCandidateResolver)

 #KT-10968 Fixed
 #KT-11075 Fixed
 #KT-12286 Fixed
 #KT-12963 Open
 #KT-12964 Open

(cherry picked from commit f290f1be68)
2016-07-04 15:52:03 +03:00
Alexander Udalov
c7ec2e7eb6 Fix AssertionError on property generation in multi-file classes
See 4a533168d9 for the original change which
introduced the problem

Note that the added test case _was not failing_ before the change. It's added
because there were no tests on multi-file class behavior in light classes mode
at all. The actual repro for the problem is difficult to make a test from

 #KT-12755 Fixed

(cherry picked from commit 24682bf1ec)
2016-07-04 15:51:52 +03:00
Denis Zharkov
648cc1cf9e Refine definition of whether single parameter the method should be boxed
Only 'Collection<Int>.remove(E): Boolean' should match
2016-07-04 15:48:22 +03:00
Denis Zharkov
8c7319aaea Introduce additional overridability rule
It works only for Java methods and it's purpose is Java overridability rules emulation,
namely distinction of primitive types and their wrappers.

For example `void foo(Integer x)` should not be an override for `void foo(int x)`

 #KT-11440 Fixed
 #KT-11389 Fixed
2016-07-04 15:48:22 +03:00
Denis Zharkov
b78a16d9e9 Minor. Extract overridability rule into separate method 2016-07-04 15:48:22 +03:00
Denis Zharkov
5660709c2d Temporary return BuiltinOverridabilityCondition class
Otherwise bootstrap problems appear
2016-07-04 15:48:22 +03:00
Denis Zharkov
c2ad32135e Rename: BuiltinOverridabilityCondition -> JavaIncompatibilityRulesOverridabilityConditionBuiltinOverridabilityCondition 2016-07-04 15:48:22 +03:00
Denis Zharkov
d4d97eb950 Use signatures instead of fq-names in special built-ins
Partially apply 55c4f875c8 in 1.0.x
2016-07-04 15:48:22 +03:00
Denis Zharkov
84596d92e4 Partially apply 1efed64014
JvmTypeFactory implementation will be used further in 1.0.x version
2016-07-04 15:48:22 +03:00
Denis Zharkov
a460c3b107 Extract JVM descriptors type mapping from backend to core
Also unbind it from ASM types
2016-07-04 15:48:22 +03:00
Alexey Andreev
310e17f938 Fix configuration of maven test of moduleKind configuration property 2016-07-04 15:02:17 +03:00
Alexey Andreev
df38d90d65 KT-12928: decompose invocation like "a.foo(b)" to "$t = a; $s = $t.foo.bind($t); $s(b)" instead of "$t = a.foo; $t(b)", since in the latter case foo won't receive proper this. Add optimization that replaces "foo.bar.bind(baz)(args)" with "baz.bar(args)" 2016-07-04 14:53:11 +03:00
Zalim Bashorov
43c476f26f JS: generate a function with the required name for callable references instead try to change the name later. The previous solution doesn't work properly on some JS VMs (e.g. in FireFox)
#KT-12929 Fixed
(cherry picked from commit 48617ca)
2016-07-01 21:16:43 +03:00
Nikolay Krasko
ea01e3c142 Build against 1.0.4 in branch 1.0.4 2016-07-01 18:31:10 +03:00
Ilya Gorbunov
8b0350a021 Minor: make tryInlined test not depend on 'Closeable.use' implementation.
(cherry picked from commit 17e7c269ad)
2016-07-01 04:52:00 +03:00
Alexander Udalov
216ac9cbc4 Minor, remove unused components in ForLoopConventionsChecker
This is an addition to 8357f30

(cherry picked from commit 95ed3ed78b)
2016-06-30 21:29:57 +03:00
Alexey Sedunov
5397e11940 Minor: Fix compilation 2016-06-30 20:37:32 +03:00
Alexey Sedunov
bc4c013e03 Create from Usage: Support "Create member/extension" corresponding to the extension receiver of enclosing function
#KT-10668 Fixed
2016-06-30 20:37:31 +03:00
Alexey Sedunov
75f6b7fcd8 Create from Usage: Support "Create abstract function/property" inside an abstract class
#KT-7492 Fixed
2016-06-30 20:37:30 +03:00
Alexey Sedunov
3641ad6cf7 Code Insight: Format generated declarations
#KT-11176 Fixed
2016-06-30 20:37:28 +03:00
Alexey Sedunov
a3a2e573de Override/Implement Members: Implement Members: Fix base member detection when abstract and non-abstract members with matching signatures are inherited from an interface
#KT-11115 Fixed
2016-06-30 20:37:27 +03:00
Alexey Sedunov
b53d8da648 Inline Property: Support "Do not show this dialog" and "Inline this occurrence" options
#KT-12017 Fixed
2016-06-30 20:37:26 +03:00
Alexey Sedunov
2852f44951 Introduce Property: Do not skip outer classes if extractable expression is contained in object literal. Skip outer classes of non-inner class
#KT-12084 Fixed
2016-06-30 20:37:25 +03:00
Alexey Sedunov
78212a4ade Introduce Property: Fix extraction of expressions referring to primary constructor parameters
#KT-12294 Fixed
2016-06-30 20:37:24 +03:00
Alexey Sedunov
f417b05769 Change Signature: Consider default value context an initial type context. Use parameter list as a type context for bodyless function
#KT-12413 Fixed
2016-06-30 20:37:23 +03:00
Denis Zharkov
1266950809 Minor. Cleanup getSpecialBridgeSignatureIfExists 2016-06-30 20:21:22 +03:00
Denis Zharkov
3529499282 Simplify method contract and add assertion
We don't generate stubs for final built-ins anyway
(as well as special bridges)
2016-06-30 20:21:22 +03:00
Denis Zharkov
64114b0762 Refine stubs generation for special built-ins
Do not generate stub if declaration has the same signature

 #KT-12909 Fixed
2016-06-30 20:21:22 +03:00
Denis Zharkov
80e923fe46 Fix stub generation for special built-ins
Do not generate stubs if there is no special bridge in the current class
- there are already Kotlin super class in hierarchy
- special bridge has the same signature as method itself

 #KT-11915 Fixed
2016-06-30 20:21:22 +03:00
Alexey Tsvetkov
7e4b93f06e Fix shading of META-INF/services in kotlin-compiler-embaddable 2016-06-30 20:17:13 +03:00
Alexander Udalov
3999709bda Fix KCallable#callBy to JvmStatic companion object members
#KT-12915 Fixed

(cherry picked from commit c07d0d48d3)
2016-06-30 20:08:31 +03:00
Michael Bogdanov
37acb3cd30 Compile android tests against jdk 6
(cherry picked from commit 476c1ec)
2016-06-30 09:33:23 +03:00
Alexander Udalov
1b6a6c510a Do not report errors on fake elements in call checkers
#KT-12875 Fixed

(cherry picked from commit 8357f3021e)
2016-06-30 02:19:09 +03:00
Alexander Udalov
181ac887e3 Minor, move some checkers to more appropriate places
(cherry picked from commit 95291cdc18)
2016-06-30 02:18:27 +03:00
Alexander Udalov
c2e7847134 Report error on protected setter call from super's companion
#KT-12847 Fixed

(cherry picked from commit ff72348105)
2016-06-30 02:17:01 +03:00
Alexander Udalov
133fa036c6 Rename SymbolUsageValidator -> ClassifierUsageChecker
Also validateTypeUsage -> check

(cherry picked from commit 77bb691d4e)
2016-06-30 02:16:01 +03:00
Alexander Udalov
04301828c8 Move SymbolUsageValidator#validatePropertyCall to CallChecker
(cherry picked from commit 89730dfbc3)
2016-06-30 02:15:47 +03:00
Alexander Udalov
dfca1c2b61 Drop SymbolUsageValidator#validateCall in favor of CallChecker#check
(cherry picked from commit d599d87978)
2016-06-30 02:14:20 +03:00
Alexander Udalov
b62aaebe5c Invoke call checkers where symbol usage validators are called
The change in componentAccess.kt is a minor regression that should be addressed
later

(cherry picked from commit 260689eb8c)
2016-06-30 02:13:13 +03:00
Alexander Udalov
d0a389997f Support smart casts for functions of property delegates
(cherry picked from commit 4a05c749b5)
2016-06-30 02:12:03 +03:00
Alexander Udalov
6c685ec295 Drop resolution of deprecated plus/minus/get/set conventions
Also remove the corresponding quick fix

(cherry picked from commit 70a994b135)
2016-06-30 02:08:37 +03:00
Alexander Udalov
60f348824d Remove obsolete errors related to 'invoke' called on extension
(cherry picked from commit 291f1f6c3a)
2016-06-30 02:05:07 +03:00
Alexander Udalov
f0bc904526 Refactor CallChecker and subclasses
Encapsulate everything that is needed in checkers into CallCheckerContext. Pass
an instance of this context instead of BasicCallResolutionContext to checkers.

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

 #KT-12875 Open

(cherry picked from commit 6ba32ed624)
2016-06-30 02:02:36 +03:00
Alexander Udalov
a8666865cb Minor, extract validatePropertyCall out of SymbolUsageValidator#validateCall
BasicExpressionTypingVisitor#checkLValue is the only place where it's used.
There's no ResolvedCall instance for the setter call (only for the property
itself), that's why this special method is needed

(cherry picked from commit f6f825e0dc)
2016-06-30 01:49:40 +03:00
Alexander Udalov
2aa68a0f3f Drop SymbolUsageValidator.Composite, use validators similarly to call checkers
Also fix warnings in DeprecatedSymbolValidator, DelegatedPropertyResolver and
elsewhere

(cherry picked from commit d7d2780666)
2016-06-30 01:49:31 +03:00
Alexander Udalov
5725c196ff Make infix & operator checkers implement CallChecker
Instead of SymbolUsageValidator

(cherry picked from commit e94fd8f777)
2016-06-30 01:47:37 +03:00
Nikolay Krasko
8834f0ad44 Don't fail in setup because of access restricted exception 2016-06-29 18:30:32 +03:00
Kirill Rakhman
639d6a71b1 Formatter: Remove spaces before question mark in nullable types (KT-12830)
#KT-12830 Fixed
2016-06-29 18:30:11 +03:00
Yan Zhulanow
33af8ba5a5 KT-12895, EA-84877: Fix NoSuchMethodError thrown when saving a Kotlin file.
newOutputStreamSupplier() is deprecated and was deleted in Guava 18.
(cherry picked from commit bb083a5)
2016-06-29 17:53:31 +03:00
Alexey Tsvetkov
9de22c3549 Prevent usage of deprecated constructor
This removes warning with gradle 2.14.
Before 2.14 constructor was removed, then it was returned and deprecated.

    #KT-12786 fixed
2016-06-29 15:17:19 +03:00
Alexey Tsvetkov
c03e50c5a1 Fix CCE when creating kotlin-js task in gradle plugin 2016-06-29 15:17:15 +03:00
Alexey Andreev
44cabf8376 KT-12893: fix another potential issue (could not reproduce) 2016-06-29 14:28:08 +03:00
Alexey Andreev
d101281b36 KT-12893: when opening Kotlin compiler settings while kotlinc.xml does not specify which module kind to use, fallback to default value ("plain").
Fix #KT-12893
2016-06-29 12:03:42 +03:00
Michael Bogdanov
fd96c02be0 Fix for KT-11964: No TABLESWITCH in when on enum bytecode if enum constant is imported
#KT-11964 Fixed
(cherry picked from commit 3b419e8)
2016-06-29 09:35:11 +03:00
Alexander Udalov
e93c85aa54 Simplify ImplementationBodyCodegen#generateToArray
- don't do anything for interfaces because there's no point in generating
  abstract methods which are already abstract in supertypes
- don't use getDeclaredFunctionByRawSignature, check function signature
  manually instead
- don't use isOrOverridesSynthesized because 'toArray' is never synthesized
2016-06-28 16:40:58 +03:00
Pavel V. Talanov
c2129365cb ChangeLog, minor: make usages of quotes and backticks more consistent 2016-06-28 16:05:59 +03:00
Pavel V. Talanov
729690e055 Minor: fix typos in ChangeLog 2016-06-28 16:05:57 +03:00
Pavel V. Talanov
6beb99db9e Update Changelog for 1.0.3 2016-06-28 16:05:55 +03:00
Alexey Sedunov
8e631b6810 Rename: Update references to facade class when renaming file via matching top-level class
#KT-11903 Fixed
(cherry picked from commit a1d9a25)
2016-06-28 15:28:49 +03:00
Alexey Sedunov
4475fc022a Line Markers: Filter out irrelevant declarations before resolving in KotlinTestRunLineMarkerContributor
#KT-12647 Fixed
(cherry picked from commit cceeaeb)
2016-06-28 15:28:34 +03:00
Alexey Sedunov
af63b58b6f Rename: Constraint search scope of parameter declared in a private member
#KT-9649 Fixed
(cherry picked from commit fa144b0)
2016-06-28 15:28:10 +03:00
Alexey Sedunov
d763308431 Rename: Disable JavaMemberByKotlinReferenceInplaceRenameHandler for synthetic properties referenced from Kotlin code
#KT-9168 Fixed
(cherry picked from commit dfebdaf)
2016-06-28 15:27:55 +03:00
Alexey Sedunov
73fbc093b7 Rename: Support automatic test renaming for facade files
#KT-10578 Fixed
(cherry picked from commit 35050f4)
2016-06-28 15:27:39 +03:00
Alexey Sedunov
8628f9ee37 Override/Implement: Prefer not-nullable return type when overriding Java method without nullability annotation
#KT-12381 Fixed
(cherry picked from commit 2b87f8e)
2016-06-28 15:27:26 +03:00
Alexey Sedunov
bda39e3f77 Move: Support quoted package names
#KT-12411 Fixed
(cherry picked from commit 95239e5)
2016-06-28 15:27:16 +03:00
Alexey Sedunov
c0959496dd References: Support implicit references to annotation method 'value'. Support Find Usages/Rename on these references
#KT-12657 Fixed
(cherry picked from commit 68d0d84)
2016-06-28 15:27:02 +03:00
Alexey Sedunov
0133aef038 Rename: Suggest renaming both property accessors with matching @JvmName when renaming one of them from Java
#KT-12759 Fixed
(cherry picked from commit 81a8e6a)
2016-06-28 15:26:47 +03:00
Alexey Sedunov
dd476563a3 Light Classes: Implement light elements for 'extends'/'implements' reference lists. Support adding/removing of super type list entries via light elements.
Fix exception on applying "Convert to class" intention to Java interface with Kotlin inheritor(s)
 #KT-11281 Fixed
(cherry picked from commit 4ec4914)
2016-06-28 15:26:35 +03:00
Alexey Sedunov
cad99e5ba0 Implement Abstract Member: Navigate to the generated declaration
#KT-12290 Fixed
(cherry picked from commit 6274c6b)
2016-06-28 15:26:20 +03:00
Alexey Sedunov
a44d149b4f Create from Usage: Fix exception in "Create class" quickfix applied to unresolved references in type arguments. Create class body when necessary
#KT-12777 Fixed
(cherry picked from commit dc90ec9)
2016-06-28 15:26:08 +03:00
Alexey Sedunov
ebb1c758d9 Override/Implement: Implement JavaDoc/KDoc copying
#KT-8682 Fixed
 #KT-12735 Fixed
(cherry picked from commit f4486be)
2016-06-28 15:25:55 +03:00
Alexey Sedunov
3256366ffe Minor: Rename jetRefactoringUtil.kt -> kotlinRefactoringUtil.kt
(cherry picked from commit a841f87)
2016-06-28 15:25:38 +03:00
Alexey Sedunov
0a98a2a9cb Minor: Drop unused variable
(cherry picked from commit 4441323)
2016-06-28 15:25:21 +03:00
Alexey Sedunov
ca14643834 Copy: Filter out invalid elements to prevent PsiInvalidElementAccessException
#KT-12747 Fixed
(cherry picked from commit 4a0a440)
2016-06-28 15:25:11 +03:00
Alexey Sedunov
feb84aa443 Create from Usage: Suggest "Create function/secondary constructor" quick fix on argument type mismatch
#KT-11864 Fixed
(cherry picked from commit 1912783)
2016-06-28 15:24:52 +03:00
Alexey Sedunov
19edf0f939 Rename: Qualify references to members of enum companions in case of conflict with enum entries
#KT-10033 Fixed
(cherry picked from commit 3373d54)
2016-06-28 15:24:39 +03:00
Alexey Sedunov
bff7c57c2b Inspections: Don't show "Package directive doesn't match file location" in injected code
#KT-12376 Fixed
(cherry picked from commit a5a5fe5)
2016-06-28 15:24:25 +03:00
Alexey Sedunov
264dacb5ba Rename: Preserve "Search in comments and strings" and "Search for text occurrences" settings in Rename dialog
#KT-8510 Fixed
(cherry picked from commit d9584d2)
2016-06-28 15:24:00 +03:00
Alexey Sedunov
8372b76d4e Minor: Fix changelog
(cherry picked from commit 2ea3980)
2016-06-28 15:23:28 +03:00
Alexey Sedunov
bdc299cc8a Rename: Record new name for Kotlin function which is being renamed via light method
#KT-12732 Fixed
(cherry picked from commit 28b9d3e)
2016-06-28 15:23:00 +03:00
Alexey Sedunov
60c3abcc3e Rename: Process property accesor usages (Java) in comments and string literals
#KT-9435 Fixed
(cherry picked from commit 911afee)
2016-06-28 15:22:28 +03:00
Alexey Sedunov
709082f0af Rename: Add name suggestions to Rename dialog
#KT-6372 Fixed
(cherry picked from commit 84ca283)
2016-06-28 15:21:52 +03:00
Alexey Sedunov
07af0b1c8b Rename: Rename overridden property and all its accessors on attempt to rename overriding accessor in Java code
#KT-4791 Fixed
(cherry picked from commit 29e450e)
2016-06-28 15:21:38 +03:00
Alexey Sedunov
ccb096ed99 Rename: Fix rename of ambiguous import reference to class/function when some referenced declarations are not changed
#KT-6663 Fixed
(cherry picked from commit 9ba8ecd)
2016-06-28 15:21:01 +03:00
Alexey Sedunov
528f144858 Rename: Implement conflict analysis for parameters. Qualify property references to avoid shadowing by parameters
#KT-10687 Fixed
(cherry picked from commit 7d6466d)
2016-06-28 15:20:46 +03:00
Alexey Sedunov
d38a0b6e43 Rename: Implement Rename conflict analysis for classes. Qualify class references to resove rename conflicts when possible
#KT-8611 Fixed
 #KT-8562 Fixed
(cherry picked from commit 8989ccc)
2016-06-28 15:20:33 +03:00
Alexey Sedunov
6da82ee964 Rename: Implement Rename conflict analysis for properties. Qualify property references to resove rename conflicts when possible
#KT-8732 Fixed
 #KT-12543 Fixed
(cherry picked from commit e23029d)
2016-06-28 15:20:23 +03:00
Stanislav Erokhin
a8fd840fa3 Add eap channel for 1.1 into plugin updater.
(cherry picked from commit 43f5da0)
2016-06-28 14:48:52 +03:00
Denis Zharkov
6db295524a Use modality and visibility from mutable class declaration
Otherwise open may be used instead of abstract (in most cases)
2016-06-28 14:22:59 +03:00
Denis Zharkov
c36b63dea9 Do not generate mutable collection stub methods in interfaces
#KT-12359 Fixed
2016-06-28 14:22:59 +03:00
Denis Zharkov
3807c507b7 Fix mutable collection stub methods generation for corner case
The problem is that
`override fun remove(element: E): CollectionWithRemove<E>`
seems to be illegal from Java's point of view, while it's OK for JVM

These declarations have the same signature (return type is isgnored)
- override fun remove(element: E): CollectionWithRemove<E>
- override fun remove(element: E): Boolean

When we meet such declaration we choose random declaration for fake override in synthetic class
that may lead to signature clash
2016-06-28 14:22:59 +03:00
Nikolay Krasko
4d12a242ab Use file.modificationStamp to invalidate caches for synthetic files
It previously worked because of updating all counters. That behaviour was removed in
3b860d69ee.

getUserData(FILE_OUT_OF_BLOCK_MODIFICATION_COUNT) is probably useless because copied file has
isEventSystemEnabled() == false that prevents sending notifications about PSI changes. This need additional checks.
2016-06-28 14:12:10 +03:00
Nikolay Krasko
53c2dfa49b Remove old hack: Idea doesn't expect increasing modification count during highlighting (KT-12526)
addImport() is called from ImportAllMembersIntention.isApplicableTo() and increasing modification count during highlighting ruins Idea expectations.

 #KT-12526 Fixed
2016-06-27 21:18:31 +03:00
Alexander Udalov
d8209d796d Minor, rename protobuf field according to style guide
(cherry picked from commit 601dc96a34)
2016-06-27 20:26:37 +03:00
Alexander Udalov
fa66bce9a5 Update protobuf from 2.5.0 to 2.6.1
(cherry picked from commit 4c8e8b099a)
2016-06-27 20:26:29 +03:00
Ilya Gorbunov
7f8938e074 Change snapshot versions of dependencies in gradle tests for 1.0.x branch 2016-06-27 17:35:22 +03:00
Ilya Gorbunov
93b2e1ed8b Update changelog for 1.0.3: section about new compiler options
(cherry picked from commit 1e66147e91)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
7514bbb3c9 Minor: remove unused commonArgs
(cherry picked from commit 71476d5d43)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
3fa335d6d0 Rename -jdk compiler option to -jdk-home (jdkHome), add jdk path validation.
(cherry picked from commit 7c5c4610e8)

# Conflicts:
#	compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
ad540b6f90 Add tests for 'jdk' compiler option for CLI, maven and gradle.
(cherry picked from commit 13016cae93)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
9197aec478 CLI: Allow to specify JDK for classpath building with '-jdk' compiler argument.
Maven: support jdk parameter linked to kotlin.compiler.jdk property.
Gradle: support jdk compiler option.

(cherry picked from commit 644df89dc9)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
c2704bdba7 Maven: support languageVersion parameter, linked to property kotlin.compiler.languageVersion.
(cherry picked from commit 1157e052ee)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
9fd23fa175 Maven and Gradle tests for jvmTarget parameter.
(cherry picked from commit 848599e940)
2016-06-27 17:35:22 +03:00
Ilya Gorbunov
4771a6cdec Maven: support jvmTarget parameter in Maven, linked to property kotlin.compiler.jvmTarget.
Gradle: support jvmTarget compiler option.

(cherry picked from commit 3f3a3820b8)
2016-06-27 17:35:22 +03:00
Alexey Andreev
b9328df0d5 KT-3008: fix ABI compatibility test 2016-06-27 16:04:26 +03:00
Alexey Andreev
c137cf681a KT-3008: minor code style fixes 2016-06-27 16:04:24 +03:00
Alexey Andreev
d48d1afd5e KT-3008: fix support of KProperty/KMutableProperty 2016-06-27 15:57:13 +03:00
Alexey Andreev
ff89622e61 KT-3008: remove unused code that handles anonymous modules, since there's no way to declare them via configuration 2016-06-27 15:57:13 +03:00
Alexey Andreev
b1198265d7 KT-3008: when inlining functions from external modules, replace calls to functions in the external module via new mechanism instead of Kotlin.modules 2016-06-27 15:57:12 +03:00
Alexey Andreev
ff44894d61 KT-3008: change the way how descriptions of module kind are rendered in IDEA configuration tab 2016-06-27 15:57:12 +03:00
Alexey Andreev
46efbac984 KT-3008: multiple minor fixes after code review 2016-06-27 15:57:11 +03:00
Alexey Andreev
6f172094ac KT-3008 Add support of module kind to Ant task. Repair Ant JS tests 2016-06-27 15:57:11 +03:00
Alexey Andreev
9ea0abc121 KT-3008 Fix CLI and JPS tests related to JS translator 2016-06-27 15:57:10 +03:00
Alexey Andreev
4671252943 KT-3008 Run Google closure compiler in a separate JVM 2016-06-27 15:57:10 +03:00
Alexey Andreev
d107ccaa97 KT-3008 Minor refactoring and clean up 2016-06-27 15:57:07 +03:00
Alexey Andreev
c5bab0d8c4 KT-3008 Add UI that allows to change module kind in IDEA Kotlin configurator 2016-06-27 15:55:53 +03:00
Alexey Andreev
2dadf0b1a4 KT-3008 Add module kind attribute to Maven plugin. Fix tests from libraries subproject 2016-06-27 15:54:15 +03:00
Alexey Andreev
176768dd3a KT-3008 Fix UMD and plain module wrappers when module id is not a valid JS identifier 2016-06-27 15:54:14 +03:00
Alexey Andreev
3cc15546f9 KT-3008 Add tests for module wrappers 2016-06-27 15:54:12 +03:00
Alexey Andreev
4fa27a7262 KT-3008 Merge JS runtime modules in one kotlin.js 2016-06-27 15:52:09 +03:00
Alexey Andreev
4bb21c71ed KT-3008 Fix JS backend tests 2016-06-27 15:52:04 +03:00
Alexey Andreev
cbd9165008 KT-3008 Implement AMD, CommonJS and UMD wrappers. Compile stdlib and builtins modules into separate JS files and wrap them in UMD. 2016-06-27 15:51:21 +03:00
Alexey Andreev
734552ad91 KT-3008 Change the way how modules are referenced in JS 2016-06-27 15:51:19 +03:00
Alexey Andreev
ed848e74f2 KT-3008 Add module kind. Include module kind and module dependencies in metadata 2016-06-27 15:38:24 +03:00
Michael Bogdanov
d8fd2c3cd1 Fix for KT-12106: import static of reified companion object method throws IllegalAccessError 2016-06-27 12:15:37 +03:00
Zalim Bashorov
608acdb373 JS: fix that kotlin's breakpoints don't work with JavaScript debugger
#KT-12773 Fixed
(cherry picked from commit 47e1ff3)
2016-06-24 16:26:58 +03:00
Denis Zharkov
3184238b9f Use 'Any?' instead of throwing NPE when calculating star projection type
It's a quite hacky solution, but the choice seems to be conservative, so these types can be refined later

 #KT-9597 Fixed
2016-06-24 10:24:46 +03:00
Yan Zhulanow
e73789dc3e Fix KT-12173 (Kotlin Lint False Positive for "Toast created but not shown" inside SAM adapter).
(cherry picked from commit 4940d3b)
2016-06-23 20:27:46 +03:00
Yan Zhulanow
48bb3ad965 KT-12681 (Lint: run from main menu / Analyze: Kotlin inspections reports only java source)
Cause we've copied Lint diagnostics to the Kotlin project, there's no harm in making them Kotlin-only.
(cherry picked from commit 7105648)
2016-06-23 20:27:43 +03:00
Yan Zhulanow
0255b2d9da KT-12674 "Calling new methods on older versions" errors for inlined constants
Inlined constants from Java should not be detected.
(cherry picked from commit b34ee4e)
2016-06-23 20:27:40 +03:00
Yan Zhulanow
868b04f36b KT-12023 Kotlin Lint: Cast doesn't trigger minSdk error
Check Kotlin as/is types.
(cherry picked from commit c0db8e0)
2016-06-23 20:27:37 +03:00
Yan Zhulanow
1142d2888f Make infix modifier diagnostic message more informative (KT-12589)
(cherry picked from commit 2744309)
2016-06-23 20:27:34 +03:00
Yan Zhulanow
a39ef7f6ca Load Gradle subplugin artifacts from the root project buildscript classpath as well (KT-11885)
(cherry picked from commit b54b0da)
2016-06-23 20:27:31 +03:00
Yan Zhulanow
5322539179 KT-12015 (Kotlin Lint False Positive for Bundle.getInt())
Java approach is not sufficient here, in Kotlin receivers can be implicit.
Use Kotlin extension/dispatch receivers to figure out the receiver type for our method call.
(cherry picked from commit cdedf1d)
2016-06-23 20:27:28 +03:00
Yan Zhulanow
9f2d789c36 Android Extensions: Fix KT-10969 (NullPointerException when finding view in Fragment if getView() is null)
(cherry picked from commit 80f5852)
2016-06-23 20:27:25 +03:00
Alexander Udalov
cfa0a79405 Add release notes for 1.0.2-1
(cherry picked from commit 1ebcd193a2)
2016-06-23 17:39:56 +03:00
Pavel V. Talanov
16558a4d32 REPL: call 'toString()' for returned values explicitly and correctly report exceptions
#KT-12389 Fixed
2016-06-23 15:55:12 +03:00
Pavel V. Talanov
c0bb933988 Refactor Repl: use sealed class to represent line result 2016-06-23 15:55:10 +03:00
Pavel V. Talanov
893fe7af11 Refactor ReplInterpreter and ReplFromTerminal classes
Drop some of the exception reporting code
2016-06-23 15:55:08 +03:00
Pavel V. Talanov
ae8d9612ae J2K ReplFromTerminal: rename file 2016-06-23 15:55:07 +03:00
Pavel V. Talanov
d8f092b06f J2K ReplFromTerminal, convert code 2016-06-23 15:55:05 +03:00
Stanislav Erokhin
24237097e2 KT-12623 Fixed ISE: Type parameter ... not found for public fun ...
#KT-12623 Fixed
Also EA-72653 fixed.
(cherry picked from commit 7c2825b)
2016-06-23 02:08:20 +03:00
Alexander Udalov
7c3a69f8e0 Minor, move utilities form CallableReferencesResolutionUtils.kt closer to usages
(cherry picked from commit 6cc10aa226)
2016-06-22 22:09:10 +03:00
Alexander Udalov
230b46cbcd Refactor CallableReferencesResolutionUtils.kt
Get rid of trace & reportOn parameters of
createReflectionTypeForCallableDescriptor: move the two checks that required
them to DoubleColonExpressionResolver and combine with other checks into a
single function that checks the validity of the referenced symbol. This also
makes these checks reported only once when invalid expressions are passed as
function arguments (previously they were also reported from
getResolvedCallableReferenceShapeType).

Also inline getReflectionTypeForCandidateDescriptor after this, and refactor
its usages

(cherry picked from commit 80bf6e1bee)
2016-06-22 21:58:03 +03:00
Alexander Udalov
d8b3c359bf Minor, refactor "is KProperty" checks in ReflectionTypes
(cherry picked from commit cf630e01db)
2016-06-22 21:42:32 +03:00
Stanislav Erokhin
d4132e767f Add debug info for EA-79267 - (T is not T) assert: TypeCheckingProcedure.checkSubtypeForTheSameConstructor
(cherry picked from commit 065c4e1)
2016-06-22 19:45:32 +03:00
Stanislav Erokhin
d4fa597245 KT-11679 Fixed exception at ResolvedCallImpl.getArgumentMapping()
#KT-11679 Fixed
Also fixed EA-75913 EA-78908
(cherry picked from commit ad285d5)
2016-06-22 19:45:29 +03:00
Stanislav Erokhin
d3a44cd4d1 Fixed visibility check on a property with private setter of the subclass
#KT-3689 Fixed
(cherry picked from commit 7389d41)
2016-06-22 19:45:25 +03:00
Pavel V. Talanov
4819247450 Update Changelog for 1.0.3-eap-58 2016-06-22 14:14:44 +03:00
Pavel V. Talanov
f18b0aab93 Add Kotlin "Tips of the day"
Content from https://youtrack.jetbrains.com/issue/DOC-4026
2016-06-22 14:13:35 +03:00
Pavel V. Talanov
9589e2c491 Update changelog for 1.0.3 2016-06-22 14:13:17 +03:00
Nikolay Krasko
e79cfa6f08 Add notes about fixes in formatter 2016-06-21 23:34:03 +03:00
Nikolay Krasko
b860846c0c Add space after a semicolon only if there's another child at the same line 2016-06-21 23:23:59 +03:00
Kirill Rakhman
2c2c9bdefc Format spaces before enum arguments
Fixes #KT-12714
2016-06-21 23:23:58 +03:00
Kirill Rakhman
ea0313106a Format spaces around semicolon
Fixes #KT-12689
2016-06-21 23:23:58 +03:00
Kirill Rakhman
0c0c113460 Format spaces after annotation in annotated expression
Fixes #KT-12781
2016-06-21 23:23:57 +03:00
Kirill Rakhman
28a414514c Format spaces inside curly braces in string template
Fixes #KT-12791
2016-06-21 23:23:56 +03:00
Kirill Rakhman
a02699f2b9 Format spaces around in keyword
Fixes: KT-10680
2016-06-21 23:23:56 +03:00
Mikhail Glukhikh
2f42f12197 Replace explicit parameter with it : correct handling of it from outer lambda #KT-12437 Fixed
(cherry picked from commit cb8fe96)
2016-06-21 22:29:50 +03:00
Mikhail Glukhikh
422795694e Fix for EA-81477 : correct handling of a property without initializer (but with e.g. getter)
(cherry picked from commit 4e2d35a)
2016-06-21 22:29:41 +03:00
Mikhail Glukhikh
d109c728a2 Can be parameter inspection: delete only particular modifiers (e.g. no vararg) #KT-12768 Fixed
(cherry picked from commit d4116b5)
2016-06-21 22:29:26 +03:00
Mikhail Glukhikh
a9d95014ae Can be constructor property: comment saver introduced to retain comments; unbound comments now added before, not after
(cherry picked from commit 886cf21)
2016-06-21 22:29:15 +03:00
Mikhail Glukhikh
57dcb8e1de Minor fixes: can be constructor property
(cherry picked from commit 4d44e15)
2016-06-21 22:29:05 +03:00
Mikhail Glukhikh
ff63ddeffd Code cleanup: "can be constructor property" applied
(cherry picked from commit 6967711)
2016-06-21 22:28:56 +03:00
Valentin Kipyatkov
af9f195af0 KT-12369 Completion: pressing dot after class name should not cause insertion of constructor call
#KT-12369 Fixed
(cherry picked from commit 0bc5007)
2016-06-21 17:14:51 +03:00
Valentin Kipyatkov
a3a36085b4 Fixed test so that it really tests what's intended
(cherry picked from commit b9719bf)
2016-06-21 17:14:43 +03:00
Valentin Kipyatkov
2a5e79117c KT-12669 Completion should show variant with () when there is default lambda
#KT-12669
(cherry picked from commit eb1dbfc)
2016-06-21 17:14:38 +03:00
Valentin Kipyatkov
0a09e49b84 KT-12447 Don't use CompletionProgressIndicator in Kotlin plugin
#KT-12447 Fixed
(cherry picked from commit 962a8f9)
2016-06-21 17:14:31 +03:00
Valentin Kipyatkov
4fba98b9a6 KT-12427 Completion doesn't work for "@receiver:" annotation target
#KT-12427 Fixed
(cherry picked from commit 4e16d67)
2016-06-21 17:14:25 +03:00
Valentin Kipyatkov
4bf5b65350 KT-12328 Qualified function name inserted when typing before "if"
#KT-12328 Fixed
(cherry picked from commit 1413a3f)
2016-06-21 17:14:20 +03:00
Valentin Kipyatkov
ab8ed97571 Fixed extension properties not completed after "get"
(cherry picked from commit 2ec81f4)
2016-06-21 17:14:14 +03:00
Valentin Kipyatkov
9b265625b5 No need to specially handle extensions from current file anymore (since searchScope for KotlinIndicesHelper includes current file)
(cherry picked from commit 88bf7f8)
2016-06-21 17:14:07 +03:00
Valentin Kipyatkov
0ddfd34c06 KT-11975 Invert if-condition intention does not simplify "is" expresssion
#KT-11975 Fixed
(cherry picked from commit 1b16ff6)
2016-06-21 17:14:01 +03:00
Valentin Kipyatkov
8303e4e852 KT-9166 Code completion does not work for synthetic extensions on typing "g"
#KT-9166 Fixed
(cherry picked from commit e8d518a)
2016-06-21 17:13:55 +03:00
Valentin Kipyatkov
612fc08825 KT-12299 Completion: incorrect priority of property foo over method getFoo in Kotlin-only code
#KT-12299 Fixed
(cherry picked from commit e04c6d1)
2016-06-21 17:13:49 +03:00
Valentin Kipyatkov
630a635beb KT-12124 No code completion for a java property in a specific position
#KT-12124 Fixed
(cherry picked from commit 97ad0d5)
2016-06-21 17:13:42 +03:00
Valentin Kipyatkov
c3b4a73afd Moved method getSmartCastVariantsWithLessSpecificExcluded() into IDE
(cherry picked from commit f6c8ac7)
2016-06-21 17:13:36 +03:00
Valentin Kipyatkov
b6c8f47e67 Minor code improvements after conversion
(cherry picked from commit b6c54ac)
2016-06-21 17:13:30 +03:00
Valentin Kipyatkov
5beb05a805 Conversion to Kotlin (step 2)
(cherry picked from commit 83714ae)
2016-06-21 17:13:23 +03:00
Valentin Kipyatkov
530dde8f8f Conversion to Kotlin (step 1)
(cherry picked from commit ccd7ae9)
2016-06-21 17:13:17 +03:00
Valentin Kipyatkov
9a6916931d Added test for KT-12124
(cherry picked from commit fe29530)
2016-06-21 17:13:11 +03:00
Valentin Kipyatkov
30c1b1307f KT-12284 "Add braces to else" has too wide range
#KT-12284 Fixed
(cherry picked from commit 9afb0d5)
2016-06-21 17:13:05 +03:00
Valentin Kipyatkov
8efe1689f9 Refactored replace with safe/dot call fixes
(cherry picked from commit 618b1b9)
2016-06-21 17:12:59 +03:00
Alexey Andreev
ee0f264f21 KT-12417: add support of RTTI against K(Mutable)Property* types 2016-06-21 16:02:31 +03:00
Pavel V. Talanov
fdbca65489 Minor, changelog: add 1.0.4 section 2016-06-21 14:01:33 +03:00
Sergey Mashkov
df32ad8f28 KT-12512 "Different IDE and Maven plugin version" inspection is being invoked for non-tracked pom.xml files 2016-06-21 13:57:15 +03:00
Sergey Mashkov
73b3869756 Fix EA-83601 - ISE: PomFile.<init> 2016-06-21 13:57:10 +03:00
Sergey Mashkov
1f3a7a0c39 KT-12558 Configure Kotlin in Project: Maven: Undo could revert changes in all poms 2016-06-21 13:57:06 +03:00
Sergey Mashkov
7d17bd8d43 Maven: script tag injects kotlin 2016-06-21 13:57:01 +03:00
Sergey Mashkov
ba563ec448 KT-12568 Maven pom.xml: execution configuration: file path completion works only in some sub-elements 2016-06-21 13:56:57 +03:00
Dmitry Jemerov
99b24227ce Merge branch 'rr/yole/ea' into 1.0.3 2016-06-21 12:03:31 +02:00
Denis Zharkov
ffa04e11a8 Fix visibility check for dynamic members within protected method
#KT-11857 Fixed
2016-06-21 11:04:23 +03:00
Mikhail Glukhikh
31e8fe51a6 dangerousFlexibleTypeOrNull : minor refactoring 2016-06-20 21:44:16 +03:00
Mikhail Glukhikh
7cc6b9b910 Has platform type inspection is now intention-based 2016-06-20 21:44:12 +03:00
Mikhail Glukhikh
ed23aa9bc0 Introduce additional fixes & configurable problem range for intention-based inspection 2016-06-20 21:44:07 +03:00
Mikhail Glukhikh
b09b5a9a28 Specify type explicitly intention: now derived from self targeting range intention 2016-06-20 21:44:02 +03:00
Mikhail Glukhikh
a084c1d395 Has platform type : public API only option 2016-06-20 21:43:57 +03:00
Kirill
af1b26b993 Add quickfix tests for HasPlatformTypeInspection 2016-06-20 21:43:51 +03:00
Kirill Rakhman
00d8c26160 Implement inspection for declarations with implicit platform types #KT-12310 Fixed 2016-06-20 21:43:46 +03:00
Nikolay Krasko
21a32408cf Wrong delegation to delegation property in debugger when property defined in another module (KT-12678)
Different bytecode can be generated for delegated property and for non-delegated one. Backend inspects DELEGATED_PROPERTY_CALL to understand the property type, and expects that
this information had been already recorded into context. Frontend writes DELEGATED_PROPERTY_CALL into context during body resolve or type inference if type is not present.

Either way in debugger context it may happen that the DELEGATED_PROPERTY_CALL won't be written into context.

 #KT-12678
2016-06-20 21:14:52 +03:00
Alexander Udalov
3321e904b3 Check return type when locating method in reflection
#KT-11824 Fixed

(cherry picked from commit 311301f430)
2016-06-20 21:05:14 +03:00
Pavel V. Talanov
5e85e85a29 Create SyntheticMemberDescriptor interface
Implement this interface by sam adapters/constructors and use it in navigation

 #KT-11708 Fixed
2016-06-20 20:23:09 +03:00
Dmitry Jemerov
765bd44207 handle IOException from File.getCanonicalFile() (EA-83981 - NA: KotlinToJVMBytecodeCompiler.reportRuntimeConflicts) 2016-06-20 18:20:21 +02:00
Dmitry Jemerov
a77f4dfb8e VirtualFile.getParent() is nullable (EA-84222 - NPE: DecompiledFileWritingAccessProvider.isPotentiallyWritable) 2016-06-20 18:17:03 +02:00
Dmitry Jemerov
c3e38dd594 PsiElement.getNode() is nullable (EA-84534 - NPE: DocCommentConverterKt.content) 2016-06-20 18:15:23 +02:00
Alexander Udalov
21952a64d3 Update diagnostic tests ReadMe, explain tests with diagnostic arguments
(cherry picked from commit 0e881daba3)
2016-06-19 13:53:22 +03:00
Alexander Udalov
602b19bf90 Type-check reference to property with invisible setter to KProperty
#KT-12337 Fixed

(cherry picked from commit 6562a2db19)
2016-06-19 13:53:22 +03:00
Ilya Gorbunov
6804bd6985 Rearrange stdlib unit tests across packages.
Rearrange JS stdlib unit tests.

(cherry picked from commit c5a208f3eb)
2016-06-18 16:53:06 +03:00
Ilya Gorbunov
2044bc9f94 Remove obsolete and not relevant to stdlib tests
(cherry picked from commit d266f546f4)
2016-06-18 16:53:04 +03:00
Alexey Tsvetkov
0aa70fc3b5 Exclude resources dir from surefire test search 2016-06-17 20:14:33 +03:00
Alexander Udalov
6356957bfb Move get-protobuf later in update_dependencies
It invokes kotlinc, so should happen after the bootstrap compiler is downloaded

(cherry picked from commit 3fa87fe4de)
2016-06-17 17:24:59 +03:00
Mikhail Glukhikh
9a50a0b4b9 Elvis / if / when are now infer error type if it exists in one of their branches #KT-6665 Fixed 2016-06-17 16:03:58 +03:00
Mikhail Glukhikh
2eaaf9c14a Sealed class hierarchies are now correctly processed in when (by checking possible smart casts to nested sealed classes) #KT-10648 Fixed 2016-06-17 14:07:42 +03:00
Stanislav Erokhin
9a17999750 Create hack for exception about "Empty intersection for types".
Hackaround for KT-11266, EA-79963, EA-72093,  EA-79976.
2016-06-17 12:14:02 +03:00
Alexander Udalov
7d501714a3 Fix compilation 2016-06-16 18:02:17 +03:00
Alexander Udalov
761116563d Do not skip synthesized members when generating bridges
The condition here is obsolete since SAM adapters can no longer be overridden:
they are now extensions in another scope

 #KT-12708 Fixed

(cherry picked from commit de986ed051)
2016-06-16 17:02:25 +03:00
Alexander Udalov
f2e5d4b699 Report error on accidentally "overriding" wait/notify
#KT-7174 Fixed

(cherry picked from commit 79ecc9751b)
2016-06-16 17:01:45 +03:00
Mikhail Glukhikh
2db7562920 Inspection "can be primary constructor property" with relevant quick-fix #KT-8477 Fixed 2016-06-16 16:20:03 +03:00
Nikolay Krasko
7e2865f500 Implement isInheritor method with utility method that has special behaviour for anonymous classes 2016-06-16 14:18:16 +03:00
Nikolay Krasko
8069aca614 Implement copy methods for anonymous and enum entry light classes 2016-06-16 14:17:40 +03:00
Nikolay Krasko
4dbac59c6e Make Kotlin light class more like PsiAnonymousClassImpl
Avoid delegating to cls delegate in more places
2016-06-16 14:17:38 +03:00
Nikolay Krasko
32ee3f2934 Compare anonymous classes with psi only to avoid counting qualified name 2016-06-16 14:17:37 +03:00
Alexey Tsvetkov
b2851cdba8 Minor test fix 2016-06-15 20:30:16 +03:00
Alexey Tsvetkov
7c9a94d674 Ensure direcory for class file stubs always exists
This fixes the warning "classpath entry does not exist"

    #KT-12352 fixed
2016-06-15 20:06:18 +03:00
Alexey Tsvetkov
cc90e80794 Set friend modules for android gradle test tasks
This fixes the following issues:
1. When product flavors were used, android unit tests could not refer
to internal symbols from main source set.
2. Android instrumentation tests could not refer
to internal symbols from main source set

    #KT-11166 fixed
2016-06-15 20:06:18 +03:00
Zalim Bashorov
fad9a9decb JPS: don't consider that production target of module "B" is depends on test target of module "A" when "B" depends on "A"
#KT-12595 Fixed
2016-06-15 14:43:32 +03:00
Alexander Udalov
3c88ac45f6 Validate "-jvm-target" value in CLI, improve message
(cherry picked from commit 9548ab97251e79cebd1d580466678d52f0080454)
2016-06-15 14:24:02 +03:00
Mikhael Bogdanov
cd460987dc Support 'jvm-target' in CLI
(cherry picked from commit 3a8591a)
2016-06-15 14:15:13 +03:00
Dmitry Petrov
9c80f87794 KT-5075 Optimize array/collection indices usage in 'for' loop
Use specialized 'for' loop code generation strategy for loops over array indices and collection indices.
(cherry picked from commit a17b0dd)
2016-06-15 14:03:42 +03:00
Alexander Udalov
477b1cf151 Fix error in kapt on enum constructors with parameters
Do not skip writing the fictitious 'java/lang/Synthetic' annotation in KAPT
mode, because its absence makes ASM confuse indices of enum constructor
parameters (it cannot figure out that there are two additional parameters, name
and ordinal)

 #KT-12694 Fixed

(cherry picked from commit 99f4c7b6e7)
2016-06-14 22:08:25 +03:00
Nikolay Krasko
53e6139def Build output parser in separate module under 1.6 (KT-12159)
KotlinOutputParser accessed from gradle execution environment that can be started under Java 1.6.

 #KT-12159 Fixed
2016-06-14 19:41:14 +03:00
Nikolay Krasko
0c6602ab84 Add dependency to tests-common in j2k module 2016-06-14 16:43:17 +03:00
Alexander Udalov
ca66f1f29b Use protobuf with renamed packages, pack to IDEA plugin
Update GenerateProtoBuf.kt to also regexp-replace com.google.protobuf with
org.jetbrains.kotlin.protobuf in generated Java sources

 #KT-12581 Fixed

(cherry picked from commit 7e38b93d80)
2016-06-14 14:59:21 +03:00
Alexander Udalov
e195ae2516 Rename packages in protobuf-java binaries and sources
#KT-12581 In Progress

(cherry picked from commit 952a85414b)
2016-06-14 14:37:17 +03:00
Mikhail Glukhikh
ac8c749af8 Surround with null check : applicable also for TYPE_MISMATCH
(cherry picked from commit b173492)
2016-06-13 20:52:48 +03:00
Mikhail Glukhikh
15b39f7427 Wrap with safe let call : minor refactoring
(cherry picked from commit 10935ba)
2016-06-13 20:52:32 +03:00
Mikhail Glukhikh
2e38fbd274 Surround with null check : apply for ITERATOR_ON_NULLABLE
(cherry picked from commit 954952a)
2016-06-13 20:52:12 +03:00
Mikhail Glukhikh
e923f2ed42 Surround with null check : minor refactoring
(cherry picked from commit 7f77107)
2016-06-13 20:51:55 +03:00
Mikhail Glukhikh
2ffad4b5fa KT-11104 extra : name validator introduced for wrap with safe let call
(cherry picked from commit 230f73a)
2016-06-13 20:51:39 +03:00
Mikhail Glukhikh
18d6427ff2 KT-11104 extra : "wrap with safe let call" is now applicable for argument type mismatches
(cherry picked from commit 3c49b5f)
2016-06-13 20:51:17 +03:00
Mikhail Glukhikh
9fa7e0bc96 Quick-fix "wrap with safe let call" introduced #KT-11104 Fixed
(cherry picked from commit 47c1106)
2016-06-13 20:51:00 +03:00
Mikhail Glukhikh
d4f28855d5 Correct "Show type" on an invoked expression #KT-12671 Fixed
(cherry picked from commit f8b6ed2)
2016-06-13 20:50:42 +03:00
Mikhail Glukhikh
c0f6cee914 KT-11104 : quick fix "surround with null check"
(cherry picked from commit 90342ea)
2016-06-13 20:50:19 +03:00
Mikhail Glukhikh
e2c2f8e684 If to when: more accurate comment handling #KT-12649 Fixed
(cherry picked from commit 9470308)
2016-06-13 13:44:39 +03:00
Stanislav Erokhin
6003dda5e5 KT-10717 Type inference for lambda with local return
#KT-10717 Fixed
(cherry picked from commit 585dcbf)
2016-06-10 21:38:18 +03:00
Stanislav Erokhin
d6894e07b1 Add assertion for variable as operator call.
(cherry picked from commit da01e4a)
2016-06-10 21:29:21 +03:00
Stanislav Erokhin
873795ff54 Minor. removed several tests with error calls.
(cherry picked from commit 0324141)
2016-06-10 21:29:15 +03:00
Nikolay Krasko
d035645a8c j2k: minor fixes in KtLightClassForAnonymousDeclaration 2016-06-10 14:07:37 +03:00
Nikolay Krasko
dfa286394b j2k: actual convert KtLightClassForAnonymousDeclaration 2016-06-10 14:07:36 +03:00
Nikolay Krasko
3c963b040e j2k: rename KtLightClassForAnonymousDeclaration 2016-06-10 14:07:34 +03:00
Nikolay Krasko
f36180c33d Minor: clean up and reformat 2016-06-10 14:07:33 +03:00
Alexander Udalov
1b226d1d7a Fix toString() and reflectLambda() for lambdas with generic types in signatures
#KT-10771 Fixed

(cherry picked from commit 59342000ae)
2016-06-10 12:39:41 +03:00
Denis Zharkov
66530e5e7a Refactor function descriptors copy mechanism
Pull up CopyBuilder to interface and inline some custom usages

(cherry picked from commit e316ab2ee6)
2016-06-10 12:37:47 +03:00
Alexander Udalov
96f704c348 Implement copy in FunctionDescriptorImpl, call doSubstitute only in CopyConfiguration#build
(cherry picked from commit dc2972d99e)
2016-06-09 17:32:56 +03:00
Alexander Udalov
06032d33d4 J2K JavaElementCollectionFromPsiArrayUtil
(cherry picked from commit ee8ca0b850)
2016-06-09 17:29:44 +03:00
Alexander Udalov
4eeea9b960 Minor, move the Lombok hack a bit higher
(cherry picked from commit db3e0798c8)
2016-06-09 16:40:05 +03:00
Alexander Udalov
dcf42e2e4a Minor, drop java_generic_services option from .proto files
There are no service definitions in our .proto files, so this option had no
effect

(cherry picked from commit 3477f6ee85)
2016-06-09 16:23:52 +03:00
Alexander Udalov
ce3e98c8bf Minor, cleanup GenerateProtoBuf.kt
(cherry picked from commit aba1cc3d83)
2016-06-09 16:17:57 +03:00
Alexander Udalov
17b8bac308 J2K serialization: fix compilation and prettify
(cherry picked from commit 0c0a451d20)
2016-06-09 16:17:50 +03:00
Alexander Udalov
86a836432a J2K serialization: invoke automatic J2K conversion 2016-06-09 16:13:56 +03:00
Alexander Udalov
bea86db6b5 J2K serialization: move .java -> .kt 2016-06-09 16:12:08 +03:00
Alexander Udalov
9eff617bea Minor, remove 'depends' from kotlin-build-common-test Ant task
Similarly to other targets in build.xml, this simplifies manual partial
compilation of artifacts

(cherry picked from commit 3469e980cb)
2016-06-09 16:10:58 +03:00
Stanislav Erokhin
822071aecf KT-11778 Exception in Lombok plugin: Rewrite at slice FUNCTION
#KT-11778 Fixed.
EA-64051 Fixed.
(cherry picked from commit 4f943dc)
2016-06-09 14:23:32 +03:00
Pavel V. Talanov
3731e170e4 Update changelog for 1.0.3 2016-06-08 19:26:23 +03:00
Mikhail Glukhikh
aab4d9e8e2 Type parameter is considered capable of taking any value for the purpose of cast possibility check #KT-6611 Fixed
(cherry picked from commit 4b6b35d)
2016-06-08 17:48:00 +03:00
Mikhail Glukhikh
85a89cb80b CastDiagnosticsUtil.kt: converted to Kotlin
(cherry picked from commit 99acbf1)
2016-06-08 17:47:55 +03:00
Mikhail Glukhikh
1164dec297 CastDiagnosticsUtil.java --> CastDiagnosticsUtil.kt
(cherry picked from commit f3f7bff)
2016-06-08 17:47:51 +03:00
Pavel V. Talanov
ff82155f93 plugin.xml: Add dependency on java module
This restricts usage of plugin to IDEA and Android Studio
2016-06-08 17:43:15 +03:00
Alexander Udalov
35bc25577a Use empty list instead of ThrowingList in callable reference resolution
Clients of the call resolution do not expect to see a throwing list in call's
arguments, and it's wrong to make each of them check against the special case
that is the resolution of callable references.

Fixes EA-69901

(cherry picked from commit d8db769823)

Note that the test was NOT cherry picked from master because it depends on the
new language feature which is absent in 1.0.3
2016-06-08 15:05:03 +03:00
Alexey Sedunov
30ba7689db Minor: Fix compilation 2016-06-08 14:21:36 +03:00
Alexey Sedunov
2319ef2d8d Rename: Do not rename ambiguous references in import directives
#KT-6363 Fixed
(cherry picked from commit fe01035)
2016-06-08 12:11:00 +03:00
Alexey Sedunov
4526678cb4 Rename: Show more detailed element descriptions in Rename dialog
#KT-8544 Fixed
(cherry picked from commit 8ba1aff)
2016-06-08 12:10:45 +03:00
Alexey Sedunov
f4538bc3a6 Rename: Copy default values if function to be renamed inherits default values from some base function which is excluded from rename
#KT-9446 Fixed
(cherry picked from commit 9692c21)
2016-06-08 12:10:29 +03:00
Alexey Sedunov
2475dc5151 Rename: Implement automatic renamer for test classes
#KT-8512 Fixed
(cherry picked from commit 1885310)
2016-06-08 12:10:17 +03:00
Alexey Sedunov
388dadcf6d Rename: Do not show 'Rename overloads' options if target function has no
overloads. Consider extensions and members overloads if they have the same
recever class
 #KT-8541 Fixed
 #KT-8786 Fixed
(cherry picked from commit 42b71ae)
2016-06-08 12:10:08 +03:00
Alexey Sedunov
33a1efc624 Minor: Drop obsolete code
(cherry picked from commit 9b3f40e)
2016-06-08 12:09:59 +03:00
Alexey Sedunov
28ada3bf30 Light Classes: Drop obsolete constraint which prevents generation of light methods for local class members
#KT-8892 Fixed
(cherry picked from commit cf8cf37)
2016-06-08 12:09:48 +03:00
Alexey Sedunov
0b1a2194cb Rename: Do not replace Java references to synthetic component functions when renaming constructor parameter
#KT-9241 Fixed
(cherry picked from commit d27f3c0)
2016-06-08 12:09:39 +03:00
Alexey Sedunov
b35dd6b026 Rename: Allow typing any identifier without backquotes in Rename dialog
#KT-9444 Fixed
(cherry picked from commit 958b402)
2016-06-08 12:09:31 +03:00
Alexey Sedunov
a9830b2d28 Rename: @JvmName support
#KT-8044 Fixed
 #KT-9432 Fixed
(cherry picked from commit 96132fa)
2016-06-08 12:09:18 +03:00
Alexey Sedunov
18913925d9 Rename: Allow renaming class by constructor delegation call referencing primary constructor
#KT-8860 Fixed
(cherry picked from commit ff4c16d)
2016-06-08 12:08:50 +03:00
Alexey Sedunov
dcdf0cc33e Rename: Respect naming conventions in automatic variable rename
#KT-7851 Fixed
(cherry picked from commit e89e809)
2016-06-08 12:08:36 +03:00
Alexey Sedunov
3af211275b Rename: Skip read-only declarations when renaming parameters
#KT-10713 Fixed
(cherry picked from commit 400d6b5)
2016-06-08 12:08:28 +03:00
Alexey Sedunov
de1ff80486 Rename: Fixed in-place rename of Kotlin expression referring Java declaration
#KT-9157 Fixed
(cherry picked from commit 566ed01)
2016-06-08 12:08:20 +03:00
Alexey Sedunov
3eb80015c7 Rename: Quote non-identifier names in Kotlin references
#KT-9156 Fixed
(cherry picked from commit 691de67)
2016-06-08 12:08:09 +03:00
Alexey Sedunov
2205227f47 Refactoring: Move quoteIfNeeded function to idea-core
(cherry picked from commit a743098)
2016-06-08 12:08:00 +03:00
Alexey Sedunov
4b77ee5feb Create Test Intention: Fix RuntimeException on attempt to convert generated test class to Kotlin
#KT-12285 Fixed
 #EA-82281 Fixed
(cherry picked from commit 79f31cd)
2016-06-08 12:07:14 +03:00
Yan Zhulanow
6d21c3d145 Fix EA-81689
(cherry picked from commit 99b6194)
2016-06-07 21:17:34 +03:00
Alexander Udalov
23b7bb8fba Inline PrintingMessageCollector#PLAIN_TEXT_TO_SYSTEM_ERR
Otherwise 'hasErrors' flags was not cleared between subsequent runs of tests
which were using this message collector

(cherry picked from commit e3164119c1)
2016-06-07 21:12:39 +03:00
Nikolay Krasko
f03816ef1b Support Idea 163 branch 2016-06-07 19:29:44 +03:00
Kirill Rakhman
cb696b31ce Formatter: handle spaces before value arguments list (KT-12634)
#KT-12634 Fixed
2016-06-07 19:29:44 +03:00
Alexey Tsvetkov
2ae4d2a2fb Minor fixes of android test project 2016-06-07 19:21:55 +03:00
Jake Wharton
470600c2ef Add support for the Android test plugin.
#KT-11767 fixed
2016-06-07 19:21:55 +03:00
Yan Zhulanow
cddcf025b5 Fix EA-80764. Do not try to get the resource manager for the disposed module
(cherry picked from commit c3bd243)
2016-06-07 18:38:59 +03:00
Yan Zhulanow
51015965f2 Fix EA-82394. PsiType.getClassName() can return null. Return "<anonymous type>" in that case.
(cherry picked from commit 8be1335)
2016-06-07 18:38:56 +03:00
Yan Zhulanow
37dc0aeeac Fix EA-82166. NPE. loadModel() can return null, and it's a bad idea to call methods on a null pointer.
(cherry picked from commit cf033d0)
2016-06-07 18:38:53 +03:00
Yan Zhulanow
2179ee82a9 Fix EA-82449. Do not run Lint diagnostics if the project is already disposed
(cherry picked from commit 98b2899)
2016-06-07 18:38:50 +03:00
Yan Zhulanow
696475e6bf KT-12387 Fix Performance problem with Lint in IDE
Call checkCanceled() before running Lint diagnostics (UastScanner)
(cherry picked from commit c6e328a)
2016-06-07 18:38:47 +03:00
Yan Zhulanow
dbc54e2c52 Fix #KT-12047 (Kotlin Lint: "Missing @JavascriptInterface on methods" does not report anything)
(cherry picked from commit 61e8e01)
2016-06-07 18:38:44 +03:00
Yan Zhulanow
5c78acc38c Fix #KT-12015 (Kotlin Lint False Positive for Bundle.getInt()).
Android firstly checks API version against the function call receiver type, so we should do the same to be consistent.
(cherry picked from commit c3d01ec)
2016-06-07 18:38:40 +03:00
Pavel V. Talanov
dd4c370c57 Changelog for 1.0.3: delete empty 1.1 section 2016-06-07 17:16:40 +03:00
Pavel V. Talanov
421ea3b0c5 Changelog, minor: merge duplicating JS sections 2016-06-07 17:15:23 +03:00
Pavel V. Talanov
f6ad3d92f5 Update changelog for 1.0.3 2016-06-07 17:06:11 +03:00
Dmitry Jemerov
5675b8b4f6 search for Kotlin convention usages of Java methods
#KT-5960 Fixed
(cherry picked from commit 060c285)
2016-06-07 14:54:35 +02:00
Dmitry Jemerov
87d07924da when finding usages of parameter of annotation class primary constructor, search also for light method generated from that parameter
#KT-9399 Fixed
(cherry picked from commit 7e2ce2d)
2016-06-07 14:54:28 +02:00
Alexey Andreev
e45e3dd652 JS/Inliner: fix build 2016-06-07 12:24:55 +03:00
Alexey Andreev
0f1e21cdf8 JS/Inlining: in RedundantStatementElimination remove unnecessary side effect check for binary expressions 2016-06-07 12:24:54 +03:00
Alexey Andreev
5ad50f837a JS/Inlining: rename IneffectiveStatementElimination to RedundantStatementElimination 2016-06-07 12:24:54 +03:00
Alexey Andreev
3cb1a71b75 JS/Inlining: minor improvements and clarifications after code review. Test whether expression without side effect does not prevent to relocate another expressions 2016-06-07 12:24:54 +03:00
Alexey Andreev
2166547123 JS/Inlining: change sideEffects metadata to take three values: producing side effect, dependding on side effect and purity 2016-06-07 12:24:53 +03:00
Alexey Andreev
0936839410 JS/Inlining: improve test for removal of binary expresions without side effect, add tests for removal of a reference to a function parameter 2016-06-07 12:24:53 +03:00
Alexey Andreev
c0d094b1e3 JS/Inlining: refactor TemporaryVariableElimination 2016-06-07 12:24:52 +03:00
Alexey Andreev
654700694a JS/Inlining: refactor IneffectiveStatementElimination 2016-06-07 12:24:52 +03:00
Alexey Andreev
e7b7628f6c JS/Inlining: clarify why it's necessary to remove expression statements like a[b] 2016-06-07 12:24:51 +03:00
Alexey Andreev
a304ffd0c9 JS/Inlining: in temporary variable elimination don't treat FQN without side effects as trivial, i.e. disable moving these vars freely across function body 2016-06-07 12:24:51 +03:00
Alexey Andreev
b983312d0a JS/Inlining: minor simplifications after code review 2016-06-07 12:24:51 +03:00
Alexey Andreev
53ce2d0446 JS/Inlining: refactor TemporaryAssignmentElimination, add more tests 2016-06-07 12:24:50 +03:00
Alexey Andreev
3e19c09d57 JS/Inlining: add test case for KT-10931 2016-06-07 12:24:50 +03:00
Alexey Andreev
2b6ddb1608 JS/Inlining: minor code style fixes 2016-06-07 12:24:49 +03:00
Alexey Andreev
54f59fdc3d JS/Inlining: in function call like fn() extract fn to a local variable, since fn can be access to property with side effects. Add tests to prove that evaluation order became proper in certain cases. Fix KT-11711, KT-7674, KT-7043 2016-06-07 12:24:49 +03:00
Alexey Andreev
2486da41d8 JS/Inlining: mark closure constructors as free from side effects 2016-06-07 12:24:48 +03:00
Alexey Andreev
2ab89ea65c JS/Inlining: in temporary variable elimination improve moving of some expressions which are provably pure 2016-06-07 12:24:48 +03:00
Alexey Andreev
dda6330be8 JS/Inlining: when generating expression for default property accessor, mark this expression as side effect free, so optimizer has opportunity to move it 2016-06-07 12:24:45 +03:00
Alexey Andreev
78f4f20080 JS/Inlining: fix broken evaluation order after applying temporary variable elimination 2016-06-07 12:24:09 +03:00
Alexey Andreev
00ce8b3fc1 JS/Inlining: in expression like f(g()), where *f* is inline, don't treat g() as a lambda constructor 2016-06-07 12:24:09 +03:00
Alexey Andreev
78d62b2985 JS/Inlining: introduce removal of expression statements without side effects 2016-06-07 12:24:08 +03:00
Alexey Andreev
909bc0161c JS/Inlining: introduce removal of unused variables 2016-06-07 12:24:08 +03:00
Alexey Andreev
34dfadd278 JS/Inlining: in temporary variable elimination introduce better recognition of FQNs without side effects 2016-06-07 12:24:08 +03:00
Alexey Andreev
e8a92150b4 JS/Inlining: always create temporary variables to alias expressions in following cases:
* when decomposing expression that contains inline calls, alias all subexpressions
* when substituting arguments to inline call
* for value returned from inline function.

Instead, rely on dedicated optimization pass. Improve lookup of function to inline, since the old one relied on immediate optimizations. Give more hints to optimizer.

This should make inlining more stable in different hard-to-reproduce corner cases with evaluation order.
2016-06-07 12:24:07 +03:00
Alexey Andreev
a72d63a8c9 JS/Inlining: fix bug in temporary assignment elimination which causes excess removal of assignment statement. When there is a set of temporary variables that receive same value in different execution branches, remove them carefully so that at least one (and, preferably, at most) remains in each branch. 2016-06-07 12:24:02 +03:00
Valentin Kipyatkov
72f6f9b5d7 KT-12260 ISE while replacing an operator with safe call
#KT-12260 Fixed
(cherry picked from commit 3f82cc9)
2016-06-06 15:11:27 +03:00
Alexander Udalov
2224702216 Minor, make CapturedParamInfo#skipInConstructor immutable
(cherry picked from commit 390b78b7f7)
2016-06-06 13:32:36 +03:00
Alexander Udalov
ac32cd83c1 Minor, delete CapturedParamOwner
(cherry picked from commit b370ac0b37)
2016-06-06 13:32:34 +03:00
Alexander Udalov
07ea37022a Cleanup inline codegen classes
Fix warnings, typos, formatting, break long lines, remove unused, add
nullability annotations, inline small methods used only once

(cherry picked from commit e148dcdee7)
2016-06-06 13:32:26 +03:00
Dmitry Jemerov
f74bd75dfa don't quote empty package name
(cherry picked from commit 6a1ffc8)
2016-06-03 16:28:48 +02:00
Dmitry Jemerov
a7074fe7a8 fix compilation 2016-06-03 15:11:25 +02:00
Dmitry Jemerov
cacbd4c553 change implementation of 'new file' action to support escaping the package name and creating directory/package hierarchy
#KT-8362 Fixed
 #KT-11328 Fixed
(cherry picked from commit 8b30e7e)
2016-06-03 14:19:54 +02:00
Dmitry Jemerov
a475da5256 de-i18n
(cherry picked from commit 5f89274)
2016-06-03 14:19:47 +02:00
Dmitry Jemerov
5d63e2346f NewKotlinFileAction: J2K
(cherry picked from commit 28100be)
2016-06-03 14:19:37 +02:00
Dmitry Jemerov
713fdcd409 NewKotlinFileAction: rename to .kt
(cherry picked from commit 2ee03a7)
2016-06-03 14:19:31 +02:00
Dmitry Jemerov
82a7fc6c29 show new icon for Kotlin annotations in structure view (KT-12516)
(cherry picked from commit 349376c)
2016-06-03 14:19:19 +02:00
Dmitry Jemerov
52a97a0b19 can't close contents in Kotlin Bytecode toolwindow (KT-9797)
(cherry picked from commit 987b48d)
2016-06-03 14:19:04 +02:00
Pavel V. Talanov
1938b436a1 Update changelog for 1.0.3 2016-06-02 19:19:41 +03:00
Mikhael Bogdanov
c70cfd28ca Don't generate unnecessary checkcast to java.lang.Number
(cherry picked from commit 092be8c)
2016-06-02 16:24:44 +03:00
Mikhael Bogdanov
67db7ab151 Fix for KT-12582: "VerifyError: Bad local variable type" caused by explicit loop variable type
#KT-12582 Fixed
(cherry picked from commit a6cf169)
2016-06-02 16:24:41 +03:00
Mikhael Bogdanov
7a76e4e38b Disabled several tests on android
(cherry picked from commit e7f9d34)
2016-06-02 16:24:38 +03:00
Mikhael Bogdanov
03040a71f3 Small refactoring in constant processing
(cherry picked from commit c7d97c6)
2016-06-02 16:24:36 +03:00
Mikhail Glukhikh
4c7e596897 Quick fix "add !!" for SMARTCAST_IMPOSSIBLE in certain situations
(cherry picked from commit 33b6780)
2016-06-02 16:13:17 +03:00
Mikhail Glukhikh
60fb5c7f29 Convert to expression body: take nested whens into account
(cherry picked from commit 9f819b1)
2016-06-02 16:12:57 +03:00
Mikhail Glukhikh
b9d630c7ac Convert to expression body is forbidden on single non-exhaustive when statement with Unit result #KT-12502 Fixed
(cherry picked from commit 2350caf)
2016-06-02 16:12:45 +03:00
Mikhail Glukhikh
0b6adb5c1e "Make abstract" is no longer applicable to object / enum entry members #KT-3797 Fixed
(cherry picked from commit 91ce8cc)
2016-06-02 16:12:32 +03:00
Nikolay Krasko
e57427a246 Remove forgotten import 2016-06-02 15:07:52 +03:00
Nikolay Krasko
d48294e8c7 NoSuchFieldError in Evaluate Expression on a property of a derived class (KT-12206)
#KT-12206 Fixed

Conflicts:
	compiler/backend/src/org/jetbrains/kotlin/codegen/JvmCodegenUtil.java
2016-06-02 14:50:23 +03:00
Kirill Rakhman
944a4446ff Formatter: handle spaces between class name and type parameters (#875)
Fixes #KT-12446
(cherry picked from commit c24960f)
2016-06-01 20:23:11 +02:00
Alexander Udalov
022ef6410d Drop isAbsoluteInRootPackage from stubs
(cherry picked from commit 7eafae1936)
2016-06-01 19:33:45 +03:00
Alexander Udalov
3951b6f719 Drop undocumented absolute name specification feature with 'package.'
(cherry picked from commit 1339286261)
2016-06-01 19:32:21 +03:00
Alexey Tsvetkov
96e2deab25 Minor: fix snapshot version in gradle test 2016-06-01 16:45:21 +03:00
Alexey Tsvetkov
5872aeb375 Shade in kotlin-build-common-test 2016-05-31 22:20:16 +03:00
Alexey Tsvetkov
74f7e9f955 Shade in kotlin-android-extensions 2016-05-31 22:20:16 +03:00
Alexey Tsvetkov
caf87fbab2 Shade in kotlin-compiler-embeddable
Now kotlin gradle plugin is compatible with android gradle plugin 2.2

     #KT-12478 fixed
     #KT-12431 fixed
     #KT-12406 fixed
2016-05-31 22:20:16 +03:00
Alexey Tsvetkov
782f4bffbf Set idea.io.use.nio2=true every build on windows
Otherwise (setting property once in static block) gradle daemon might clear system properties

     #KT-11770 fixed
2016-05-31 22:20:16 +03:00
Mikhael Bogdanov
a020870de3 Fix for KT-12200: initial property assignment ignored
#KT-12200 Fixed
(cherry picked from commit 0f1589f)
2016-05-31 15:29:03 +03:00
Alexey Andreev
bff1963f9e KT-11960: add test for case of instantiating inner class of a local class 2016-05-31 15:25:40 +03:00
Alexey Andreev
1bcc173e36 KT-11960 Fix case of instantiation of local class via its inner class or via nested lambda. Move tests to more appropriate location. Fix bug in blackbox codegen generator for JVM, which does not allow to suppress tests. 2016-05-31 15:25:40 +03:00
Alexey Andreev
9b59d0de7a KT-11960 Minor code style fixes 2016-05-31 15:25:40 +03:00
Alexey Andreev
1124fddb9e KT-11960 Fix for data classes 2016-05-31 15:25:39 +03:00
Alexey Andreev
55b158f7d5 KT-11960 Fix for case when class instantiates itself 2016-05-31 15:25:39 +03:00
Alexander Udalov
d6addc4ea5 Keep Native2AsciiCharsetProvider from being stripped by proguard
#KT-12549 Fixed

(cherry picked from commit a300dee61f)
2016-05-31 14:28:44 +03:00
Kirill Rakhman
743ee4f278 Formatter: handle spaces around 'is' keyword (#874)
Fixes #KT-12548
(cherry picked from commit 93ebb3d)
2016-05-30 19:36:53 +02:00
Alexander Udalov
e14efcebc0 Fix compilation of kotlin-maven-plugin
(cherry picked from commit ec8c8da142c4325100dba64da5aaf04a9f405177)
2016-05-30 15:46:04 +03:00
Alexey Sedunov
886de1d9bf Spring Support: Fixed rename of custom-named beans specified with Kotlin annotation
#KT-12096 Fixed
(cherry picked from commit ec0f21c)
2016-05-30 15:38:32 +03:00
Alexey Sedunov
cee494eaf9 Spring Support: Automatic configuration by @Import and @ComponentScan ("basePackages"/"basePackageClasses")
#KT-12135 Fixed
 #KT-12139 Fixed
(cherry picked from commit 076e31c)
2016-05-30 15:38:16 +03:00
Alexey Sedunov
560b7c5be3 Spring Support: Implement @ComponentScan inspection
#KT-12465 Fixed
(cherry picked from commit 781a1e0)
2016-05-30 15:37:58 +03:00
Alexey Sedunov
9717eb5172 Code Insight: Implement package references inside of string literals
#KT-12136 In Progress
(cherry picked from commit d69140b)
2016-05-30 15:37:17 +03:00
Alexey Sedunov
0d97f96b0e Light Classes: Consider FakeFileForLightClass instances equivalent if they correspond to the light classes with common KtFile
#KT-12117 Fixed
(cherry picked from commit d52e62b)
2016-05-30 15:37:06 +03:00
Mikhail Glukhikh
bfbde9042d Simplify for intention: apply name validator to prevent conflicts
(cherry picked from commit 7a24429)
2016-05-30 14:44:21 +03:00
Mikhail Glukhikh
d07b0fcb8d Simplify for intention: applicable of any numbers of properties used #KT-10779 Fixed
(cherry picked from commit 792b37b)
2016-05-30 14:43:49 +03:00
Alexander Udalov
452932b55c Minor, update ChangeLog with '-language-version'
(cherry picked from commit fbd671c158)
2016-05-30 13:52:27 +03:00
Mikhail Glukhikh
dd6da009d9 Attach "add remaining branches" and "add else branch" fixes to NON_EXHAUSTIVE_WHEN warning #KT-12503 Fixed
(cherry picked from commit c26d7e0)
2016-05-30 12:34:38 +03:00
Alexander Udalov
461fdad5df Minor, add comments on declarations used in Eclipse plugin
(cherry picked from commit 68c5e8e190)
2016-05-27 19:41:42 +03:00
Alexander Udalov
b2f428d5b6 Minor, make Services#get return type nullable
(cherry picked from commit a95568eedf)
2016-05-27 19:41:39 +03:00
Alexander Udalov
6c9cdd82d3 Fix project compilation after introduction of bound references
`java` in the package name inside an extension to KClass is now resolved to the
extension property `KClass#java`. So `java.X::class` is now equivalent to
`this.java.X::class`

(cherry picked from commit 57849c9dfd)
2016-05-27 19:40:05 +03:00
Alexander Udalov
37d76c4866 Minor, capitalize language feature names in tests
To simplify textual search across the codebase

(cherry picked from commit 7cb61b81ab)
2016-05-27 19:39:57 +03:00
Mikhail Glukhikh
6806b0813a Back-end JVM: more accurate handling of when expressions with Unit result #KT-12192 Fixed
(cherry picked from commit 8713190)
2016-05-27 18:12:33 +03:00
Pavel V. Talanov
56a8ea3492 Refactor LanguageFeatureSettings: Add LanguageVersion and LanguageFeature entities
(cherry picked from commit 76971eca70)
2016-05-27 14:32:41 +03:00
Alexander Udalov
195acce366 Minor, update javac2 annotation filter for kotlin-build-common-test
(cherry picked from commit 9bdf8f1082)
2016-05-27 14:28:13 +03:00
Alexander Udalov
b5ee06be1f Add tests on "-language-version" usage from Ant, Maven, Gradle
(cherry picked from commit 2c516f18a0)
2016-05-27 14:27:58 +03:00
Alexander Udalov
efbecc9fb2 Validate "-language-version" argument value, add tests
(cherry picked from commit bc5202a4d7)
2016-05-27 14:25:44 +03:00
Alexander Udalov
fa3a7f056a Support enabling/disabling language features in diagnostic tests (unsupported in 1.0.3)
(cherry picked from commit 98c3e030a1)
2016-05-27 14:21:30 +03:00
Alexander Udalov
833cf8267f Support "-language-version" CLI option for compatibility with older releases
Introduce LanguageFeatureSettings, instance of which should be injected by the
container and be accessible everywhere during the compilation (front-end and
back-end).

Parameters of LanguageFeatureSettings are unused in this commit, will be used
later

(cherry picked from commit e1ba4480d7)
2016-05-27 14:16:13 +03:00
Pavel V. Talanov
ad6f2de8a1 KtLightMethod: Wrap return type so it resolves to light method's type parameter as opposed to delegate's
Affects java type inference in IDEA

  #KT-12090 Fixed
  #KT-11095 Fixed
2016-05-27 13:15:42 +03:00
Alexey Andreev
97228e5ac4 KT-6942: in JS backed for value equalitity patterns in when generate structural equality check (i.e. Any.equals) instead of referential check (===). 2016-05-26 14:31:50 +03:00
Alexander Udalov
bf3ada0592 Prevent META-INF/INDEX.LIST from jsr166e.jar to be packed into compiler
INDEX.LIST contains a list of jars with the information about what packages
does each of those jars have (this feature is called JarIndex, see
http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html). In case of
ideaSDK/core/jsr166e.jar, it only has one entry -- jsr166e.jar itself. When the
compiler is started, the class loading mechanism reads this file and assumes
that there are no other jars nearby. But the compiler depends on other jars,
namely kotlin-runtime.jar and kotlin-reflect.jar, thus we get
ClassNotFoundException when trying to load almost any Kotlin bytecode from
kotlin-compiler.jar.

Note that, fortunately, release builds are not affected because:
1) proguard helpfully strips this file from the final kotlin-compiler.jar;
2) we use a custom class loader (Preloader) which ignores JarIndex.
This only affects local setup with proguard disabled, where one test
(CompilerDaemonTest) was failing because it was trying to invoke the compiler
directly via "java -jar ..."

To implement this, it was necessary to exclude this one file from the compiler
jar, however the "zipgroupfileset" Ant task does not support exclusion of one
file from a particular archive, so we pack all idea core libraries into one jar
beforehand and use "zipfileset" which supports exclusion of one file
(http://stackoverflow.com/a/2426245/288456).

(cherry picked from commit c3f1afee626502470dbe27a1343c777e5cade789)
(cherry picked from commit 9a762e0fa2)
2016-05-26 14:18:33 +03:00
Alexander Udalov
db2fa0fbdf Fix kotlin-maven-plugin compilation
(cherry picked from commit e5d64d316d)
2016-05-26 14:18:31 +03:00
Alexander Udalov
3db9871a13 Render different class kinds differently in bytecode listing test
(cherry picked from commit b208995d73)
2016-05-26 13:27:05 +03:00
Alexander Udalov
84b573d1ea J2K backend-common classes: convert
Also merge CodegenUtilKt into CodegenUtil

(cherry picked from commit c1c2651988)
2016-05-26 13:26:54 +03:00
Alexander Udalov
b043906395 J2K backend-common classes: rename .java -> .kt
(cherry picked from commit 27ed0dd25f)
2016-05-26 13:25:33 +03:00
Alexander Udalov
f59bf2d8ef Minor, comment out ignored test
(cherry picked from commit d89e907f00)
2016-05-26 13:24:48 +03:00
Alexander Udalov
0b44a90823 Move some configuration keys to JVM or to CommonConfigurationKeys
Move CONTENT_ROOTS and SCRIPT_DEFINITIONS_KEY to JVMConfigurationKeys because
they are only used on JVM, rename the latter to SCRIPT_DEFINITIONS.

Move MODULE_NAME to CommonConfigurationKeys to be combined with MODULE_ID in
JSConfigurationKeys in the future

(cherry picked from commit 05f8836f46)
2016-05-26 13:24:38 +03:00
Alexander Udalov
8233c5d458 Delete unused ParentLastURLClassLoader
(cherry picked from commit 5bf14c106a)
2016-05-26 13:20:50 +03:00
Alexander Udalov
89059bda04 Remove dangerous readKotlinHeader() in inlineUtil.kt
It was creating a phantom FileBasedKotlinClass which was not based on any file

(cherry picked from commit b9fb6c0d84)
2016-05-26 13:20:44 +03:00
Alexander Udalov
c19dbefe1b Move JVMConfigurationKeys to frontend.java
Similarly to K2JVMCompilerArguments, they will soon be needed in the IDE code.
Move COMPILER_JAR_LOCATOR to CLIConfigurationKeys because it's used both in JVM
and JS, and only in CLI. Other keys, non-relevant in the IDE, may be moved out
soon as well, such as incremental compilation components

(cherry picked from commit 6c0ff40197)
2016-05-26 13:19:45 +03:00
Alexander Udalov
c07350227e Minor, break the line in "kotlinc -help" if it's too long
To improve description of the "pluginOptions" flag

(cherry picked from commit dcb2d7b4f6)
2016-05-26 13:19:39 +03:00
Alexander Udalov
c2cf56b137 Rename compilerConfigurationForTests -> newConfiguration
(cherry picked from commit 6674412079)
2016-05-26 13:15:45 +03:00
Alexander Udalov
6e967b1e0b Rename Config -> JsConfig
(cherry picked from commit 116e4a5ced)
2016-05-26 13:11:11 +03:00
Alexander Udalov
e9fe329415 Get rid of unnecessary exceptions in JS translator
Before this commit, an internal error during JS translation resulted in the
actual exception wrapped in TranslationRuntimeException wrapped in
TranslationInternalException wrapped in RuntimeException being thrown. This
change gets rid of the two latter wrappings.

Also delete unthrown MainFunctionNotFoundException and related unused
constructors in TranslationException

(cherry picked from commit 2bd3211ba8)
2016-05-26 13:11:05 +03:00
Alexander Udalov
7131238c86 Add MessageCollector#hasErrors, get rid of MessageSeverityCollector
Also fix duplicated wrapping of a message collector into a message severity
collector (in CLICompiler and in the beginning of doExecute in
K2JVMCompiler/K2JSCompiler)

(cherry picked from commit 3c81bb4bfc)
2016-05-26 13:10:20 +03:00
Alexander Udalov
7ae2ab8437 Move TEST_MODULE_NAME to KotlinTestUtils and change value to "test-module"
This name is more generic and thus can be used everywhere, not only in Java
integration tests

(cherry picked from commit 69343549b7)
2016-05-26 13:06:21 +03:00
Alexander Udalov
4be84d8d4c Remove traces of old compiler plugin architecture
It was retired with the deprecation and subsequent removal of the old KDoc, and
is now unused

(cherry picked from commit 3ca77de924)
2016-05-26 13:03:51 +03:00
Alexander Udalov
caf0184e2f Introduce CompilerConfiguration#getNotNull and getBoolean
To reduce boilerplate at call sites

(cherry picked from commit 8c0f78db50)
2016-05-26 13:03:38 +03:00
Alexander Udalov
6e5dd83b67 Minor, fix warnings and improve style in KotlinToJVMBytecodeCompiler
(cherry picked from commit 81a0fa5f47)
2016-05-26 13:00:35 +03:00
Dmitry Jemerov
90be470172 cleanup after code review
(cherry picked from commit 495a3e9)
2016-05-25 21:09:43 +02:00
Dmitry Jemerov
6c5a3b7734 fix PsiCheckerTestGenerated according to removed "property with backing field" highlighting
(cherry picked from commit b37ac4f)
2016-05-25 21:09:32 +02:00
Dmitry Jemerov
f493a42d27 inherit Kotlin TYPE_PARAMETER from Java TYPE_PARAMETER
#KT-11465 Fixed
(cherry picked from commit 14559bf)
2016-05-25 21:09:26 +02:00
Dmitry Jemerov
95d022c38d specify base color for ANNOTATION and LABEL
#KT-9410 Fixed
(cherry picked from commit 76178c5)
2016-05-25 21:09:21 +02:00
Dmitry Jemerov
4ef75eb110 highlight infix function calls
#KT-6540 Fixed
(cherry picked from commit 49335fa)
2016-05-25 21:09:15 +02:00
Dmitry Jemerov
7f1674ee50 remove CLASS highlight on top of CONSTRUCTOR_CALL for constructor calls
#KT-2919 Fixed
(cherry picked from commit a448af5)
2016-05-25 21:09:10 +02:00
Dmitry Jemerov
a48d4dc9be TypeKindHighlightingVisitor: J2K
(cherry picked from commit e7cb256)
2016-05-25 21:09:04 +02:00
Dmitry Jemerov
ab23195d54 TypeKindHighlightingVisitor: rename to .kt
(cherry picked from commit e07e16a)
2016-05-25 21:08:58 +02:00
Dmitry Jemerov
407405f305 remove PARAMETER highlight on top of INSTANCE_PROPERTY for primary constructor parameters
(cherry picked from commit e9cefd9)
2016-05-25 21:08:52 +02:00
Dmitry Jemerov
abb7c4a13a remove LOCAL_VARIABLE highlight on top of BACKING_FIELD_VARIABLE
(cherry picked from commit b51637d)
2016-05-25 21:08:46 +02:00
Dmitry Jemerov
890ef8c952 VariablesHighlightingVisitor: cleanup after J2K
(cherry picked from commit 4261e4a)
2016-05-25 21:08:41 +02:00
Dmitry Jemerov
6dcdd7f8a3 VariablesHighlightingVisitor: J2K
(cherry picked from commit 77a48c1)
2016-05-25 21:08:34 +02:00
Dmitry Jemerov
6e19b7dc30 VariablesHighlightingVisitor: rename to .kt
(cherry picked from commit 4ddbe98)
2016-05-25 21:08:29 +02:00
Dmitry Jemerov
93b7e84ee8 PropertiesHighlightingVisitor: cleanup after J2K, remove "property has backing field" highlighting, don't layer other highlights
(cherry picked from commit c7cd86f)
2016-05-25 21:08:22 +02:00
Dmitry Jemerov
9542fd3e7c PropertiesHighlightingVisitor: j2K
(cherry picked from commit b76585e)
2016-05-25 21:08:14 +02:00
Dmitry Jemerov
44fbae0530 PropertiesHighlightingVisitor: rename to .kt
(cherry picked from commit 41cd55b)
2016-05-25 21:08:08 +02:00
Dmitry Jemerov
bc0d7cf64e FunctionsHighlightingVisitor: cleanup after J2K, remove overlaid highlighting of function calls
(cherry picked from commit 5512043)
2016-05-25 21:08:03 +02:00
Dmitry Jemerov
e26410a307 FunctionsHighlightingVisitor: J2K
(cherry picked from commit c515740)
2016-05-25 21:07:57 +02:00
Dmitry Jemerov
9da5de9271 FunctionsHighlightingVisitor: rename to .kt
(cherry picked from commit 83b5028)
2016-05-25 21:07:51 +02:00
Dmitry Jemerov
f3fad4ad07 Kotlin with Gradle: generate 'repositories' call, use kotlin_version property
#KT-11841 Fixed
(cherry picked from commit 855ddf9)
2016-05-25 15:44:25 +02:00
Dmitry Jemerov
2898fce39d call BuildManager.clearState(project) in apply() method of Kotlin Compiler Settings configurable
#KT-10255 Fixed
(cherry picked from commit ccbb3d0)
2016-05-25 15:44:03 +02:00
Dmitry Jemerov
522df6f1f8 add icon for Kotlin annotation classes
#KT-11814 Fixed
(cherry picked from commit 1865750)
2016-05-25 15:43:46 +02:00
Dmitry Jemerov
2aae0a1a7d always show current plugin version in update check dialog
#KT-12076 Fixed
(cherry picked from commit 22d3789)
2016-05-25 15:43:27 +02:00
Dmitry Jemerov
4e5e2ae08e "Configure Kotlin plugin updates" is a dumb-aware action
#KT-12075 Fixed
(cherry picked from commit b8eb1da)
2016-05-25 15:43:04 +02:00
Dmitry Jemerov
f86e01fca8 help ID for compiler configuration page
#KT-12110 Fixed
(cherry picked from commit 83798f5)
2016-05-25 15:42:57 +02:00
Dmitry Jemerov
709aa92bd8 remove unnecessary ? from 'serr' live template
#KT-12289 Fixed
(cherry picked from commit e920c35)
2016-05-25 15:42:33 +02:00
Pavel V. Talanov
76bf4a71e7 lightClassUtils: Fix CCE when trying to obtain KtLightTypeParameter
#KT-12259 Fixed
2016-05-25 15:56:53 +03:00
Pavel V. Talanov
4f771fdb55 'const val' are now considered constants by Java in IDEA
#KT-12026 Fixed
2016-05-25 15:56:51 +03:00
Pavel V. Talanov
3b4069c996 Implement getLanguageLevel for FakeFileForLightClass
#KT-12006 Fixed
2016-05-25 15:56:49 +03:00
Pavel V. Talanov
bd1d4034fd Replace usages of blocking lazy to LazyThreadSafetyMode.PUBLICATION in light classes to prevent potential deadlocks 2016-05-25 15:41:51 +03:00
Pavel V. Talanov
18636e6ae7 Fix deadlock: synchronized lazy in KtLightModifierListWithExplicitModifiers 2016-05-25 15:41:50 +03:00
Nikolay Krasko
4d6a69011e Update to idea 2016.1.2 2016-05-24 17:46:20 +03:00
Nikolay Krasko
b1d84bc89b More write action requirement remove
Workaround for exception: Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock
2016-05-24 17:45:25 +03:00
Nikolay Krasko
40509366b8 Don't request write action for ChangeParameterTypeFix because it's based on refactoring
Workaround for exception: Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock
2016-05-24 17:45:25 +03:00
Nikolay Krasko
4de95d5abf Don't request write action for RemoveUnusedFunctionParameterFix because it's based on refactoring (KT-12440)
Workaround for exception: Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock

 #KT-12440 Fixed
2016-05-24 17:45:25 +03:00
Nikolay Krasko
e6fd73c500 Don't request write action for ReplaceExplicitFunctionLiteralParamWithItIntention because it's based on refactoring (KT-12436)
Workaround for exception: Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock

 #KT-12436 Fixed
2016-05-24 17:45:25 +03:00
Mikhail Glukhikh
eccbb499fe Minor refactoring: convert to block body
(cherry picked from commit 9e487a6)
2016-05-24 17:41:45 +03:00
Mikhail Glukhikh
613e5b1968 Convert to block body: when expression with Unit result is now handled as "return needed" #KT-12193 Fixed
(cherry picked from commit fa5e284)
2016-05-24 17:41:42 +03:00
Mikhail Glukhikh
9e10893462 REDUNDANT_OPEN_FOR_INTERFACE warning: reported for open members without implementation #KT-12452 Fixed
(cherry picked from commit 9a69b8b)
2016-05-24 17:41:38 +03:00
Mikhail Glukhikh
dbe179ebde Default modality is abstract for interface. REDUNDANT_MODIFIER_FOR_TARGET applicability reduced #KT-12302 Fixed
(cherry picked from commit e66acd8)
2016-05-24 17:41:34 +03:00
Mikhail Glukhikh
0d129f9d10 KT-12302: ABSTRACT_MODIFIER_IN_INTERFACE warning is removed as obsolete
(cherry picked from commit 93defed)
2016-05-24 17:41:31 +03:00
Pavel V. Talanov
0745f2e4bf REPL UI: fix history pane not showing latest command after command execution 2016-05-24 17:34:34 +03:00
Pavel V. Talanov
81ef3c5684 ProjectRootsUtil: accept directories and jar roots if "includeClassFiles == true" 2016-05-24 15:32:42 +03:00
Pavel V. Talanov
daad2a529c Implement IdeReplCompletionTest to test completion of entities declared in already evaluated lines 2016-05-24 15:32:41 +03:00
Pavel V. Talanov
01717e8f8c Minor: prettify ReplState 2016-05-24 15:32:40 +03:00
Pavel V. Talanov
ff389f99a3 Use ReplState to implement completion in IDE REPL
Consider sucessfully evaluated lines as previous lines when analyzing console file
2016-05-24 15:32:40 +03:00
Pavel V. Talanov
89910692d0 Limit resolve scope when completing in module sources 2016-05-24 15:32:39 +03:00
Pavel V. Talanov
1bd0c54bd6 implicitReceiversUtils: Script descriptors are implicit receivers
This fixes completion in repl
2016-05-24 15:32:38 +03:00
Pavel V. Talanov
2a7c0db825 Move ReplState to frontend 2016-05-24 15:32:37 +03:00
Pavel V. Talanov
c0ca947cbb Minor: Rename KotlinReplTest 2016-05-24 15:32:37 +03:00
Pavel V. Talanov
ac8afae2e0 Fix import resolution in Repl
#KT-11428 Fixed

 Refactor ReplState to be a component
2016-05-24 15:32:36 +03:00
Pavel V. Talanov
e3aa5d183f Minor: ScopeUtils: avoid wrapping lexical scopes several times 2016-05-24 15:32:35 +03:00
Pavel V. Talanov
cc9adf15e1 Refactor: replace LastLineScopeProvider with ReplState, extract FileScopeFactory from FileScopeProviderImpl 2016-05-24 15:32:34 +03:00
Pavel V. Talanov
192a8edbee Refactor: extract resolve related code from ReplInterpreter to CliReplAnalyzerEngine 2016-05-24 15:32:33 +03:00
Mikhail Glukhikh
d40f851e52 Build fix (1.0.3 vs 1.1 difference) 2016-05-24 10:13:15 +03:00
Mikhail Glukhikh
2a9805f77c Only private constructors for sealed / enum classes #KT-12377 Fixed
Also #KT-8497 Fixed
(cherry picked from commit 1a8181b)
2016-05-23 17:50:35 +03:00
Mikhail Glukhikh
eaef198878 Annotation parameters now cannot be mutable #KT-12367 Fixed
(cherry picked from commit cffdce9)
2016-05-23 17:49:29 +03:00
Mikhail Glukhikh
d553327c7e Cleanup: simplify for
(cherry picked from commit ceb4aa7)
2016-05-23 12:27:19 +03:00
Mikhail Glukhikh
366be38453 Cleanup: val can be parameter
(cherry picked from commit ebd57fa)
2016-05-23 12:27:11 +03:00
Alexey Andreev
88cb987558 JS: improve performance of Hashtable-based collections 2016-05-23 12:24:29 +03:00
Alexey Andreev
1dad7f1625 KT-11086 Treat initializer of a companion object as a class initializer 2016-05-23 12:24:29 +03:00
Alexey Andreev
ffbd6b41a7 KT-7424: add test to show that inlining works for anonymous functions 2016-05-23 12:24:29 +03:00
Alexey Andreev
cf01144fa9 KT-8386: pass mutable list to JsInvocation from intrinsic generator, so that inliner had a chance to replace arguments 2016-05-23 12:24:28 +03:00
Pavel V. Talanov
97f2b0df3e Implement "Decompile Kotlin to Java" action
Add this action to "Attach sources" notification panel if present
 #KT-11657 Fixed
2016-05-23 12:04:42 +03:00
Pavel V. Talanov
4fc3c6b41f Minor: typo in changeLog 2016-05-23 11:52:57 +03:00
Alexander Udalov
fcf19b9db4 Remove SAFE_CALL_IN_QUALIFIER diagnostic which was never reported
See UNEXPECTED_SAFE_CALL which is reported instead
2016-05-20 22:40:55 +02:00
Alexander Udalov
38bcacd988 Do not produce trailing space when rendering root package header 2016-05-20 22:40:41 +02:00
Nikolay Krasko
a37e7a782b Restore packing plugin-api module output to plugin 2016-05-20 20:04:05 +03:00
Nikolay Krasko
413ab743cd Check there's no direct usages of asm (org.objectweb.asm) library in project
Such usages should be replaced with asm from idea (org.jetbrains.org.objectweb.asm)
2016-05-20 16:00:54 +03:00
Nikolay Krasko
92c3b1f570 Don't use reference to asm directly. Use asm from Idea instead. 2016-05-20 16:00:54 +03:00
Stanislav Erokhin
543ae45eec Fixed type checking recursive problem.
#KT-11995 Fixed
2016-05-20 09:28:59 +03:00
Pavel V. Talanov
69156f22fb Minor, missed '#' 2016-05-19 22:06:38 +03:00
Pavel V. Talanov
305fe89d30 Update ChangeLog for 1.0.3
Improve ticket number presentation for 1.0.3
2016-05-19 22:03:17 +03:00
Ilya Gorbunov
6be6726b5d Do not deploy anymore kotlin maven plugin tests and build common test utilities to maven central
(cherry picked from commit fda9797dc4)
2016-05-19 18:31:15 +03:00
Ilya Gorbunov
23ce84721c Sanitize escape sequences when verifying maven output
(cherry picked from commit bdf80ec747)
2016-05-19 18:31:15 +03:00
Ilya Gorbunov
5000772ddc Specify kotlin snapshot version in maven plugin integration tests only once.
(cherry picked from commit 7f5b586e3f)
2016-05-19 18:31:15 +03:00
Zalim Bashorov
f197ee5363 JS backend: use ResolvedCall when translate super expression and remove some heuristics when translate receivers; generate right receiver when reference to super of outer class;
(cherry picked from commit 7b1afd4)
2016-05-19 17:37:35 +03:00
Alexey Sedunov
695e20a48e Spring Support: Show autowiring candidates line markers for @Autowired-annotated constructors and constructor parameters
#KT-12120 Fixed
(cherry picked from commit 26be254)
2016-05-19 15:09:20 +03:00
Alexey Sedunov
0ad6a3802b Spring Support: Fixed bean references in factory method calls
#KT-12384 Fixed
(cherry picked from commit 2bd03fe)
2016-05-19 15:09:19 +03:00
Alexey Sedunov
bf1e2bd0dd Spring Support: Fixed "Spring Facet Code Configuration (Kotlin)" inspection description
#KT-12143 Fixed
(cherry picked from commit 417995b)
2016-05-19 15:09:18 +03:00
Alexey Sedunov
20a7f83915 Spring Support: Report object declarations in "Final Kotlin class or function with Spring annotation" inspection
#KT-12148 Fixed
(cherry picked from commit 53b08a1)
2016-05-19 15:09:17 +03:00
Alexey Sedunov
fa2e925ed7 Spring Support: Fixed "Autowired members defined in invalid Spring bean (Kotlin)" inspection description
#KT-12363 Fixed
(cherry picked from commit aaa42e8)
2016-05-19 15:09:16 +03:00
Alexey Sedunov
d262e462bb Spring Support: Implement Spring @Autowired inspection
#KT-12278 Fixed
 #KT-12147 Fixed
 #KT-12366 Fixed
 #KT-12122 Fixed
(cherry picked from commit 85d07e5)
2016-05-19 15:09:15 +03:00
Alexey Sedunov
02fa66fbaa Refactoring: Extract registerWithElementsUnwrapped() function
(cherry picked from commit 36f3d30)
2016-05-19 15:08:14 +03:00
Mikhail Glukhikh
c081d0b9a9 Simplify for: take into account two or more possible local variables for the same loop parameter property
(cherry picked from commit f81192d)
2016-05-19 14:38:48 +03:00
Mikhail Glukhikh
9085175fb3 Simplify for: take into account local property mutability
(cherry picked from commit 9108ab1)
2016-05-19 14:37:52 +03:00
Mikhail Glukhikh
d4b17dbdfa Simplify for: take into account loop parameter nullability
(cherry picked from commit d0fd3de)
2016-05-19 14:37:37 +03:00
Mikhail Glukhikh
bde4b943fe Simplify for now works even if no variables are declared inside loop #KT-12145 Fixed
(cherry picked from commit a56248a)
2016-05-19 14:35:35 +03:00
Mikhail Glukhikh
6b8a54b230 Import as alias with another name is now counted as usage itself #KT-11933 Fixed
(cherry picked from commit c95e11c)
2016-05-19 14:29:45 +03:00
Mikhail Glukhikh
15c09c483e Cleanup: simplify for
(cherry picked from commit 0cf61b1)
2016-05-19 14:29:31 +03:00
Mikhail Glukhikh
4ba9433187 Simplify for intention: now is not active if map / data class properties aren't used in a loop #KT-11716 Fixed
(cherry picked from commit d366da5)
2016-05-19 14:29:14 +03:00
Mikhail Glukhikh
b5d89c549c Can be parameter inspection: usage in secondary constructor is now handled as property use
(cherry picked from commit 3930184)
2016-05-19 14:28:57 +03:00
Mikhail Glukhikh
a796b66e05 Can be parameter inspection: minor test correction
(cherry picked from commit bc7fbdc)
2016-05-19 14:28:42 +03:00
Mikhail Glukhikh
64fa595716 Can be parameter inspection: handle usage in super call; again #KT-10819 Fixed
(cherry picked from commit b026969)
2016-05-19 14:28:27 +03:00
Alexey Andreev
ec78ab5ffa KT-12254 Prevent JsEmptyExpression from getting into initializer JS when compiling code like val x = throw Exception() 2016-05-19 11:42:32 +03:00
Alexey Andreev
b75677cccd KT-8005 Add test to prove the issue is no more reproducible 2016-05-19 11:38:13 +03:00
Alexey Andreev
fdf15407ea KT-8299 Make proper access to private fields in generated methods of data classes 2016-05-19 11:34:51 +03:00
Alexey Tsvetkov
827b74fc06 Minor: add repository path for android test 2016-05-18 15:41:18 +03:00
Alexey Tsvetkov
06c6234561 Keep order of parsed annotations 2016-05-18 15:41:10 +03:00
Alexey Tsvetkov
fdbf6f10e8 Minor: fix downloading sdk in test 2016-05-18 15:40:54 +03:00
Alexey Tsvetkov
38d7a357fc Avoid cache corruption on compile error
#KT-11874 fixed
2016-05-18 15:40:48 +03:00
Alexey Tsvetkov
2b6b7181e1 Fix Application leak in AbstractAnnotationProcessorBoxTest 2016-05-18 15:40:44 +03:00
Alexey Tsvetkov
5117bf1184 Refactoring: rename ClassBuilderMode entry LIGHT_CLASSES_WITH_METADATA->KAPT 2016-05-18 15:39:43 +03:00
Alexey Tsvetkov
e64649fb0a Fix collecting source retention annotations
#KT-12187 fixed
2016-05-18 15:39:38 +03:00
Alexey Tsvetkov
167dd1a927 Add class stubs dir to stub generation task classpath 2016-05-18 15:39:30 +03:00
Alexey Tsvetkov
f9722393dc Serialize error type to proto when generating stubs 2016-05-18 15:39:27 +03:00
Alexey Tsvetkov
bef65e4283 Refactoring: rename javaAptSourceDir->hackAnnotationDir 2016-05-18 15:39:23 +03:00
Alexey Tsvetkov
dcaf6dcef5 Refactoring: rename AnnotatedElementDescriptor->AnnotatedElement 2016-05-18 15:39:19 +03:00
Alexey Tsvetkov
0cc3f4be3d Exclude compiled files when compiling incrementally 2016-05-18 15:39:16 +03:00
Alexey Tsvetkov
5f8220c937 Report compiled classes when generating kapt stubs 2016-05-18 15:39:12 +03:00
Alexey Tsvetkov
385d335042 Include metadata in light classes for kapt 2016-05-18 15:39:09 +03:00
Alexey Tsvetkov
571f31c743 Fix incremental compilation with kapt generating stubs
Changes:
* map incremental property to compile kotlin after java task
* when generating stubs compile kotlin task should not remove or copy classfiles
2016-05-18 15:38:12 +03:00
Alexey Tsvetkov
626e6657d9 Add kapt incremental tests 2016-05-18 15:38:08 +03:00
Alexey Tsvetkov
fb5390a738 Update kapt annotations file incrementally 2016-05-18 15:38:03 +03:00
Alexey Tsvetkov
a4176b0cbb Serialize KotlinAnnotationProvider 2016-05-18 15:37:59 +03:00
Alexey Tsvetkov
d93d4dc38a Minor: extract constant 2016-05-18 15:37:55 +03:00
Alexey Tsvetkov
4f6317694e Refactoring: make AnnotatedElementDescriptor hierarchy sealed 2016-05-18 15:37:51 +03:00
Alexey Tsvetkov
4f6f3879c6 Pass reader as param 2016-05-18 15:37:47 +03:00
Alexey Tsvetkov
eb84b61b69 Make fun local since it's bound to outer function semantics 2016-05-18 15:37:43 +03:00
Alexey Tsvetkov
0e0dbb25b5 Read annotations during construction of KotlinAnnotationsProvider
The rationale is to access kotlinClassesInternal and annotatedKotlinElementsInternal
in any order
2016-05-18 15:37:38 +03:00
Alexey Tsvetkov
dd740b6e6b Minor: add const 2016-05-18 15:37:34 +03:00
Alexey Tsvetkov
7e359015d6 Pass reader in constructor to KotlinAnnotationProvider 2016-05-18 15:37:30 +03:00
Alexey Tsvetkov
1714b1c092 Make annotation collector tests more thorough 2016-05-18 15:37:27 +03:00
Alexey Tsvetkov
cc7f7103be Refactoring: move kapt tests to separate class 2016-05-18 15:37:23 +03:00
Alexey Tsvetkov
4fc118b20a Prevent compile tasks from running when nothing changes
#KT-10932 fixed
2016-05-18 15:37:13 +03:00
Alexey Tsvetkov
5427d81aa7 Minor: use more recent version of gradle in test 2016-05-18 15:33:21 +03:00
Alexey Tsvetkov
b151a5f6e8 Minor: do not print output in assertion message 2016-05-18 15:33:17 +03:00
Alexey Tsvetkov
73afad23b3 Refactoring: extract properties for gradle task's properties access in plugin 2016-05-18 15:33:13 +03:00
Mikhail Glukhikh
d4b27e2649 Unused symbol inspection refactoring: no use of bundled unused.*
(cherry picked from commit 20bff9f)
2016-05-18 14:51:59 +03:00
Mikhail Glukhikh
f1131da000 Overridden functions using default arguments in recursive call are no more considered tail recursive #KT-4285 Fixed
(cherry picked from commit a4ad995)
2016-05-18 14:51:48 +03:00
Mikhail Glukhikh
73a9c1568f Exhaustive when with 'Unit' result now also generates an exception in else branch #KT-12192 Fixed
(cherry picked from commit f35fd32)
2016-05-18 14:51:37 +03:00
Sergey Mashkov
529777fa0b KT-12074 Building Kotlin maven projects using a parent pom will silently fail
integration tests
2016-05-18 14:48:38 +03:00
Sergey Mashkov
79b1764554 Maven: add maven plugin multimodule test 2016-05-18 14:48:38 +03:00
Sergey Mashkov
b80115be88 KT-12074 Building Kotlin maven projects using a parent pom will silently fail
We should consider module's basedir if there is relative source directory specified for the execution
2016-05-18 14:48:38 +03:00
Nikolay Krasko
3d0d002bd6 Remove unused import 2016-05-18 14:18:52 +03:00
Ilya Gorbunov
f1c7b50814 Change memory growth assertions in testKotlinOnlyDaemonMemory: ensure that the maximum of the used memory established after several first builds doesn't raise significantly in the subsequent builds. Current constraint is 500K per 10 builds which gives 50K per build at average.
(cherry picked from commit 5ba8046b48)
2016-05-18 05:49:14 +03:00
Nikolay Krasko
4d35991a1c Remove unused method that causes compatibility problem in update AS plugin 2016-05-17 21:37:22 +03:00
Dmitry Jemerov
c23e8713a4 remove duplicate source root; update testdata according to the appearance of decompiler in dependencies
(cherry picked from commit fd78424)
2016-05-17 19:55:05 +02:00
Sergey Mashkov
518a030fe5 Maven: fix integration tests 2016-05-17 18:18:25 +03:00
Alexey Andreev
2255bde6e1 Minor style and formatting improvements of CallArgumentsTranslator 2016-05-17 10:34:03 +03:00
Alexey Andreev
2c7714e5d9 KT-12305 Fix passing single argument to native vararg function 2016-05-17 10:34:03 +03:00
Mikhail Glukhikh
6c4223ee44 Do not return primary constructor as an analyzable parent, probably #EA-73679 Fixed
(cherry picked from commit 79852e9)
2016-05-16 18:54:56 +03:00
Dmitry Jemerov
55c7c37da4 add "Decompile" button to Kotlin Bytecode toolwindow
(cherry picked from commit 1653f9f)
2016-05-16 16:05:56 +02:00
Alexey Sedunov
0ad6c8cefe Minor: Move META-INF to "resources" source root
(cherry picked from commit 60f23e9)
2016-05-16 14:16:27 +03:00
Alexey Sedunov
4e5e6c0b46 Code Insight: Suppress file reference completion on typing. Disable file references on string literals with escape sequences
(cherry picked from commit 29310b5)
2016-05-16 14:16:10 +03:00
Alexey Sedunov
51c49eba48 Spring Support: Replace light elements bound to line markers with their originals
#KT-12091 Fixed
(cherry picked from commit edb3fd8)
2016-05-16 14:16:00 +03:00
Mikhail Glukhikh
5113cb2935 'Long' type is now stored for 'Long' literal #KT-12267 Fixed
(cherry picked from commit 182ade1)
2016-05-16 11:21:14 +03:00
Mikhail Glukhikh
42ba9cf03f Code cleanup: protected is effectively private
(cherry picked from commit 9bd3be6)
2016-05-16 11:21:01 +03:00
Mikhail Glukhikh
28089434ad Code cleanup: redundant modality (minor)
(cherry picked from commit e31806e)
2016-05-16 11:20:48 +03:00
Mikhail Glukhikh
1726a31c6b Code cleanup: redundant visibility (minor)
(cherry picked from commit 1301d90)
2016-05-16 11:20:36 +03:00
Mikhail Glukhikh
b5523e32e2 Code cleanup: type parameters can have in / out variance
(cherry picked from commit 733f3e8)
2016-05-16 11:20:21 +03:00
Yaroslav Ulanovych
3e9da49c2f Fix KT-11839 maven goal to execute kotlin script 2016-05-15 16:12:43 +02:00
Natalia Ukhorskaya
aaae96bba6 Debugger: do not use forceResolveScope for codeFragments in completion and AutoImportFix.
#KT-12137 Fixed
2016-05-13 16:48:53 +03:00
Natalia Ukhorskaya
c452dd0491 Update icon for "New -> Kotlin Activity" Action
Assets were taken from DSGN-2829
2016-05-13 16:45:34 +03:00
Mikhail Glukhikh
93ed1705b9 Unused symbol: take into account possible JUnit static method annotations #KT-11320 Fixed
(cherry picked from commit 6da8ab7)
2016-05-13 16:42:05 +03:00
Mikhail Glukhikh
28c7244901 Unused symbol: secondary constructors are also under analysis #KT-10812 Fixed
(cherry picked from commit 8920e67)
2016-05-13 16:41:51 +03:00
Alexander Udalov
0f88682587 Add empty source jars to kotlin-build-common Maven artifacts
Maven Central requires all artifacts to have sources and javadocs
2016-05-12 23:47:27 +03:00
Valentin Kipyatkov
c5b1256960 KT-12080 Move parameter names higher up in code completion
#KT-12080 Fixed
(cherry picked from commit dd16eb1)
2016-05-12 22:24:41 +03:00
Ilya Gorbunov
c79731dbee Add tests for deserialization of collections persisted with kotlin 1.0
(cherry picked from commit 15dcd3d)
2016-05-12 21:35:06 +03:00
Ilya Gorbunov
4ffa2eaf39 Fix serialVersionUID for EmptyList after introducing RandomAccess interface. #KT-10794
(cherry picked from commit 6a07d5f)
2016-05-12 21:35:01 +03:00
Dmitry Jemerov
b3ccdbc626 specify github revision number in build parameters
(cherry picked from commit 11c0b30)
2016-05-12 17:00:23 +02:00
Nikolay Krasko
3200a17c51 Formatter: Don't enforce empty line between secondary constructors without body (KT-12175)
#KT-12175 Fixed
2016-05-12 17:35:50 +03:00
Nikolay Krasko
7be9805c3d Use left bound element types to tight empty delegation contructor call to declaration
CONSTRUCTOR_DELEGATION_CALL and CONSTRUCTOR_DELEGATION_REFERENCE types were modified.
2016-05-12 17:35:50 +03:00
Nikolay Krasko
d214e347ea Make code fragments files non-physical with event system disabled (KT-12232)
Fix "File copy should be non-physical and non-event-system-enabled! Language=Language:
kotlin; file=JetFile: fragment.kt of class org.jetbrains.kotlin.psi.KtExpressionCodeFragment" assert.

Inspired by Java fragment files

 #KT-12232 Fixed
2016-05-12 17:35:49 +03:00
Mikhael Bogdanov
395d359c7f Disabled dexInProcess and incremental compilation in test android module, explicitly set Xmx for dex process cause of teamcity memory allocation fails
(cherry picked from commit af2cf71)
2016-05-12 16:22:07 +03:00
Mikhael Bogdanov
046bb7348c Added support for 'JVM.INHERIT_MULTIFILE_PARTS' flag in android tests
(cherry picked from commit 1d2a83e)
2016-05-12 16:22:06 +03:00
Mikhael Bogdanov
3ee5272011 Added support for reflection tests on android
(cherry picked from commit ed60cf8)
2016-05-12 16:22:04 +03:00
Mikhael Bogdanov
e8e33b2636 Fix for KT-12125: Wrong increment/decrement on Byte/Char/Short.MAX_VALUE/MIN_VALUE
#KT-12125 Fixed
(cherry picked from commit d6a64af)
2016-05-12 16:22:01 +03:00
Mikhael Bogdanov
47bb721097 Support new tests on android, disabled not applicable ones
(cherry picked from commit ca31ce8)
2016-05-12 16:21:59 +03:00
Nikolay Krasko
ed7197e519 No more patched jflex 1.4.3 in idea repository. Download artifact from maven.
02c7c658e8
2016-05-12 13:53:50 +03:00
Nikolay Krasko
c3a9007ac3 Make downloading idea sources optional 2016-05-12 13:53:49 +03:00
Alexey Sedunov
343192c2ae Spring Support: Implement bean references in @Qualifier annotations
#KT-12092 Fixed
(cherry picked from commit df46a8c)
2016-05-12 13:09:47 +03:00
Alexey Sedunov
d2fc64ff56 Code Insight: Support file path references inside of Kotlin string literals
#KT-11704 Fixed
(cherry picked from commit 4a65b1c)
2016-05-12 13:09:45 +03:00
Alexey Sedunov
ee5b01be5c Spring Support: Support "Autowired members defined in invalid Spring bean" inspection on Kotlin declarations
#KT-12079 Fixed
(cherry picked from commit 44f565e)
2016-05-12 13:09:43 +03:00
Alexey Sedunov
d062b478bd Change Signature: Do not force substitution of error types
#EA-81021 Fixed
(cherry picked from commit d4aa179)
2016-05-12 13:09:42 +03:00
Valentin Kipyatkov
761d171de1 Added missing test data
(cherry picked from commit 0c367c6)
2016-05-11 20:16:38 +03:00
Valentin Kipyatkov
c3d4772e1e Do not use setting specifyFieldTypeByDefault for locals
(cherry picked from commit 9622231)
2016-05-11 20:16:31 +03:00
Valentin Kipyatkov
2245fdc9d5 Better code
(cherry picked from commit bf9e4a3)
2016-05-11 20:16:25 +03:00
Valentin Kipyatkov
2f7e4b0e2a Moved local method out
(cherry picked from commit 07c961d)
2016-05-11 20:16:19 +03:00
Valentin Kipyatkov
89a54a9982 KT-11952 J2K: Assertion failed in PropertyDetectionCache.get on conversion of access to Java constant of anonymous type
#KT-11952 Fixed
(cherry picked from commit bdd425c)
2016-05-11 20:16:12 +03:00
Valentin Kipyatkov
c88d6150e1 Fixed test data
(cherry picked from commit de02b56)
2016-05-11 20:16:06 +03:00
Valentin Kipyatkov
968d4ce680 Minor changes after code review
(cherry picked from commit 70a5540)
2016-05-11 20:15:59 +03:00
Valentin Kipyatkov
a35f80c6c1 KT-4727 J2K: Convert Java code copied from browser or other sources
#KT-4727 Fixed
(cherry picked from commit cca3237)
2016-05-11 20:15:53 +03:00
Valentin Kipyatkov
9932fcfdb8 Renamed class
(cherry picked from commit 4cbb098)
2016-05-11 20:15:46 +03:00
Valentin Kipyatkov
83edb851e3 Support of KT-11255 Support Move Element Left/Right actions for Kotlin (except for enum entries)
#KT-11255 Fixed
(cherry picked from commit 0720794)
2016-05-11 20:15:37 +03:00
Valentin Kipyatkov
9e10127828 Refactored AbstractCodeMoverTest
(cherry picked from commit 7e99a6b)
2016-05-11 20:15:29 +03:00
Valentin Kipyatkov
a0a6d1ee85 Restored lost tests
(cherry picked from commit 06db49b)
2016-05-11 20:15:23 +03:00
Valentin Kipyatkov
926634ab10 Converted to Kotlin
(cherry picked from commit b6301e8)
2016-05-11 20:15:15 +03:00
Valentin Kipyatkov
31d0e08515 KT-11974 Invert if-condition intention loses comments
#KT-11974 Fixed
(cherry picked from commit 8da5af3)
2016-05-11 20:15:05 +03:00
Mikhail Glukhikh
4437222d01 Unused symbol inspection: properties declared in primary constructor are now checked on 'Used' annotations #KT-11120 Fixed
(cherry picked from commit be2b37d)
2016-05-11 19:41:06 +03:00
Mikhail Glukhikh
0d1050d395 Do not try to make object's containing class abstract #KT-11466 Fixed
(cherry picked from commit a098977)
2016-05-11 19:40:55 +03:00
Alexander Udalov
031c1353b7 Update ChangeLog for 1.0.2 2016-05-11 12:20:27 +03:00
Alexey Sedunov
dc99fee4b4 Spring Support: Replace accessor name with property name when processing usages in Kotlin files
#KT-11880 Fixed
(cherry picked from commit 12987de)
2016-05-11 12:03:36 +03:00
Alexey Andreev
302ef0adac KT-11996 Fix issue with referencing outer class in case of inner class constructors and members/properties. Fix issue with referencing outer classes from secondary constructors. Remove unnecessary tests. 2016-05-10 17:56:43 +03:00
Alexey Andreev
37c14137e2 KT-11823 Generate proper argument for closure constructor for this as a free variable. Give some explanation for function that generates closure arguments as well as a clear name. Give explanation to some code in UsageTracker.isSingletonReceiver, augmented by a test case. 2016-05-10 17:55:57 +03:00
Nikolay Krasko
388a323105 Remove write action from refactoring start (KT-11486)
#KT-11486 Fixed
2016-05-10 16:13:35 +03:00
Nikolay Krasko
e9716ee88d Make KtLightModifierList behave like light element and check it in tests 2016-05-10 16:12:15 +03:00
Dmitry Jemerov
25734f92be move KDoc-related logic shared between IDEA and Dokka to ide-common module
(cherry picked from commit 42ba143)
2016-05-10 15:03:03 +02:00
Valentin Kipyatkov
32ca38de8c Fixed dialog with suggestion to process external code shown even when there is nothing to process
(cherry picked from commit 7b1bf4c)
2016-05-10 15:02:15 +03:00
Mikhail Glukhikh
832497773b Can be parameter inspection: usages in all functions are now handled as property usage
(cherry picked from commit 48ba63f)
2016-05-10 13:43:36 +03:00
Ilya Gorbunov
c1153eda3a Document functions which return set or map preserving the order of elements/entries.
#KT-11632 Fixed

(cherry picked from commit d646afabb2)
2016-05-08 03:28:56 +03:00
Dmitry Jemerov
7c3e8ae54a generate correct HTML for code blocks
(cherry picked from commit b5e5c6f)
2016-05-06 22:19:49 +02:00
Dmitry Jemerov
0b93ac51b5 support @receiver KDoc tag; somewhat more precise tag name completion
(cherry picked from commit 94c2414)
2016-05-06 22:18:43 +02:00
Dmitry Jemerov
5fd5be6e1b KDocKnownTag: J2K
(cherry picked from commit 3b57b78)
2016-05-06 22:18:34 +02:00
Dmitry Jemerov
a4ea7d3b2e KDocKnownTag: rename to .kt
(cherry picked from commit 6935cfe)
2016-05-06 22:18:26 +02:00
Dmitry Jemerov
2ba6808559 don't trim whitespace when converting whitespace to HTML
#KT-10998 Fixed
(cherry picked from commit 992817e)
2016-05-06 22:18:09 +02:00
Dmitry Jemerov
156ca8227b preserve leading indentation in KDoc code blocks
#KT-9933 Fixed
(cherry picked from commit d7b1526)
2016-05-06 22:17:36 +02:00
Dmitry Jemerov
077ec0289d integrate Ingo Kegel's Dokka fix for rendering standalone * and _ characters
(cherry picked from commit 721629f)
2016-05-06 22:17:24 +02:00
Dmitry Jemerov
b6b924d4e1 render markdown inside link texts
#KT-11791 Fixed
(cherry picked from commit 6cbf1de)
2016-05-06 22:16:59 +02:00
Dmitry Jemerov
16c391f9bd resolve references from @param to type parameters of functions
#KT-12001 Fixed
(cherry picked from commit c967cc8)
2016-05-06 22:13:33 +02:00
Kirill Rakhman
70e567a09d Add quickfix for UNUSED_LAMBDA_EXPRESSION (#867)
Fixes #KT-9757
(cherry picked from commit 97c3c63)
2016-05-06 17:51:28 +02:00
Kirill
294f5cf98d Don't mark magic Serializable methods as unused
Fixes #KT-10635
(cherry picked from commit 5b6a8dc)
2016-05-06 16:23:55 +02:00
Ilya Chernikov
3e9f302cf6 minor: fix after review 2016-05-06 12:58:51 +02:00
Ilya Chernikov
a450fbb18a minor: Make term "canceled" uniformly spelled in identifiers and strings in the daemon 2016-05-06 12:58:50 +02:00
Ilya Chernikov
e634881f96 Implement graceful connection failure behavior on daemon connect and cancellation check
Should fix (or actually - behave gracefully on) #EA-74003, #EA-74493, #EA-76032, #EA-76529, #EA-81295
Tests added
2016-05-06 12:58:49 +02:00
Ilya Chernikov
ad71747116 minor: Switch to simpler descending sort, reduce dependency 2016-05-06 12:58:48 +02:00
Nikolay Chashnikov
1f0b71abac run configuration: use default logic of creating new run configurations to avoid sharing RunConfigurationModule instances between different run configurations (KT-12204) (#869)
(cherry picked from commit 551aa70)
2016-05-06 11:02:58 +02:00
Valentin Kipyatkov
3a1e15f5c2 KT-12040 "Replace when with if" produce invalid code for first entry which has comment
#KT-12040 Fixed
(cherry picked from commit c45bee5)
2016-05-05 19:02:31 +03:00
Valentin Kipyatkov
44596b3723 KT-12138 Do not show "::error" in smart completion when any function type accepting one argument is expected
(actually made them lowest priority)

 #KT-12138 Fixed
(cherry picked from commit 16c38a2)
2016-05-05 19:02:31 +03:00
Valentin Kipyatkov
4e30143f51 Minor
(cherry picked from commit 81e4114)
2016-05-05 19:02:30 +03:00
Valentin Kipyatkov
db5a0fe4dc KT-12150 Smart completion suggests to compare non-nullable with null
#KT-12150 Fixed
(cherry picked from commit 941b415)
2016-05-05 19:02:30 +03:00
Valentin Kipyatkov
1b1306d372 No explicit runWriteAction required
(cherry picked from commit 40900b0)
2016-05-05 19:02:30 +03:00
Valentin Kipyatkov
ac2ab49e8f KT-12103 Smart completion for nested SAM-adapter produces short unresolved name
#KT-12103 Fixed
(cherry picked from commit 0769c54)
2016-05-05 19:02:29 +03:00
Valentin Kipyatkov
5c61b5dd17 Minor changes on code review
(cherry picked from commit 74b41cf)
2016-05-05 19:02:29 +03:00
Valentin Kipyatkov
5941f40444 KT-12045 J2K: creating Object() instance could be converted to Any()
#KT-12045 Fixed
(cherry picked from commit 92af610)
2016-05-05 19:02:28 +03:00
Valentin Kipyatkov
bca15e24ce KT-12054 J2K generates obj is Type<Any> instead of obj is Type<*>
#KT-12054 Fixed
(cherry picked from commit 76e067c)
2016-05-05 19:02:28 +03:00
Valentin Kipyatkov
81a15d9327 KT-12039 Convert Java to Kotlin -- static imports are imported as Class.CONST (missing .Companion)
#KT-12039 Fixed
(cherry picked from commit a8eef5e)
2016-05-05 19:02:28 +03:00
Valentin Kipyatkov
b01fe77ba2 Minor simplification
(cherry picked from commit a80d36e)
2016-05-05 19:02:27 +03:00
Valentin Kipyatkov
f99e01018e Moved import conversion out of "ast" package
(cherry picked from commit 569483a)
2016-05-05 19:02:27 +03:00
Valentin Kipyatkov
393befe4fa Do not duplicate list of default imports
(cherry picked from commit 83442db)
2016-05-05 19:02:27 +03:00
Valentin Kipyatkov
4d9d11cbfb Extracted methods
(cherry picked from commit 08a37b3)
2016-05-05 19:02:26 +03:00
Valentin Kipyatkov
c8356fb261 KT-12046 Java to Kotlin dangerous conversion (recursive property set)
#KT-12046 Fixed
(cherry picked from commit a9eadcb)
2016-05-05 19:02:26 +03:00
Valentin Kipyatkov
2938092be6 Minor
(cherry picked from commit 9c0e120)
2016-05-05 19:02:26 +03:00
Valentin Kipyatkov
ed099857c0 KT-10770 IDEA cannot keep import if a type is only referenced by kdoc.
#KT-10770 Fixed
(cherry picked from commit e1d8c72)
2016-05-05 19:02:25 +03:00
Valentin Kipyatkov
e5b4eb5c19 KT-12069 Specify language for all Kotlin code inspections
#KT-12069 Fixed
(cherry picked from commit cd2161b)
2016-05-05 19:02:25 +03:00
Valentin Kipyatkov
3239c191fb Highlighting of redundant semicolons
#KT-5010 Fixed
(cherry picked from commit 306edef)
2016-05-05 19:02:25 +03:00
Valentin Kipyatkov
6a6bff90e8 ConvertPropertyInitializerToGetterIntention to not be available inside lambda initializer
(cherry picked from commit 77033f5)
2016-05-05 19:02:24 +03:00
Valentin Kipyatkov
0a410dbbf2 Minor change on code review
(cherry picked from commit a51fe9a)
2016-05-05 19:02:24 +03:00
Valentin Kipyatkov
ea6ddd7aa6 Dropped redundant code which was required for lambda signature completion when the syntax was different
#KT-12033 Fixed
(cherry picked from commit 45d460a)
2016-05-05 19:02:23 +03:00
Valentin Kipyatkov
23cfb1d9f9 KT-12068 Special completion item for "[]" get-operator access
#KT-12068 Fixed
(cherry picked from commit 40022e8)
2016-05-05 19:02:23 +03:00
Valentin Kipyatkov
9295c87845 Completion to complete non-imported classes on the first invocation
#KT-8527 Fixed
(cherry picked from commit deb75b3)
2016-05-05 19:02:23 +03:00
Valentin Kipyatkov
cd3a11c9e2 KT-11680 Code completion of label for existing return with value inserts redundant whitespace
#KT-11680 Fixed
 #KT-9993 Fixed
(cherry picked from commit f0dd70d)
2016-05-05 19:02:22 +03:00
Nikolay Krasko
99f31b66c3 Description for AddJvmOverloadsIntention 2016-05-05 17:32:36 +03:00
Nikolay Krasko
d9c3ef655e Enable JDK 8 level in some tests for correct convert for method references 2016-05-05 17:32:29 +03:00
Alexey Andreev
a9220dd4d8 JS/RTTI: minor refactoring of expandInCalls 2016-05-05 17:29:16 +03:00
Alexey Andreev
6e75886a3d JS/RTTI: if it's known that T <: X & Y, where T is non-reified type variable, for each a is T check that a is X && a is Y 2016-05-05 17:29:15 +03:00
Alexey Andreev
fbab016ba7 JS/RTTI: in expressions like a as T when inferred type for a is S, where S <: T, don't generate type checking 2016-05-05 17:29:14 +03:00
Alexey Andreev
d6d2189344 JS/RTTI. Fix runtime checking against kotlin.CharSequence 2016-05-05 17:29:13 +03:00
Alexey Andreev
c6e18ef0d5 JS/RTTI: fix withInlineTurnedOff test 2016-05-05 17:29:12 +03:00
Alexey Andreev
ab3fca5b64 JS/RTTI: fix compiler crashing when translating expressions like (continue as T) 2016-05-05 17:29:11 +03:00
Zalim Bashorov
aedd3f2d53 JS/RTTI. Fix build and tests 2016-05-05 17:29:10 +03:00
Alexey Tsvetkov
01a32f6318 JS/RTTI. Fix run-time type checking against Comparable 2016-05-05 17:29:09 +03:00
Alexey Tsvetkov
09c5214181 JS/RTTI. Fix RegExpMatch 2016-05-05 17:29:09 +03:00
Alexey Tsvetkov
c243a99947 JS/RTTI: removed Kotlin.orNull(Kotlin.isAny) optimization 2016-05-05 17:29:08 +03:00
Alexey Tsvetkov
88ab4724e4 JS/RTTI: added another cast to reified test 2016-05-05 17:29:07 +03:00
Alexey Tsvetkov
e975106995 JS/RTTI: Added cast to Array test 2016-05-05 17:29:05 +03:00
Alexey Tsvetkov
f44891c367 JS/RTTI: simplify cast to Any test 2016-05-05 17:29:04 +03:00
Alexey Tsvetkov
e940963dd2 JS/RTTI: fixed cast to generic type parameter with upper bound different than Any 2016-05-05 17:29:03 +03:00
Alexey Tsvetkov
eed4b1f2df JS/RTTI: (minor) fixed typo 2016-05-05 17:29:03 +03:00
Alexey Tsvetkov
b8179d9548 JS/RTTI: (minor) escape code fragments in comments 2016-05-05 17:29:02 +03:00
Alexey Tsvetkov
a7b06aabaf JS/RTTI: fix nullability check 2016-05-05 17:29:01 +03:00
Alexey Tsvetkov
0677294afa JS/RTTI: use Array.isArray to check array instance 2016-05-05 17:29:01 +03:00
Alexey Tsvetkov
aaf18f7b7c JS/RTTI: use typeof f === 'function' to check function instance 2016-05-05 17:29:00 +03:00
Alexey Tsvetkov
42baad25fd JS/RTTI: cast to generic type parameter as to Any 2016-05-05 17:28:59 +03:00
Alexey Tsvetkov
2122a30d41 JS/RTTI: fix cast to Any 2016-05-05 17:28:58 +03:00
Alexey Tsvetkov
ad6638da29 JS/RTTI: support safe casts 2016-05-05 17:28:58 +03:00
Alexey Tsvetkov
2aad39e41c JS/RTTI: support unsafe casts
#KT-2670 fixed
2016-05-05 17:28:57 +03:00
Alexey Tsvetkov
5af22ecd3b JS/RTTI: made cast test generated 2016-05-05 17:28:56 +03:00
Alexey Tsvetkov
d7625532be JS/RTTI: test that reified is-check works when inline turned off 2016-05-05 17:28:56 +03:00
Alexey Tsvetkov
73e53d8cf0 JS/RTTI: fixed double testing for null for reified 2016-05-05 17:28:55 +03:00
Alexey Tsvetkov
56191cf988 JS/RTTI: avoid possible side-effect for is-check on nullable type
#KT-7038 fixed
2016-05-05 17:28:54 +03:00
Alexey Tsvetkov
fff9783879 JS/RTTI: use generation for rtti test 2016-05-05 17:28:53 +03:00
Alexey Tsvetkov
e06eb6976e JS/RTTI: fixed is-check on nullable reified parameters
#KT-7016 fixed
    #KT-8012 fixed
2016-05-05 17:28:53 +03:00
Alexander Udalov
e8a89c1060 Revert "Minor, move SpecialNames.isSafeIdentifier check a little earlier"
This reverts commit 6858ec13de.

It turns out, this re-introduces an AssertionError at ClassId.<init> ("Class
name must not be root") when LazyJavaPackageScope#getContributedClassifier is
called during SAM constructor resolution below in
LazyJavaPackageScope#computeNonDeclaredFunctions, which was overlooked at the
time the commit was pushed
2016-05-04 17:45:18 +03:00
Mikhael Bogdanov
780fef14bf 'bytecodeText' test for synthetic accessor generic signature converted to 'writeSignature' test
(cherry picked from commit cd6b709)
2016-05-04 17:19:22 +03:00
Mikhael Bogdanov
a9bcde41d1 Fix for KT-12127: Undeclared type variable on delegated property backing field
#KT-12127 Fixed
(cherry picked from commit ee7bbbf)
2016-05-04 17:19:20 +03:00
Mikhael Bogdanov
f54ce18402 Update android test dependency to android 4.4.2 cause of missed test result problem on 4.1.2
(cherry picked from commit 09509b6)
2016-05-03 09:20:14 +03:00
Michael Bogdanov
d3baf847bf Support test with self imports, kotlin multifile tests
(cherry picked from commit e2ae2f3)
2016-05-03 09:20:12 +03:00
Michael Bogdanov
1f24f8ef75 Fix for "adb: Syntax error: ")" unexpected"
(cherry picked from commit 0f110b0)
2016-05-03 09:20:03 +03:00
Michael Bogdanov
3fbee04549 Ability to run tests via adb
(cherry picked from commit adda3ef)
2016-05-03 09:20:01 +03:00
Michael Bogdanov
5203f0f852 Android tests exclusion
(cherry picked from commit d4a7e36)
2016-05-03 09:20:00 +03:00
Michael Bogdanov
99d3ae396d Switch to gradle from gradle wrapper, use https instead of http to download files
(cherry picked from commit 896429a)
2016-05-03 09:19:58 +03:00
Michael Bogdanov
a62fac14a9 Code clean
(cherry picked from commit 309348c)
2016-05-03 09:19:56 +03:00
Michael Bogdanov
5fb178426c Wait some time before emulator stop, diabled emulator log redirection (otherise result reports would be inconsistent)
~emulator
(cherry picked from commit 7d77f91)
2016-05-03 09:19:54 +03:00
Michael Bogdanov
3093d958b3 More logging on adb server start
(cherry picked from commit be1cb40)
2016-05-03 09:19:52 +03:00
Michael Bogdanov
a3f7e0c769 Support WITH_REFLECT and 'Class.forName' android tests
(cherry picked from commit db6c72d)
2016-05-03 09:19:49 +03:00
Michael Bogdanov
f3b9ba2f06 Wait until emulator booted
(cherry picked from commit ed3d874)
2016-05-03 09:19:33 +03:00
Michael Bogdanov
e15b36e141 Use gradle build instead of ant one for android test module
(cherry picked from commit 2992e23)
2016-05-03 09:19:31 +03:00
Michael Bogdanov
efb6bbde69 Ecluded test from compilation: android report bad class file cause of missed generic parameter definition
(cherry picked from commit 3ad8b5b)
2016-05-03 09:19:29 +03:00
Michael Bogdanov
65ddf8a2c9 Temporary disable lint checks cause of problem with implicit 'stream' import
(cherry picked from commit 0abdc75)
2016-05-03 09:19:27 +03:00
Michael Bogdanov
eab688f5c1 Added support for tests with 'JvmName' annotation
(cherry picked from commit 3cebb7c)
2016-05-03 09:19:25 +03:00
Michael Bogdanov
bf77b1dc40 Call 'invokeBox' with proper class instance (not try to find it via reflection)
(cherry picked from commit 11e42c6)
2016-05-03 09:19:24 +03:00
Michael Bogdanov
7d7aa9ff05 Added gradle android test project
(cherry picked from commit 1eb3d2e)
2016-05-03 09:19:22 +03:00
Michael Bogdanov
21a21c55b7 Writing android sdk to local.properties
(cherry picked from commit 1f84ff7)
2016-05-03 09:19:20 +03:00
Ilya Gorbunov
5f4d716f5e Handle special cases of drop, take, takeLast when it is known in advance that the result is a single-item list. #KT-9990
(cherry picked from commit 249d08a66e)
2016-04-30 05:33:21 +03:00
Ilya Gorbunov
64f7009480 Change evaluation test data not to encounter special implementation of single element list.
(cherry picked from commit d70b46fd37)
2016-04-30 05:33:16 +03:00
Ilya Gorbunov
2a7814b2bb Optimize operations to return special collection implementations when result is empty or has single element.
#KT-9990

(cherry picked from commit a665b2183c)
2016-04-30 05:33:09 +03:00
Ilya Gorbunov
40e901f46e Remove runtime specialization in inline last and lastOrNull to prevent double inlining of predicate body.
(cherry picked from commit 2d12ed68c8)
2016-04-30 05:33:03 +03:00
Ilya Gorbunov
3b187abbe1 Do not use indexed access for lists not supporting RandomAccess
Add RandomAccess specialization.

(cherry picked from commit 09c1ff1233)
2016-04-30 05:32:57 +03:00
Ilya Gorbunov
3b9dcc11b2 Use list iterators instead of indexed access in operations on lists taking a lambda.
Related to #KT-9607

(cherry picked from commit f4f82656f7)
2016-04-30 05:32:51 +03:00
Nikolay Krasko
3b29421f6f Do not request write action for MoveDeclarationToSeparateFileIntention (EA-81511)
There's nothing but delegation to move refactoring. This started to fail in br146 because of this commit:
334772b7a8
2016-04-29 21:50:35 +03:00
Nikolay Krasko
9c9b64efea Revert another class of ComparisonFailure
Idea throws this class but not org.junit.ComparisonFailure
2016-04-29 21:50:34 +03:00
Nikolay Krasko
51de23f66f Fix path replacement in reference tests
The commit fixes ReferenceResolveInJavaTestGenerated$BinaryAndSource.testFileFacade.
2016-04-29 21:50:33 +03:00
Zalim Bashorov
97c1fedf38 Fix NoSuchMethodError when try to access in test to internal member from production for gradle projects imported into IDEA 16 or higher
#KT-11993 Fixed
(cherry picked from commit ed0fa2c)
2016-04-29 18:27:06 +03:00
Alexander Udalov
6e7388737a Do not locate running build in override.version
A build was finding itself with such request every time which made the version
override pointless
2016-04-29 17:21:06 +03:00
Alexander Udalov
2c77a23943 Update ChangeLog for 1.0.2 2016-04-29 15:44:41 +03:00
Alexander Udalov
6858ec13de Minor, move SpecialNames.isSafeIdentifier check a little earlier 2016-04-29 15:32:31 +03:00
Alexander Udalov
c6194d925c Minor optimization of lookup tracker records 2016-04-29 15:32:29 +03:00
Alexander Udalov
853200aa98 Combine Java package scope and Kotlin scopes in JvmPackageScope
Use it in LazyJavaPackageFragment#scope instead of a weird lazy chained scope.
Also move lookup tracker records to it, to prevent them from being written in
each package scope individually (this was hurting performance)
2016-04-29 15:32:27 +03:00
Alexander Udalov
9f63317900 Optimize class lookups in DeserializedPackageMemberScope
Do not try to load classes (and litter in ClassDeserializer#classes cache with
unsuccessful requests) which the deserialized scope knows nothing about. This
is possible because deserialized scopes have the full list of their class names
2016-04-29 15:32:24 +03:00
Kirill Rakhman
ce84e168d1 Implement Intention to add @JvmOverloads
Fixes #KT-11523
(cherry picked from commit 8e5481b)
2016-04-29 13:39:16 +02:00
Kirill Rakhman
d506346db3 Add quickfix to make referenced primary constructor parameter a property
Fixes #KT-12089
(cherry picked from commit f309920)
2016-04-29 12:16:09 +02:00
Kirill Rakhman
17cfee37b9 Quick fix for SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE
Fixes #KT-11876
(cherry picked from commit 1c5322b)
2016-04-29 11:54:12 +02:00
Mikhail Glukhikh
3cd9bb9f86 IDEA: unnecessary 'val's removed from constructors
(cherry picked from commit 84a3f72)
2016-04-29 09:19:02 +03:00
Mikhail Glukhikh
0ff15c38a3 Core & compiler: unnecessary 'val's removed from constructors
(cherry picked from commit 5a66ef2)
2016-04-29 09:18:51 +03:00
Mikhail Glukhikh
831469f4d9 Android: unnecessary 'val's removed from constructors
(cherry picked from commit ee46c34)
2016-04-29 09:18:42 +03:00
Mikhail Glukhikh
f7b212b449 UAST: unnecessary 'val' removed from constructor
(cherry picked from commit 5c9d6fd)
2016-04-29 09:18:33 +03:00
Mikhail Glukhikh
3d3b061c31 JS: unnecessary 'val' removed from constructor
(cherry picked from commit a4be89e)
2016-04-29 09:10:38 +03:00
Kirill Rakhman
6f874e6dbc Add intrinsic for KCallable.name property Fixes #KT-11531 2016-04-28 23:04:06 +03:00
Ilya Gorbunov
f60cc2a2f7 reified assertFailsWith available in kotlin-test for JS
#KT-11346

(cherry picked from commit 4b533b297e)
2016-04-28 21:11:04 +03:00
Ilya Gorbunov
f9bc1b8c3b Make stdlib functions dependent on reified is checks available in JS.
#KT-11346 Fixed

(cherry picked from commit 409094f0f7)
2016-04-28 21:11:03 +03:00
Ilya Gorbunov
73be96e304 JS: Make AbstractList.size pure abstract.
#KT-7228 Fixed

(cherry picked from commit a5fd95c7d9)
2016-04-28 21:11:02 +03:00
Nikolay Krasko
42ec16c32f Check that injection with annotation on parameter doesn't trigger not-stubbed psi 2016-04-28 16:22:38 +03:00
Nikolay Krasko
247e435752 Don't analyze function body if only parameter analyze is requested 2016-04-28 16:22:38 +03:00
Nikolay Krasko
fd21f5ee80 Missing new line in error message (KT-12070)
#KT-12070 Fixed
2016-04-28 16:22:37 +03:00
Nikolay Krasko
0644a54883 Use partial resolve for annotation search 2016-04-28 16:22:36 +03:00
Nikolay Krasko
6117b822ab Use kotlin specific methods for pattern creation 2016-04-28 16:22:35 +03:00
Nikolay Krasko
6270ed81bf Refactoring: use language injection in ResolveElementCache.kt 2016-04-28 16:22:35 +03:00
Nikolay Krasko
249180f9f0 Refactoring: return injection tests to single test-class 2016-04-28 16:22:34 +03:00
Nikolay Krasko
93f8c711af Enable bootstrapping against 1.0.3 in 1.0.3 branch
This also should enable version auto-increment.
2016-04-28 13:41:14 +03:00
Kirill Rakhman
1f5a861402 Add quickfix to add 'toString' (#866)
Fixes #KT-12121
(cherry picked from commit 2629d23)
2016-04-28 11:31:29 +02:00
Nikolay Krasko
1a2c67cb4b Test data modification: Don't compute compiled bytecode for same expression twice
Result of dc9fa6d9ac commit.
Previously computation were saved into the map that were invalidated by the computation. Now map is recreated after computation and result is saved into it.
2016-04-28 00:14:02 +03:00
Sergey Mashkov
45daf1f42b Maven: rebase to master 2016-04-27 22:10:51 +03:00
Sergey Mashkov
65985b184f Maven: review 2016-04-27 22:10:50 +03:00
Sergey Mashkov
ec113ac691 Maven: convert to Kotlin 2016-04-27 22:10:50 +03:00
Sergey Mashkov
31a57190e0 Maven: reorganize code: move classes across packages 2016-04-27 22:10:49 +03:00
Sergey Mashkov
adad2ef5fe Maven: inspection maven plugin and ide plugin should have the same version 2016-04-27 22:10:49 +03:00
Sergey Mashkov
5e8f91bd2a Maven: versions inspection: kotlin plugin and library should have the same version 2016-04-27 22:10:49 +03:00
Sergey Mashkov
b49693f30f Maven: kotlin-maven-plugin configuration source dirs completion 2016-04-27 22:10:48 +03:00
Sergey Mashkov
5f826b7ff4 KT-11743 Intention to replace kotlin-test with kotlin-test-junit 2016-04-27 22:10:48 +03:00
Sergey Mashkov
c50c111fdf Maven: never generate JUnit (but keep code so we will be able to introduce checkbox in configurator to optionally add junit and chose version) 2016-04-27 22:10:47 +03:00
Sergey Mashkov
b20aa6e5bd KT-11731 Default maven integration doesn't include documentation
trigger sources download for stdlib/runtime/test at project import
2016-04-27 22:10:47 +03:00
Sergey Mashkov
4927d6cce2 Maven: extract maven support to the separate module 2016-04-27 22:10:47 +03:00
Sergey Mashkov
693ea83924 KT-11556 "Kotlin not configured" in Kotlin/JS project 2016-04-27 22:10:46 +03:00
Sergey Mashkov
4ed3befa71 KT-11701 Add Maven Dependency quick fix could be supported in Kotlin sources
~ initial draft
2016-04-27 22:10:46 +03:00
Sergey Mashkov
82b26e009a KT-11436 "Choose Configurator" control opens dialogs with inconsistent modality (linux) 2016-04-27 22:10:45 +03:00
Sergey Mashkov
5814197257 KT-11643 Inspections and intentions to fix misconfigured Maven pom
make misconfigured maven project configurable
2016-04-27 22:10:45 +03:00
Sergey Mashkov
4e4f7438f1 KT-11643 Inspections and intentions to fix misconfigured Maven pom 2016-04-27 22:10:45 +03:00
Sergey Mashkov
faf758ffdd KT-9492 Configuring multiple Maven Modules
- kotlin mavne configurator shouldn't configure child modules but parents as children inherit everything
2016-04-27 22:10:44 +03:00
Sergey Mashkov
cd5c533351 KT-11642 Kotlin Maven configurator tags order 2016-04-27 22:10:44 +03:00
Mikhail Glukhikh
1ad77837cf Correct handling of empty super type list while adding an entry #KT-12011 Fixed
(cherry picked from commit 918f843)
2016-04-27 18:48:49 +03:00
Mikhail Glukhikh
82c331d03d Can be parameter inspection: use inside object literals is now handled as "property use"
(cherry picked from commit 1744897)
2016-04-27 18:48:34 +03:00
Mikhail Glukhikh
97330a72cd Can be parameter inspection: use in selector position is now always handled as "property use"
(cherry picked from commit 64ae9af)
2016-04-27 18:48:23 +03:00
Mikhail Glukhikh
c04153910f Can be parameter inspection: use inside function literals is now handled as "property use" #KT-11949 Fixed
(cherry picked from commit 795b924)
2016-04-27 18:48:11 +03:00
Alexey Sedunov
6ae2d28cf5 Change Signature: Do not use local declaration as a context for a type code fragment
(cherry picked from commit e6ab2f1)
2016-04-27 18:27:45 +03:00
Mikhail Glukhikh
e104817ed1 Regular checkType() is now called during condition analysis, TYPE_MISMATCH_IN_CONDITION removed #KT-11998 Fixed
(cherry picked from commit 6b945ba)
2016-04-27 18:20:31 +03:00
Alexander Udalov
e402b82f00 Consider non-running as well as running builds in version override 2016-04-27 14:13:44 +03:00
Alexander Udalov
88ad4bb956 Perform version override earlier and only on teamcity 2016-04-27 10:56:06 +03:00
Mikhail Zarechenskiy
e9b1476112 Move part of code that related to 'Optimize imports' action to ide-common module 2016-04-26 21:34:20 +03:00
Mikhail Zarechenskiy
4ea9332892 Get rid of guava's collections and dependency on Idea's settings from util function
This commit prepares 'prepareOptimizedImports' function to
move to the ide-common module to reuse it in the Eclipse plugin
2016-04-26 21:34:12 +03:00
Nikolay Krasko
a19fc430cd Do no analyze for annotation search if no annotation entries present 2016-04-26 20:46:53 +03:00
Nikolay Krasko
c914583a7a Add note about fixing deadlock in debugger (KT-12067) 2016-04-26 20:46:52 +03:00
Nikolay Krasko
fcfa0b0297 Enable injection in injection tests 2016-04-26 20:46:51 +03:00
Nikolay Krasko
9fde765e22 Make parameter injection work for Java methods 2016-04-26 20:46:51 +03:00
Nikolay Krasko
437e5e98cc First version of injection with annotation on parameter 2016-04-26 20:46:50 +03:00
Nikolay Krasko
2aeea4ef0e Implement withAnnotation() pattern for parameter pattern 2016-04-26 20:46:49 +03:00
Nikolay Krasko
d0304a251e Refactoring replace trimMargin() with trimIndent(). This is preparation for injection bootstrapping in tests. 2016-04-26 20:46:48 +03:00
Nikolay Krasko
7d2698473d Add write action for shorten references in finish template after building call (KT-12056)
Write action was removed in idea 146

#KT-12056 Fixed
2016-04-26 20:46:47 +03:00
Nikolay Krasko
51ab247bc5 Add write action for shortening references in templates (KT-11418)
Write action was removed in idea 146.

#KT-11418 Fixed
2016-04-26 20:46:46 +03:00
Nikolay Krasko
ff83391e97 Revert write actions in utility code (EA-81892)
Revert commits:
ab0fe0a900
97a97614b5
2016-04-26 20:46:46 +03:00
Nikolay Krasko
3c97ae4c5c Auto-test running intention isApplicable() from pooled thread 2016-04-26 20:46:45 +03:00
Alexey Sedunov
917a8f09db Change Signature: Fix context element for type code fragments to avoid bogus "Type can not be resolved" warnings
#KT-11862 Fixed
(cherry picked from commit 9858b17)
2016-04-26 20:17:20 +03:00
Zalim Bashorov
a523fd3742 Minor: fix tests
(cherry picked from commit 3048c29)
2016-04-26 19:13:28 +03:00
Alexey Andreev
fe2b7d6060 KT-11100 Fix generation of name of FakeCallableDescriptorForObject that is presumably used to express invoke operator on (companion) objects 2016-04-26 17:08:09 +03:00
Kirill
ce5e02bd20 Format spaces in infix call (KT-12018)
#KT-12018 Fixed
2016-04-26 15:44:23 +03:00
Kirill
212bb21e7c Format spaces in cast expression (KT-12035)
#KT-12035 Fixed
2016-04-26 15:44:14 +03:00
Alexey Sedunov
ea22c0f891 Move: Optimize imports after applying "Move declaration to separate file" intention
#KT-10174 Fixed
(cherry picked from commit a00c524)
2016-04-26 14:08:50 +03:00
Alexey Sedunov
a0e2193383 Move: Keep original file package name when moving top-level declarations to separate file (provided it's not ambiguous)
#KT-10950 Fixed
(cherry picked from commit 676000c)
2016-04-26 14:08:42 +03:00
Alexey Sedunov
711ae62ed2 Move: Allow choosing source root in "Move file to directory" intention
#KT-11512 Fixed
(cherry picked from commit 332fe29)
2016-04-26 14:08:34 +03:00
Alexey Sedunov
f5df3b7d7e Move: Convert implicit receiver to this when moving class member to companion object
#KT-11483 Fixed
(cherry picked from commit aaa873f)
2016-04-26 14:08:21 +03:00
Alexey Sedunov
77a0fb4e01 Move: Add missing write action
#KT-11482 Fixed
(cherry picked from commit 6faedc1)
2016-04-26 14:08:11 +03:00
Denis Zharkov
cd8305b07a Use different version numbers for 1.0.3 2016-04-25 18:57:01 +03:00
Zalim Bashorov
cfaa68317a Add Unit to compiled part of Kotlin JS stdlib and don't show "Kotlin not configured" for Kotlin JS projects
#KT-11556 Fixed

(cherry picked from commit 658eac2)
2016-04-25 18:04:38 +03:00
Michael Bogdanov
3858515e44 Added kotlin-test.jar to android module dependency 2016-04-25 17:39:13 +03:00
Michael Bogdanov
b092c04145 Removed debug counter 2016-04-25 17:39:13 +03:00
Stanislav Erokhin
f9130ae133 Do not force calculation of lower and upper bounds in java flexible type. 2016-04-25 15:28:49 +03:00
Stanislav Erokhin
45ac1d2cb5 Refactoring. Remove FlexibleTypeFactoryDeserializer. 2016-04-25 15:28:49 +03:00
Stanislav Erokhin
a6a9caa3cd Minor. Remove Dynamicity. 2016-04-25 15:28:48 +03:00
Stanislav Erokhin
ca74f0d86e Add assertion into DynamicTypeFactory about type range. 2016-04-25 15:28:48 +03:00
Stanislav Erokhin
8f32eeb663 Refactoring. Merge Specificity and NullAwareness into Flexibility. 2016-04-25 15:28:47 +03:00
Stanislav Erokhin
feec3566a4 Refactoring. Minor refactoring and cleanup in FlexibleTypes. 2016-04-25 15:28:47 +03:00
Stanislav Erokhin
a1d052b8fa Refactoring. Remove FlexibleTypeFactory.DEFAULT and refactor flexible type creation by special fq-name for tests. 2016-04-25 15:28:46 +03:00
Stanislav Erokhin
0a4ad3f267 Refactoring. Rename FlexibleTypeCapabilities -> FlexibleTypeFactory. Also use factory.create instead of DelegatingFlexibleType.create. 2016-04-25 15:28:46 +03:00
Stanislav Erokhin
c25e2e34a2 Optimization. Do not create objects for flexible type capabilities. 2016-04-25 15:28:45 +03:00
Michael Bogdanov
75d7390a94 Rollback: set permissions via 'chmod' 2016-04-25 14:33:22 +03:00
Michael Bogdanov
18f90a331c Run android test configuration with java 8 2016-04-25 14:33:21 +03:00
Michael Bogdanov
4e95a52152 'generators' dependency replaced with 'descriptors.loader.java' in 'android-test' module 2016-04-25 14:33:21 +03:00
Michael Bogdanov
af2a3b14c7 Temporary exclude 'box' test with self imports 2016-04-25 14:33:20 +03:00
Michael Bogdanov
9238b7ba80 Use mock jdk for tests that not require full one 2016-04-25 14:33:20 +03:00
Michael Bogdanov
bc16be9735 Support for WITH_RUNTIME test on android 2016-04-25 14:33:19 +03:00
Michael Bogdanov
6228b11048 Properly patch package name in case of file annotations on default package 2016-04-25 14:33:19 +03:00
Alexey Sedunov
797465a06b Rename: Do not use Change Signature for parameter renaming 2016-04-25 10:38:40 +03:00
Alexey Sedunov
d456aa6ba8 Rename: Fix Find Usages/Rename for parameter references in XML files
#KT-11967 Fixed
2016-04-25 10:38:39 +03:00
Alexey Sedunov
6a1387b9b9 Safe Delete: Delete interface reference from super-type list when applying Safe Delete to Java interface
#KT-11282 Fixed
2016-04-25 10:38:38 +03:00
Alexey Sedunov
613a274c90 Safe Delete: Fixed usages search when applied to simple enum entries
#KT-11816 Fixed
2016-04-25 10:38:37 +03:00
Alexey Sedunov
b35834dd18 Rename: Fixed rename of Kotlin enum constants/@JvmField properties through Java references
#KT-11817 Fixed
2016-04-25 10:38:35 +03:00
Alexey Sedunov
070923f03a Introduce Parameter: Fixed title of declaration chooser
#KT-11617 Fixed
2016-04-25 10:38:34 +03:00
Alexey Sedunov
cc5c3c2353 Rename: Fixed rename of Java getters/setters through synthetic property references in Kotlin
#KT-8817 Fixed
2016-04-25 10:38:33 +03:00
Mikhail Glukhikh
a45165838a Build fix: quick fix multi file test 2016-04-24 13:09:37 +03:00
Mikhail Glukhikh
cac986baf7 Refactoring: change visibility on exposure 2016-04-23 20:48:25 +03:00
Mikhail Glukhikh
b1195fc519 Change to private fix made high priority action 2016-04-23 20:48:00 +03:00
Mikhail Glukhikh
d8e47bd520 Change visibility fix message (quotes) + list of available actions in tests 2016-04-23 20:25:18 +03:00
Mikhail Glukhikh
7e80575a08 Minor refactoring: MakeVisibleFactory 2016-04-23 12:57:47 +03:00
Mikhail Glukhikh
e6a7cd97ff Change visibility on exposure now reports all possible visibilities 2016-04-23 10:01:10 +03:00
Mikhail Glukhikh
a2501463a8 Minor refactoring: change visibility on exposure (exposing -> user) 2016-04-23 10:01:08 +03:00
Mikhail Glukhikh
0217e6104f Refactoring: IncreaseExposed + DecreaseExposing = ChangeVisibilityOnExposure 2016-04-23 10:01:05 +03:00
Mikhail Glukhikh
8938752cf9 Make visible now suggests all possible visibilities 2016-04-23 10:01:02 +03:00
Mikhail Glukhikh
d5b9a336a3 Decrease visibility fix is now active for exposed visibility errors #KT-11920 Fixed 2016-04-23 10:00:59 +03:00
Mikhail Glukhikh
934c374030 Refactoring: IncreaseVisibilityFix --> ChangeVisibilityFix + MakeVisibleFactory + IncreaseExposedVisibilityFactory 2016-04-23 10:00:56 +03:00
Mikhail Glukhikh
fe44671b6a KT-11920: Increase visibility fix is now active for exposed visibility errors 2016-04-23 10:00:53 +03:00
Alexander Udalov
04db491dd4 Update ChangeLog for 1.0.2 2016-04-22 21:22:57 +03:00
Yan Zhulanow
d478b90fb8 Lint: Fix KT-12009: IAE at JavaContext.getLocation() 2016-04-22 19:48:28 +03:00
Yan Zhulanow
9ea7a4f112 Lint: run inspections only for Kotlin 2016-04-22 19:48:28 +03:00
Yan Zhulanow
04ed20c574 Lint: Remove AssertDetector (unrelated to Kotlin) 2016-04-22 19:48:28 +03:00
Yan Zhulanow
cbe21ab568 Minor: Fix Uast blinking tests 2016-04-22 19:48:28 +03:00
Yan Zhulanow
16b831196a Fix EA-81689 2016-04-22 19:48:28 +03:00
Yan Zhulanow
4298559858 Minor: fix sparam -> setparam 2016-04-22 19:48:28 +03:00
Michael Bogdanov
ba1aab7e3e Temporary use ARMV7 target to run emulator 2016-04-22 18:22:52 +03:00
Michael Bogdanov
18b879102a Do nothing if there is no files to write 2016-04-22 18:22:52 +03:00
Michael Bogdanov
1b9fa25ac6 Temporary skip multi-file box tests and box tests with stdlib/reflection 2016-04-22 18:22:51 +03:00
Michael Bogdanov
82786bb97e Temporary exclude 'box' test with imports 2016-04-22 18:22:51 +03:00
Michael Bogdanov
518cc7aa7f Workaround for wrong recognized exception in result log 2016-04-22 18:22:50 +03:00
Michael Bogdanov
a9a917a99e Use 'kill -s 9' to finish process 2016-04-22 18:22:50 +03:00
Michael Bogdanov
a9ce6f71f6 Firstly try to stop emulator via adb then via kill process 2016-04-22 18:22:49 +03:00
Michael Bogdanov
10f557105b File name to package class mapping updated to new single file facade scheme 2016-04-22 18:22:48 +03:00
Michael Bogdanov
e9a2b8628c Added x86 abi to android tests 2016-04-22 18:22:48 +03:00
Michael Bogdanov
fbbb614e80 PermissionManager updated to new android tools structure 2016-04-22 18:22:47 +03:00
Michael Bogdanov
a17c2c5c0e SdkDownloader refactoring, updated to last android tools 2016-04-22 18:22:46 +03:00
Dmitry Petrov
f3c006a5f5 RedundantCoercionToUnitTransformer: do not create individual objects for each transformation. 2016-04-22 17:38:44 +03:00
Mikhail Glukhikh
6980d28eb0 Refactoring: ControlFlowInstructionsGenerator.handleJumpInsideTryFinally 2016-04-22 15:17:01 +03:00
Mikhail Glukhikh
d24528f6bb Control flow analysis: nested finally blocks now appear in correct order in CFG #KT-4764 Fixed 2016-04-22 15:16:57 +03:00
Mikhail Glukhikh
a5b428d9ce Refactoring: CFG.LexicalScope --> CFG.BlockScope #KT-11965 Fixed 2016-04-22 15:16:54 +03:00
Mikhail Glukhikh
cda4d2dcce CFG.LexicalScope minor refactoring 2016-04-22 15:16:50 +03:00
Nikolay Krasko
5f7f46ff6c Remove MaxPermSize parameter 2016-04-22 14:17:52 +03:00
Nikolay Krasko
dc9fa6d9ac Don't compute cached values under lock - this can cause a deadlock
Three threads needed to reproduce:
 - Thread 1. Doesn't hold RW lock, starts computation and locks the cached lock (L)
 - Thread 2. Holds R lock and want to get same computation result. It's now locked on (L)
 - Thread 3. Any thread that want to get W lock. It's now locked on because of Thread 2

If Thread 1. wants to get R lock it will be stacked because of Thread 3. It's sometimes not possible to get a read lock
while some thread is already waiting on W.
2016-04-22 14:17:52 +03:00
Nikolay Krasko
aafd009cbe More information in changelog about injection 2016-04-22 14:17:52 +03:00
Alexey Andreev
0869eb7ef3 KT-6201 KT-6203 KT-6326 KT-6777 Add test cases to prove that issues are no longer reproducible 2016-04-22 10:16:58 +03:00
Yan Zhulanow
33f9a0c798 Lint: Review changes 2016-04-21 20:08:46 +03:00
Yan Zhulanow
d7faef63b6 Lint: Fix KT-11922: ClassCastException: org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl cannot be cast to org.jetbrains.kotlin.descriptors.ClassDescriptor 2016-04-21 20:08:46 +03:00
Yan Zhulanow
a2b1eb7ee8 Lint: Fix KT-11919 ("Missing Parcelable CREATOR field" rule is not accurate) 2016-04-21 20:08:46 +03:00
Yan Zhulanow
33434a3c5b Lint: Fix KT-11939 (@SuppressLint("PrivateResource") doesn't work) 2016-04-21 20:08:46 +03:00
Yan Zhulanow
574aa5debe Lint: Fix KT-11924 (False positive on beginTransaction() should be completed with a commit() call) 2016-04-21 20:08:46 +03:00
Yan Zhulanow
35fca9171c Lint, Minor: Fix compilation 2016-04-21 20:08:46 +03:00
Yan Zhulanow
5008c6d8fc Lint, Uast: Fix Java function descriptor calculation KT-11923 2016-04-21 20:08:46 +03:00
Yan Zhulanow
aa06cd8f7d Lint: Fix EA-81466 2016-04-21 20:08:46 +03:00
Yan Zhulanow
64dbba8e2c Lint: Fix EA-81613, EA-81468 2016-04-21 20:08:46 +03:00
Michael Bogdanov
7335f2394b Sort result ranges in SMAP class 2016-04-21 17:32:03 +03:00
Michael Bogdanov
d945c47b63 Skip line numbers that couldn't be mapped by SourceMappers 2016-04-21 17:32:03 +03:00
Alexey Sedunov
021c88e5ff Find Usages: Fixed searching of Java usages for @JvmStatic properties and @JvmStatic @JvmOverloads functions
#KT-11736 Fixed
2016-04-21 16:40:19 +03:00
Alexey Sedunov
1635018fe7 Override/Implement: Use function body template when generating functions with default body
#KT-11807 Fixed
2016-04-21 16:40:17 +03:00
Alexey Sedunov
df07554764 Find Usages: Start read action for derived class search
#KT-11845 Fixed
2016-04-21 16:39:18 +03:00
Nikolay Krasko
39e6b893a7 Teach getOwnerFunction() in KtParamter work with stubs 2016-04-21 15:25:10 +03:00
Nikolay Krasko
c62d906d5c Minor: test methods rename 2016-04-21 15:25:09 +03:00
Nikolay Krasko
b0433b2904 Prevent stepping through indirect assignments in injection search 2016-04-21 15:25:08 +03:00
Nikolay Krasko
505c6624a7 Inject predefined places through usages 2016-04-21 15:25:06 +03:00
Nikolay Krasko
62ff67c2b0 Disable complex injection search in DFA == OFF mode 2016-04-21 15:25:05 +03:00
Nikolay Krasko
9590c9a10b Add note about injection feature to ChangeLog 2016-04-21 15:25:04 +03:00
Nikolay Krasko
d69d1f2c53 Support toRegex() standard function
#KT-8088 Fixed
2016-04-21 15:25:02 +03:00
Nikolay Krasko
6bea3923f5 Injection test refactoring 2016-04-21 15:25:01 +03:00
Nikolay Krasko
42084b0529 Allow injection for all Regex constructors
#KT-8088 In Progress
2016-04-21 15:25:00 +03:00
Nikolay Krasko
c6e48d8e59 First version of Kotlin patterns in injection
#KT-8088 In Progress
2016-04-21 15:24:58 +03:00
Mikhail Glukhikh
a12faf5baf KtDeclaration.containingClassOrObject now works correctly for primary constructor and its parameters #KT-11982 Fixed 2016-04-21 14:21:40 +03:00
Nikolay Krasko
454a8474f1 Write Action: Add write action for template finish processor (KT-11418) 2016-04-21 13:14:51 +03:00
Nikolay Krasko
97a97614b5 Write Action: Wrap import insertion with write action 2016-04-21 13:14:50 +03:00
Nikolay Krasko
ab0fe0a900 Write Action: Add write action for deleting qualifier in shortenReferences
Problem revealed after template listners are executed without write action
5c2c946265
2016-04-21 13:14:48 +03:00
Nikolay Krasko
143fd4ee08 Update until version for new idea build numbering 2016-04-21 13:14:47 +03:00
Alexey Andreev
7b76fa6103 KT-11030 Remove tests for diagnostics for local classes in JS backend 2016-04-20 18:12:25 +03:00
Alexey Andreev
ade5477c33 KT-11030 Initialization order of enum entries in JS now conforms to JVM backend 2016-04-20 18:12:25 +03:00
Alexey Andreev
87ea0bd0cb KT-11030 Minor code improvements 2016-04-20 18:12:25 +03:00
Alexey Andreev
166b985fca KT-11028 Add test for the issue 2016-04-20 18:12:24 +03:00
Alexey Andreev
4ac730e5ed KT-11030 Fix referencing wrong field generated for captured variable when this captured variable referenced both from constructor and non-constructor method. Avoid duplicate generation of call to delegated constructor. 2016-04-20 18:12:24 +03:00
Alexey Andreev
a5e0c70988 KT-11611 Prevent duplicate generation of default values of secondary constructor parameters 2016-04-20 18:12:23 +03:00
Alexey Andreev
7afca74b94 KT-11030 When constructor of object expression calls super constructor, place this call at object creation instead of object's constructor. This allows to capture outer this reference properly in certain cases. JVM backend uses the same approach 2016-04-20 18:12:23 +03:00
Alexey Andreev
03dc9c0fa4 KT-11030 Refactor translation of class to support secondary constructors of local classes 2016-04-20 18:12:23 +03:00
Alexey Andreev
e305898f84 KT-11030 Simplify code and refactor generation of object expressions 2016-04-20 18:12:22 +03:00
Alexey Andreev
c1c57a06bb KT-11030 Refactoring code to properly implement secondary constructors in local classes 2016-04-20 18:12:22 +03:00
Alexey Andreev
b39c16cb6c KT-11030 Fix translation of secondary constructors of inner classes 2016-04-20 18:12:22 +03:00
Alexey Andreev
7af4b2fdb2 KT-11030 Fix subclassing of local class by local class 2016-04-20 18:12:21 +03:00
Alexey Andreev
d9504dfe2b KT-11030 When local function is declared inside constructor, capture this into this function 2016-04-20 18:12:21 +03:00
Alexey Andreev
a74c613ec5 KT-11030 Make copy method of local data classes to copy captured variables 2016-04-20 18:12:21 +03:00
Alexey Andreev
a21b5ad4e6 KT-11030 Fix capturing of local variables via by expression, i.e. object : ClassName by v where v is local variable 2016-04-20 18:12:20 +03:00
Alexey Andreev
af0280ca7a KT-11030 Repair support of enums. Minor refactoring of ClassTranslator 2016-04-20 18:12:20 +03:00
Alexey Andreev
47dde9520d KT-11030 Don't capture companion objects into closure 2016-04-20 18:12:15 +03:00
Alexey Andreev
1bded9d66f KT-11030 Fix translation of FQN of native companion objects 2016-04-20 18:01:08 +03:00
Alexey Andreev
6967ebcc8c KT-11030 Copy static properties of object's class to instance of object (think about moving local functions to member methods in objects) 2016-04-20 18:01:08 +03:00
Alexey Andreev
00292f4125 KT-11030 Avoid name clash between member fields and fields that store closure of local classes 2016-04-20 18:01:07 +03:00
Alexey Andreev
337078faf3 KT-11030 Unify concept of objects and companion objects. Fix order of initialization of nested objects. 2016-04-20 18:01:07 +03:00
Alexey Andreev
8e7d949dd4 KT-11030 Implements closures in classes. Represent local object literals as classes 2016-04-20 18:01:07 +03:00
Alexey Andreev
1f8c3375fe KT-11030 Implements local classes that don't have closure 2016-04-20 18:01:06 +03:00
Alexey Andreev
7ca6102cac KT-11030 Disable error reporting of local classes in JS backend 2016-04-20 18:01:06 +03:00
Alexey Andreev
3e11209d8a KT-11030 Borrow test for local classes from JVM backend 2016-04-20 17:49:03 +03:00
Michael Bogdanov
9a8474392d Code clean 2016-04-20 17:07:17 +03:00
Michael Bogdanov
2cec779c14 'visitLineNumber' replaced with 'mapLineNumber' in SourceMapper 2016-04-20 17:07:16 +03:00
Michael Bogdanov
c70e1c6065 SourceMappers refactoring 2016-04-20 17:07:15 +03:00
Michael Bogdanov
bb5c24eae5 Old SourceMappers replaced with new ones 2016-04-20 17:07:15 +03:00
Michael Bogdanov
68f5e4d10e Added debug strata to test data 2016-04-20 17:07:14 +03:00
Michael Bogdanov
9fe9a1742b Debugger navigation strata processing update 2016-04-20 17:07:14 +03:00
Natalia Ukhorskaya
02c5e005fe Debugger: navigate to call site of inline function
#KT-11438 Fixed
2016-04-20 17:07:13 +03:00
Michael Bogdanov
bdd24cfa7d Temporary rollback change cause of merge conflict 2016-04-20 17:07:12 +03:00
Michael Bogdanov
af68f3d019 Added additional strata for stacktraces 2016-04-20 17:07:12 +03:00
Michael Bogdanov
f6edf311d7 Optimization in NestedSourceMapper 2016-04-20 17:07:11 +03:00
Michael Bogdanov
636c13adde Small optimization in InlineLambdaSourceMapper 2016-04-20 17:07:11 +03:00
Michael Bogdanov
0a46cea799 TODO: optimize smap - do preproccessing 2016-04-20 17:07:10 +03:00
Michael Bogdanov
faca68297c Updated line numbers tests 2016-04-20 17:07:09 +03:00
Michael Bogdanov
ab2d3665a4 SourceMapper api refactoring 2016-04-20 17:07:08 +03:00
Michael Bogdanov
225e90bbdf Removed redundant cache, small rename refactoring after removing 2016-04-20 17:07:08 +03:00
Michael Bogdanov
286da1fc5f Properly calculate maxUsedValue 2016-04-20 17:07:07 +03:00
Michael Bogdanov
dfabad324b Additional checker for smap 2016-04-20 17:07:07 +03:00
Michael Bogdanov
ff820bddc0 New source mapping 2016-04-20 17:07:06 +03:00
Valentin Kipyatkov
cb615c557a Minor change on code review 2016-04-20 14:30:54 +03:00
Valentin Kipyatkov
e6580b0cdb Simplified code 2016-04-20 14:30:54 +03:00
Valentin Kipyatkov
1535e8ad90 KT-11955 Copy/Paste inserts FQ-name
#KT-11955 Fixed
2016-04-20 14:30:54 +03:00
Valentin Kipyatkov
364a8801a3 Correct keyword completion after try in assignment 2016-04-20 14:30:54 +03:00
Valentin Kipyatkov
4f9f5c205f Added flags "runForWholeFile" for inspections into XML because overriding method does not work 2016-04-20 14:30:53 +03:00
Valentin Kipyatkov
a68dbe78d8 KT-11594 "Add non-null asserted (!!) call" applied to unsafe cast to nullable type causes AE at KtPsiFactory.createExpression()
#KT-11594 Fixed
2016-04-20 14:30:53 +03:00
Valentin Kipyatkov
b5e89713cd KT-11275 Inconsistent behaviour when using lambda calls with function arguments without parens
#KT-11275 Fixed
2016-04-20 14:30:53 +03:00
Valentin Kipyatkov
50e7079efc Better message for CanBeValInspection 2016-04-20 14:30:53 +03:00
Valentin Kipyatkov
ecdaaea88d Never report companion object as unused
#KT-11366 Fixed
2016-04-20 14:30:52 +03:00
Alexey Tsvetkov
f2ba83adf2 Minor: slightly increase memory limit for gradle daemon test 2016-04-20 13:44:51 +03:00
Mikhail Glukhikh
771fb0ace2 Compiler warning on identical enum constant / is type entries #KT-4829 Fixed 2016-04-20 12:21:31 +03:00
Mikhail Glukhikh
d7ecd12737 Minor refactoring: PatternMatchingTypingVisitor 2016-04-20 12:21:27 +03:00
Mikhail Glukhikh
5ec7b5bef0 Minor refactoring: WhenChecker 2016-04-20 12:21:22 +03:00
Dmitry Petrov
420c7a0285 KT-11111:
- override by a final inline fun is a warning
- override by a fun with reified type parameters is an error
2016-04-20 11:59:03 +03:00
Dmitry Petrov
ef0f512201 java 2 kt: InlineAnalyzerExtension, convert 2016-04-20 11:59:03 +03:00
Dmitry Petrov
4c1694493a java 2 kt: InlineAnalyzerExtension, rename 2016-04-20 11:59:02 +03:00
Nikolay Krasko
2e993a0e1e Reformat template after end 2016-04-19 21:28:02 +03:00
Nikolay Krasko
f2a17bc4c2 Formatter doesn't handle space before angle bracket in method definition (KT-11961)
#KT-11961 Fixed
2016-04-19 21:28:00 +03:00
Nikolay Krasko
1baed30ef6 Remove outdated plugin configuration
The idea was to run idea with JRE 1.7 instead of 1.6, but now main IDEA run configuration executes under JRE 1.8.
2016-04-19 21:27:59 +03:00
Alexey Sedunov
548d0cd4e5 Spring Support: Model diagram support for Kotlin classes
#KT-11692 In Progress
2016-04-19 20:27:42 +03:00
Alexey Sedunov
38522b09ce Code Insight: Allow properties with custom setters to be used in generated equals/hashCode/toString
#KT-11908 Fixed
2016-04-19 20:27:41 +03:00
Alexey Sedunov
beb5d5e271 Create from Usage: Suggest "Create secondary constructor" on NONE_APPLICABLE error
#KT-11866 Fixed
2016-04-19 20:27:39 +03:00
Alexey Sedunov
aa4bfadfb1 Intentions: Implement "Introduce local variable" intention
#KT-11768 Fixed
2016-04-19 20:27:37 +03:00
Alexey Sedunov
d75edb9876 Override/Implement Action: Generate abstract overrides for Any members inside of Kotlin interfaces
#KT-11659 Fixed
2016-04-19 20:27:35 +03:00
Alexey Sedunov
3c79eab2fd Line Markers: Show recursion line markers for extension function calls with different receivers
#KT-11495 Fixed
2016-04-19 20:27:33 +03:00
Alexey Sedunov
c93e13e28d JUnit Support: Allow running multiple Kotlin classes as well as running mixtures of Kotlin and Java classes
#KT-11155 Fixed
2016-04-19 20:27:32 +03:00
Alexey Sedunov
a65026f584 Introduce Parameter: Run usages search under progress manager
#KT-11145 Fixed
2016-04-19 20:27:29 +03:00
Alexey Sedunov
754e7cac52 Light Classes: Replace accessor with property name when renaming KtProperty/KtParameter through its light methods
#KT-11880 Fixed
2016-04-19 20:27:28 +03:00
Alexey Sedunov
c21dff66aa Spring Support: Allow injection of SpEL into string literals with escape sequences
#KT-11904 Fixed
2016-04-19 20:27:26 +03:00
Alexey Sedunov
68776be186 Find Usages: Drop obsolete assertion
#KT-11895 Fixed
2016-04-19 20:27:23 +03:00
Yan Zhulanow
9b1402d804 Fix "No error on increment or augmented assignment when 'get' is an operator but 'set' is not" #KT-11300 2016-04-19 19:24:38 +03:00
Yan Zhulanow
371e80bcba Android Extensions: Do not upcast ViewStub to View (KT-10321) 2016-04-19 18:47:51 +03:00
Yan Zhulanow
6e14c11280 Android Extensions: handle layout file rename 2016-04-19 18:47:51 +03:00
Yan Zhulanow
47b3394f62 Android Extensions: regenerate properties when layout is renamed/deleted/added (KT-11944) 2016-04-19 18:47:51 +03:00
Yan Zhulanow
9e33b7d3bc Android Extensions: support identifiers with packages (KT-10841) 2016-04-19 18:47:51 +03:00
Alexander Udalov
0494e1d258 Minor, add KtDoubleColonExpression#isEmptyLHS utility 2016-04-19 18:37:21 +03:00
Alexander Udalov
fa31994442 J2K KtQualifiedExpression and subclasses: convert
Also merge KtQualifiedExpressionImpl into KtQualifiedExpression and remove
calls from subclasses
2016-04-19 18:37:20 +03:00
Alexander Udalov
093c2f63d4 J2K KtQualifiedExpression and subclasses: rename .java -> .kt 2016-04-19 18:37:19 +03:00
Alexander Udalov
9c99152126 Do not consider error results successful in '::' LHS resolution
Fixes EA-81649
2016-04-19 18:37:02 +03:00
Alexander Udalov
be62caf335 Extract '::' type-checking code to DoubleColonExpressionResolver 2016-04-19 18:28:25 +03:00
Alexander Udalov
4706d4eaea Minor, restructure parsing test case for '::' 2016-04-19 18:28:24 +03:00
Valentin Kipyatkov
3dc32fb5db Minor change on code review 2016-04-19 15:22:06 +03:00
Valentin Kipyatkov
bade304bf3 Better presentation 2016-04-19 15:22:06 +03:00
Valentin Kipyatkov
022075995b KT-11957 No "catch" and "finally" keywords in completion
#KT-11957 Fixed
2016-04-19 15:22:06 +03:00
Valentin Kipyatkov
c7a96401da Refactoring 2016-04-19 15:22:06 +03:00
Valentin Kipyatkov
2a3b87f783 KT-11784 Completion for 'if' statement should add parentheses automatically
#KT-11784 Fixed
2016-04-19 15:22:06 +03:00
Valentin Kipyatkov
bf4a376831 Use CommentSaver instead of manual comment handling 2016-04-19 15:22:05 +03:00
Valentin Kipyatkov
e72e6bf7db KT-11870 "Replace with Elvis" refactoring doesn't change the variable type from T? to T
#KT-11870 Fixed
2016-04-19 15:22:05 +03:00
Valentin Kipyatkov
6bdf3622ed KT-11890 Completion for callable references does not propose static Java members
#KT-11890 Fixed
2016-04-19 15:22:05 +03:00
Valentin Kipyatkov
f3bb3e9c6e KT-11912 String interpolation is not converted to ${} form when accessing this.property
#KT-11912 Fixed
2016-04-19 15:22:05 +03:00
Dmitry Petrov
e441f0509f KT-11943 Do not use intrinsic 'java' property if receiver type is not acceptable 2016-04-19 10:31:30 +03:00
Valentin Kipyatkov
120bced842 Fixing build 2016-04-18 23:05:59 +03:00
Alexey Tsvetkov
23c21396f7 Make Kotlin2JsGradlePluginIT test compatible with gradle 2.x 2016-04-18 22:12:08 +03:00
Alexey Tsvetkov
51104a5c2b Make gradle daemon thread leak test more thorough
Former test made the following assertion:
for any of 3 sequent builds on the same gradle daemon
the difference in used memory between build start and finish
should not exceed 2500 kb.

Current test makes the following assertion:
the difference of used memory after first and last
of 10 sequent builds on the same daemon should not exceed 200 kb.
2016-04-18 21:31:41 +03:00
Alexey Tsvetkov
d446e60e70 Remove ThreadTracker from gradle plugin
ThreadTracker was introduced to detect memory leaks
when using gradle daemon. However, it makes
quite strong assumption about build lifecycle:
there should not be any builds started after
kotlin plugin is configured that are alive when
buildFinished callback is called.

This assumption can be broken by some gradle configurations
namely our android tests and gradle 2.13-rc.

Since we already have daemon memory leak test (KotlinGradlePluginIT#testKotlinOnlyDaemonMemory),
after some discussion it was decided to remove ThreadTracker
2016-04-18 21:31:41 +03:00
Alexander Udalov
2df8e56b94 Do not store project in JPS tests after they're executed
This saves a couple dozen megabytes currently
2016-04-18 17:26:59 +03:00
Alexander Udalov
e941ba761a Minor, fix case in test data file name 2016-04-18 17:26:58 +03:00
Valentin Kipyatkov
bd5af61879 Moved ShortenReferences from idea-analysis to idea-core, added dependency from idea-analysis to idea-core 2016-04-18 17:15:52 +03:00
Valentin Kipyatkov
da4dee3716 Moved generateUtil.kt into idea-core 2016-04-18 17:15:52 +03:00
Valentin Kipyatkov
b32859cf68 KT-11633 Kotlin code editor applies wrong indentation after completing a statement in data class
#KT-11633 Fixed
2016-04-18 17:15:52 +03:00
Ilya Chernikov
6b3a691367 Fix KT-10507 - "missing extension point" with parallel compilation 2016-04-18 15:16:48 +02:00
Mikhail Glukhikh
3f266647f0 Does not replace explicit lambda parameter with 'it' if conflicting nested literal available #KT-11849 Fixed 2016-04-18 15:26:42 +03:00
Nikolay Krasko
2e1a2fa8d1 Fallback to default source provider for non-gradle projects 2016-04-18 14:06:45 +03:00
Mikhail Glukhikh
c7b2042b77 Do not suggest to add variance modifier if both in and out are possible 2016-04-18 13:40:55 +03:00
Mikhail Glukhikh
e60930d5ce Add variance modifier fix corrected: primary constructor parameters are taken into account 2016-04-18 13:40:50 +03:00
Alexander Udalov
027cc898e7 Minor, fix warnings in core/ modules 2016-04-17 13:35:17 +03:00
Mikhail Zarechenskiy
f773966458 Create artifact with 'formatter' module output to share it with Eclipse plugin 2016-04-15 18:15:13 +03:00
Mikhail Zarechenskiy
37e0b71584 Split KotlinBlock on two clases to share independent logic about
formatting  between Idea and Eclipse

 Also make 'formatter' module depend on fewer dependencies
2016-04-15 18:15:13 +03:00
Mikhail Zarechenskiy
4c006300ef Move files related to formatting to module 'formatter' as is 2016-04-15 18:15:13 +03:00
Mikhail Zarechenskiy
a7c397fe84 Create 'formatter' module
Purpose of this module is to extract common code  about formatting and reuse it in Eclipse
2016-04-15 18:15:13 +03:00
Mikhail Zarechenskiy
ac1ca890fd J2K KotlinBlock: convert and prettify
Also get rid of ContainerUtil
2016-04-15 18:15:13 +03:00
Mikhail Zarechenskiy
22289cf337 J2K KotlinBlock: rename 2016-04-15 18:15:13 +03:00
Natalia Ukhorskaya
e8f46f5315 Debugger: 'Step Over' unexpectedly resume if condition of 'while' loop contains inline function call
#KT-11932 Fixed
2016-04-15 18:11:36 +03:00
Natalia Ukhorskaya
f0badb05ea Debugger: fix step over for inline argument with non-local return 2016-04-15 18:11:36 +03:00
Natalia Ukhorskaya
f0cfd450e5 Debugger: fix step over inside inline function (do not step into function literal argument) 2016-04-15 18:11:36 +03:00
Alexey Andreev
8ad339836d KT-11875 Moves code that uncovers the following JS function:
```
function foo (closureParam, closureParam2, ...) {
    return function() {
        // function body
    }
}
```

from FunctionContext to FunctionInlineMutator. The old code causes bug when calling this function like this: `foo(this, ...)`, since first `closureParam` is replaced with `this`. Later, FunctionInlineMutator can't make difference between original `this` inside *function body* and former `closureParam` reference that became `this` after replacement. So, let FunctionInlineMutator replace `this` in *function body* and then substitute closure parameters.

KT-11875 Fixed
2016-04-15 17:35:30 +03:00
Natalia Ukhorskaya
8129901d82 Minor: clarify exception messages during Evaluate Expression 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
316057873b Fix EA-72969 - assert: ExtractFunctionForDebuggerUtilKt$getFunctionForExtractedFragment$.invoke : ERROR_TYPES
Context element for codeFragment can be a KtFile (not  only KtExpression) ex. in case when file was changed after debugger starts and there is no expression at line with breakpoint
2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
7fb3099206 Fix EA-80854 - IOOBE: KotlinLineBreakpointType.getLambdaByOrdinal.
This could happen when breakpoint in lambda was set but than the code changed and there is no lambdas at this line anymore
2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
a929df6fa1 Debugger, minor: do not throw NPE when receiverTypes are null in completion 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
d42823d4ee Debugger: cannot evaluate expression with raw types
#KT-11831 Fixed
2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
070ee10872 Debugger: do not insert ambiguous imports inside codeFragments
#KT-11927 Fixed
2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
d7a87b2ff0 Debugger: fix breakpoints inside generic crossinline argument body
#KT-11848 Fixed
2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
7a5ab93f9e Debugger: write line number for catch clause declaration 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
8e3ec5b7f0 Debugger: fix breakpoints inside inline functions in libraries sources 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
3ef51159b8 Debugger: remove unnecessary whitespaces in presentation of line breakpoint variants 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
e55a1ad49c Get correct target platform for codeFragments 2016-04-15 15:58:07 +03:00
Natalia Ukhorskaya
0d4fa46cfa Debugger: correct scope for runtime type calculation 2016-04-15 15:58:07 +03:00
Mikhail Glukhikh
e806341cdc Increase visibility: make not available in case of potential exposed visibility problems (see KT-11920) 2016-04-15 15:20:35 +03:00
Mikhail Glukhikh
6acd4bc21d Refactoring: ExposedVisibilityChecker extracted from DeclarationsChecker 2016-04-15 15:20:30 +03:00
Mikhail Glukhikh
ed4ccc6a19 Minor refactoring: EffectiveVisibility 2016-04-15 15:20:26 +03:00
Mikhail Glukhikh
80e41c5298 KT-11806: increase visibility quick fix: private / internal -> public #KT-11806 Fixed 2016-04-15 15:20:21 +03:00
Mikhail Glukhikh
f12a9b7b95 KT-11806: increase visibility quick fix, private --> internal, also for members 2016-04-15 15:20:16 +03:00
Mikhail Glukhikh
2098bed86d Quick fix renamed: ChangePrivateTopLevelToInternal --> IncreaseVisibility 2016-04-15 15:20:12 +03:00
Alexander Udalov
a94ebcdeb4 Update ChangeLog for 1.0.2 2016-04-15 11:54:23 +03:00
Alexander Udalov
07c229e94b Exclude InlineOnly from kotlin-test
It's already present in kotlin-stdlib and that causes
com.android.dex.DexException

 #KT-11505 Fixed
2016-04-15 11:33:23 +03:00
Nikolay Krasko
fab05620b4 Reference test common and place plugins after idea libs 2016-04-15 00:36:54 +03:00
Alexander Udalov
48664a2ba7 Refactor AbstractBinaryClassAnnotationAndConstantLoader#findClassWithAnnotationsAndInitializers
Extract all special cases to getSpecialCaseContainerClass
2016-04-14 21:08:36 +03:00
Alexander Udalov
d571512f47 Remove unnecessary fields in DeserializedClassDescriptor 2016-04-14 21:08:36 +03:00
Alexander Udalov
e0dd60c57a Expand code for boolean fields in Flags
Push flag index computation logic from FlagField down to subclasses
(BooleanFlagField and EnumLiteFlagField) because in the case of
BooleanFlagField it's trivial
2016-04-14 21:08:36 +03:00
Alexander Udalov
1f3850da6e Store outer class in ProtoContainer instead of only its kind 2016-04-14 21:08:36 +03:00
Alexander Udalov
8ee278d02f Fix SourceElement for classes loaded in decompiler 2016-04-14 21:08:36 +03:00
Alexander Udalov
88106bb13b Get rid of BinarySource interface, use SourceElement instead 2016-04-14 21:08:36 +03:00
Alexander Udalov
ad068ed4ac Do not call findKotlinClass when loading class annotations
The main change is in AbstractBinaryClassAnnotationAndConstantLoader, where we
no longer perform unnecessary IO operations for classes which are already
loaded to memory
2016-04-14 21:08:36 +03:00
Alexander Udalov
7620d66019 Minor, rename PackagePartSource -> BinarySource 2016-04-14 21:08:36 +03:00
Alexander Udalov
ac92be12c6 Minor, take ProtoContainer in AnnotationAndConstantLoader#loadClassAnnotations 2016-04-14 21:08:36 +03:00
Alexander Udalov
2ab68d53fa J2K KotlinJvmBinaryClass & AnnotationAndConstantLoader: convert 2016-04-14 21:08:36 +03:00
Alexander Udalov
9c7e4f3dcc J2K KotlinJvmBinaryClass & AnnotationAndConstantLoader: rename .java -> .kt 2016-04-14 21:08:36 +03:00
Alexander Udalov
c091bb990b Make LazyJavaPackageFragment#javaScope private 2016-04-14 21:08:36 +03:00
Alexander Udalov
a34aaa5955 Move package part-related code from LazyJavaPackageScope to LazyJavaPackageFragment 2016-04-14 21:08:36 +03:00
Alexander Udalov
e516b695ae Minor, do not store FqName in LazyJavaClassDescriptor 2016-04-14 21:08:36 +03:00
Alexander Udalov
836a62d4b3 Minor, move resolveKotlinBinaryClass closer to single usage 2016-04-14 21:08:36 +03:00
Ilya Gorbunov
a2db8f9090 Performance: move the state out of multifile class parts to avoid synchronization. 2016-04-14 19:03:39 +03:00
Yan Zhulanow
8304c85f4f Lint: support both IJ 15 and Android Studio 2.0 (different Android plugins)
Dirty hack :(
2016-04-14 17:20:23 +03:00
Natalia Ukhorskaya
b782d2cd11 J2K: do not invoke visitChildrenRecursively in Action.update
#KT-11160 Fixed
2016-04-14 17:05:14 +03:00
Natalia Ukhorskaya
495be06fc5 J2K: do not generate super call to abstract property 2016-04-14 17:04:50 +03:00
Natalia Ukhorskaya
72019a1b4e J2K: Insert !! for expression only if NotNull expected (not for Default nullability) 2016-04-14 17:04:32 +03:00
Natalia Ukhorskaya
98c3b39f7e J2K: Get nullability from variable initializer when converting call
#KT-11534 In Progress
2016-04-14 17:04:20 +03:00
Natalia Ukhorskaya
f3a3c0886f J2K: Remove unnecessary casts of non-nullable expression to nullable type after conversion
#KT-11543 Fixed
2016-04-14 17:04:14 +03:00
Natalia Ukhorskaya
c864b67550 Add regression test: parameter from lambda is removed 2016-04-14 17:03:44 +03:00
Natalia Ukhorskaya
29f385a713 J2K, minor: fix testData 2016-04-14 17:03:42 +03:00
Natalia Ukhorskaya
1108fbfbeb J2K: convert scratch files correctly
#KT-10604 Fixed
2016-04-14 17:03:35 +03:00
Nikolay Krasko
5396a68e71 Enable tests in generators module 2016-04-14 14:40:30 +03:00
Denis Zharkov
2f0b052540 Fix infinite loop in CanBeValInspection
Obviously there should be 'return' instead of 'continue'
Otherwise the loop will not end

 #KT-11891 Fixed
2016-04-14 14:01:39 +03:00
Dmitry Petrov
583733be8d KT-11645 properly handle private property getter name mangling in reflection 2016-04-14 09:31:29 +03:00
Dmitry Petrov
511a7e0072 KT-11645 generate backing field for 'private const val' in part implementation class 2016-04-14 09:31:29 +03:00
Yan Zhulanow
76e5657a99 Minor: add Javadoc for UastContext/UastLanguagePlugin 2016-04-13 18:05:51 +03:00
Dmitry Petrov
82946437d8 EA-81358: use volatile store / volatile load to guarantee publication of deferred clinit results 2016-04-13 16:19:10 +03:00
Kirill Rakhman
9495257de3 Add QuickFix to add 'crossinline' to parameter (#852)
Fixes #KT-10844
2016-04-13 13:25:35 +02:00
Kirill Rakhman
56fd2d28b8 Let Implement Quickfix: Launch "Implement Members" dialog after applying #KT-11836 Fixed 2016-04-13 12:50:45 +03:00
Alexey Sedunov
9bf395a4cd Light Classes: Skip irrelevant overloads when looking for light parameter
#KT-11868 Fixed
2016-04-13 12:20:20 +03:00
Nikolay Krasko
c6b6e9f18b Note about EAP-repository configuration added to changelo 2016-04-13 12:39:12 +04:00
Nikolay Krasko
46eed6fa4d Configuration for EAP versions 2016-04-13 08:15:01 +03:00
Nikolay Krasko
c5ef562f54 Add eap version to maven versions combobox if working with eap plugin 2016-04-13 00:14:54 +03:00
Nikolay Krasko
441fb7ff28 Use correct version detection for developer versions
#KT-11213 Fixed
2016-04-13 00:14:52 +03:00
Alexander Udalov
aff1226e47 Update ChangeLog with issues fixed since 1.0.2-eap-15 2016-04-12 21:22:00 +03:00
Alexander Udalov
59d73e716c Fix memory leak in StdlibTest 2016-04-12 20:03:51 +03:00
Alexander Udalov
11d875ca17 Fix deadlock in StaticScopeForKotlinEnum
Also fix possible deadlock in ReflectionTypes

 #KT-11869 Fixed
2016-04-12 20:03:51 +03:00
Alexander Udalov
a8629b3836 Do not fail on unknown -X flags
For better compatibility if we add experimental stuff in 1.0.X compilers
2016-04-12 20:03:51 +03:00
Alexander Udalov
37d612d346 Update cli-parser 1.1.1 -> 1.1.2 2016-04-12 20:03:51 +03:00
Alexander Udalov
114713995f Cleanup CandidateResolver 2016-04-12 20:03:51 +03:00
Alexander Udalov
76d3246514 Fix type of member references without explicit class on LHS
Type of '::foo' for a function foo in a class A should be KFunction0<Unit>, not
KFunction1<A, Unit>. Continue to report an error in this case, to be maybe
supported in the future
2016-04-12 20:03:51 +03:00
Alexander Udalov
d8263eb0b8 Assert that callable references cannot have expression on LHS 2016-04-12 20:03:51 +03:00
Nikolay Krasko
92f3795a11 New idea works with relative paths in configureByFiles() 2016-04-12 18:30:42 +03:00
Nikolay Krasko
8a227baf00 Add dependency to uast-kotlin 2016-04-12 18:19:08 +03:00
Michael Bogdanov
be999ca4cb Write proper start label for parameters of inline function default implementation 2016-04-12 15:31:49 +03:00
Michael Bogdanov
c52c0e2c2d Write proper start label for inlined constructor parameters (start label was shifted by additional captured parameters injection) 2016-04-12 15:23:14 +03:00
Nikolay Krasko
0cf1c8d900 Workaround for building against jars from both JDK 6 and JDK 8 on TeamCity 2016-04-12 14:53:20 +03:00
Nikolay Krasko
598f48a8cf Add tests for checking dependant modules for compiler-tests 2016-04-12 14:53:18 +03:00
Nikolay Krasko
354db68f21 Remove dependency on compiler-tests from uast-kotlin 2016-04-12 14:53:17 +03:00
Nikolay Krasko
7c6b7994ad Remove jdk 8 compiler tests from non-compiler-tests 2016-04-12 14:53:16 +03:00
Stanislav Erokhin
3b41fcb5ba Refactoring. Add type safety to resolution. 2016-04-12 03:22:45 +03:00
Zalim Bashorov
51c6abdbed IC: take into account added and removed classes when calculate affected names 2016-04-11 19:26:18 +03:00
Mikhail Glukhikh
1b2deb8a8a Message corrected for warning "some modifier is redundant because another is present" 2016-04-11 16:32:50 +03:00
Mikhail Glukhikh
d79e3f322f Redundant modality modifier inspection #KT-11450 Fixed 2016-04-11 16:32:43 +03:00
Mikhail Glukhikh
8a0641a639 Warning about override / open redundancy is no more reported 2016-04-11 16:32:36 +03:00
Mikhail Glukhikh
1d83a1a97c Can be parameter inspection #KT-10819 Fixed 2016-04-11 16:32:26 +03:00
Alexander Udalov
8ace253559 Minor, remove paragraph symbols from comments
This character seems to cause problems on some build agents
2016-04-11 16:11:25 +03:00
Nikolay Krasko
233635e0d8 Enable injecting predefined and custom Java places in Kotlin 2016-04-11 15:04:04 +03:00
Mikhail Glukhikh
fff4aa8f12 Minor: cleanup of RemoveValVarFromParameterFix 2016-04-11 12:28:09 +03:00
Dmitry Petrov
1f3323ed32 KT-11750 Do not report REDECLARATION on descriptors which are not available in sources. 2016-04-11 09:13:07 +03:00
Alexey Sedunov
905ca21799 Spring Support: Support @Transactional annotation in "Make annotated declaration open" inspection 2016-04-09 21:13:34 +03:00
Alexey Sedunov
119cf0f0cd Spring Support: Support Find Usages/Rename (on both declarations and
references) of Kotlin declarations referenced in the XML config
 #KT-11719 Fixed
 #KT-11652 Fixed
2016-04-09 21:13:30 +03:00
Alexey Sedunov
a553f67744 Minor: Extract SpringTestFixtureExtension.loadConfigByMainFilePath() function 2016-04-09 21:13:25 +03:00
Alexey Sedunov
afecb09b6f Spring Support: Fix renaming of Spring bean declarations via SpEL references
#KT-11720 Fixed
 #KT-11725 Fixed
2016-04-09 21:13:21 +03:00
Alexey Sedunov
5203f62655 Minor: Remove /*rename*/ marker in Rename tests 2016-04-09 21:13:16 +03:00
Alexey Sedunov
b8905645ae Light Classes: Navigate to KtFile from light class containing file
#KT-11689 Fixed
2016-04-09 21:13:11 +03:00
Alexey Sedunov
eeac739f69 Spring Support: Fixed computation of values in Java annotations referred by Kotlin annotation entries
#KT-11702 Fixed
2016-04-09 21:13:07 +03:00
Alexey Sedunov
a818d4714e Misc: Extract kotlin-ultimate project 2016-04-09 21:13:01 +03:00
Alexey Sedunov
1a4a7406fe Misc: Extract properties "dependencies" and "generators" from update_dependencies.xml 2016-04-08 21:12:38 +03:00
Alexey Sedunov
843e2bc135 Spring Support: "Generate @Autowired Dependency..." action
#KT-11408 Fixed
2016-04-08 21:11:30 +03:00
Alexey Sedunov
233f2b468d Spring Support: "Generate Dependency..." actions
#KT-11407 Fixed
2016-04-08 21:11:28 +03:00
Alexey Sedunov
4ed1c3d448 Minor: Generify KtClassOrObject.addDeclarationXXX() 2016-04-08 21:11:25 +03:00
Alexey Sedunov
81298e57f2 [RESTORED] Misc: Fetch Spring libraries to dependencies directory 2016-04-08 21:11:24 +03:00
Alexey Sedunov
9aeca98b82 [RESTORED] Spring Support: Inspection for Spring configuration 2016-04-08 21:11:22 +03:00
Alexey Sedunov
236654aa7e [RESTORED] Spring Support: SpEL injections
#KT-11406 Fixed
2016-04-08 21:11:20 +03:00
Alexey Sedunov
a89dbfcfd4 [RESTORED] Spring Support: Show Spring line markers for Kotlin classes
#KT-3741 Fixed
2016-04-08 21:11:19 +03:00
Alexey Sedunov
962b312fb7 [RESTORED] Light Classes: Constant expression evaluator for light annotation arguments 2016-04-08 21:11:16 +03:00
Alexey Sedunov
f2e2220560 [RESTORED] Spring Support: Implement Spring-specific references 2016-04-08 21:11:15 +03:00
Alexey Sedunov
196b484cd7 [RESTORED] Spring Support: Inspection for final Spring-annotated classes/functions
#KT-11098 Fixed
2016-04-08 21:11:14 +03:00
Alexey Sedunov
e4a64e7980 [RESTORED] Spring Support: Test framework 2016-04-08 21:09:28 +03:00
Alexey Sedunov
b5ac464305 [RESTORED] Misc: Configure dependency on Spring support and related plugins: J2EE, JSP, persistence, database tools, CSS 2016-04-08 21:07:24 +03:00
Alexey Sedunov
a30b4140de [RESTORED] Misc: Configure IDEA Ultimate dependencies 2016-04-08 21:07:23 +03:00
Nikolay Krasko
10206ef0d0 Restore tests-common dependency in idea module 2016-04-08 18:36:34 +03:00
Nikolay Krasko
8ccb442009 Do not guard downloading artifacts for compiler tests with dependencies.properties 2016-04-08 17:40:38 +03:00
Nikolay Krasko
47c7181f2a Extract tests-common module without any actual tests
The main reasoning for the module is to avoid running any compiler tests while executing run configuration that searches tests across module dependencies.
2016-04-08 17:40:38 +03:00
Yan Zhulanow
c45bdef0c2 Minor: Add idea -> lint_idea dependency (fixes IDEA tests), change lint sdk to 1.8 2016-04-08 16:27:50 +03:00
Yan Zhulanow
29412693db Uast: add "strict" parameter to getParentOfType() 2016-04-08 15:39:58 +03:00
Yan Zhulanow
c13c24becc Uast, Lint: Update and fix tests 2016-04-08 15:39:58 +03:00
Yan Zhulanow
21a2115501 Uast: Add Uast visitor extensions instead of additional checkers 2016-04-08 15:39:58 +03:00
Yan Zhulanow
6b30b8ce1f Other code review changes 2016-04-08 15:39:58 +03:00
Yan Zhulanow
991e783ccf Lint: Make lint run normally on both older and newer versions of IDEA (IdeaAndroidProject was replaced by AndroidGradleModel) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
726bfca540 Change semantics of getObjectKeyword() function 2016-04-08 15:39:58 +03:00
Yan Zhulanow
41979de71e Uast: Rewrite visitor 2016-04-08 15:39:58 +03:00
Yan Zhulanow
04e8161f1d Code review changes 2016-04-08 15:39:58 +03:00
Yan Zhulanow
7ed5b6c10b Minor: rename NoTraverse to LeafUElement 2016-04-08 15:39:58 +03:00
Yan Zhulanow
c1e59e4957 Code review changes 2016-04-08 15:39:58 +03:00
Yan Zhulanow
7007261d7b Rename UastHandler to UastCallback 2016-04-08 15:39:58 +03:00
Yan Zhulanow
3484f92d10 Uast: Update tests, make the tests a bit more readable (provide toString() methods for Uast kinds) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
109c76c87d Minor: remove @author comments 2016-04-08 15:39:58 +03:00
Yan Zhulanow
0f01303f0c Lint: Add Kotlin Lint tests 2016-04-08 15:39:58 +03:00
Yan Zhulanow
65da1edb56 Download full copy of the Android SDK (needed to run the all Android Lint tests) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
984f10ddff Lint: fix some more detectors 2016-04-08 15:39:58 +03:00
Yan Zhulanow
aa4f2e426b Lint: Remove lint suppress quickfix (does not work currently with Kotlin) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
5be2b90c6d Uast, Minor: Group binary operators 2016-04-08 15:39:58 +03:00
Yan Zhulanow
cdd98592e4 Uast, Minor: UAnnotated is now always an UElement 2016-04-08 15:39:58 +03:00
Yan Zhulanow
2c003d16f2 Uast: support 'override' modifier in Java and Kotlin 2016-04-08 15:39:58 +03:00
Yan Zhulanow
da5e6c4092 Kotlin Uast, Minor: support PsiElementBacked in KotlinUType 2016-04-08 15:39:58 +03:00
Yan Zhulanow
1ac6c0f2e9 Kotlin Uast: support class literal expressions.
Ability to get type of class of class literal expressions.
2016-04-08 15:39:58 +03:00
Yan Zhulanow
6172f23d9b Uast: support new elements in UastVisitor 2016-04-08 15:39:58 +03:00
Yan Zhulanow
5cf5024d08 Lint: fix Lint additional checkers with the custom handlers 2016-04-08 15:39:58 +03:00
Yan Zhulanow
37a4d78347 Lint: resolve via the accessor descriptor in PropertyAsCAllAndroidUastAdditionalChecker 2016-04-08 15:39:58 +03:00
Yan Zhulanow
3dc091d92c Uast: support internal class names in Java and method signatures in Java and Kotlin 2016-04-08 15:39:58 +03:00
Yan Zhulanow
5bc31112c1 Lint: Remove IntellijApiDetector 2016-04-08 15:39:58 +03:00
Yan Zhulanow
3258ebae39 Java Uast: Support try-with-resources 2016-04-08 15:39:58 +03:00
Yan Zhulanow
9d34df2475 Java Uast: Support static imports 2016-04-08 15:39:58 +03:00
Yan Zhulanow
06a88f417c Uast: support beforeVisit() and afterVisit() in visitor 2016-04-08 15:39:58 +03:00
Yan Zhulanow
3a7f29bfc5 Lint: Support visitResourceReference() in Uast 2016-04-08 15:39:58 +03:00
Yan Zhulanow
514e3859da Uast: Rename JavaPsiElemenStub -> JavaDumbUElement, KotlinPsiElementStub -> KotlinDumbUElement.
Use it everywhere in `nameElement`
2016-04-08 15:39:58 +03:00
Yan Zhulanow
6c40fda7b7 Support equals() on UElements (comparation by psi) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
985c8660b7 Uast Java, Kotlin: Support all binary operators in Uast 2016-04-08 15:39:58 +03:00
Yan Zhulanow
3f6796f0c2 Uast: Support all basic Java types needed for Lint 2016-04-08 15:39:58 +03:00
Yan Zhulanow
862f824bcc Kotlin Uast: Support object literals 2016-04-08 15:39:58 +03:00
Yan Zhulanow
78ce025ca3 Uast: Ability to get the default class type from UClass 2016-04-08 15:39:58 +03:00
Yan Zhulanow
5c07e6de9d Kotlin Uast, Refactoring: Extract toSource() function 2016-04-08 15:39:58 +03:00
Yan Zhulanow
ed1e1c6a2b Uast, Minor: make lateinit mutable propertiy setters internal 2016-04-08 15:39:58 +03:00
Yan Zhulanow
18e963422b Lint: Remove diagnostics unrelated to uast.
All these diagnostics are already present in the Android plugin, so there's no need in them here.
2016-04-08 15:39:58 +03:00
Yan Zhulanow
ed10829091 Uast: Allow to search for a static members (in Kotlin static members are located inside the companion objects).
Companion objects support.
2016-04-08 15:39:58 +03:00
Yan Zhulanow
f1e5c85ba3 Uast: Support Kotlin anonymous initializers 2016-04-08 15:39:58 +03:00
Yan Zhulanow
335712141d Java Uast, Minor: Convert Java Uast properties with backing field to properties with getter (optimization) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
f130dc96f7 Lint: Implement Kotlin Java synthetic property calls as Java method calls via the additional checker 2016-04-08 15:39:58 +03:00
Yan Zhulanow
d1939d52bc Replace UastConverter with UastLanguagePlugin, allow additional checkers 2016-04-08 15:39:58 +03:00
Yan Zhulanow
4ef6016ee8 Lint: Rename all Lint inspections to KLint to provide unique short names 2016-04-08 15:39:58 +03:00
Yan Zhulanow
f4422b3b19 Kotlin Uast: Support type parameters on functions 2016-04-08 15:39:58 +03:00
Yan Zhulanow
668172d68e Lint, Minor: Group lint-related modules 2016-04-08 15:39:58 +03:00
Yan Zhulanow
4df9e9261e Lint: Rewrite Lint diagnostics using Uast. 2016-04-08 15:39:58 +03:00
Yan Zhulanow
126cc778e4 Lint: copy diagnostics from IDEA (br143) 2016-04-08 15:39:58 +03:00
Yan Zhulanow
92d2e7a0a9 Kotlin Uast: Initial implementation 2016-04-08 15:39:58 +03:00
Yan Zhulanow
a13a1e1e4a Java Uast: Initial implementation 2016-04-08 15:39:58 +03:00
Yan Zhulanow
16de31aebe Uast: Unified AST (Kotlin, Java) interfaces set.
Goal: support Android Lint diagnostics in Kotlin by switching Lint scanners from the Java Lombok AST to the abstract AST (uast) with Java and Kotlin PsiElement-backed implementations.
2016-04-08 15:39:58 +03:00
Dmitry Petrov
aca7050656 KT-11499 Normalize stacks on return from an inline function when the function is inlined at call site. 2016-04-08 14:52:55 +03:00
Michael Bogdanov
a6044c81ff Write proper start label for loop parameter 2016-04-08 14:32:51 +03:00
Zalim Bashorov
441a442f34 Minor: update testdata 2016-04-08 13:45:37 +03:00
Zalim Bashorov
f5ca949f2c IC: improve logging in tests and fix DataContainerVersionChangedTestGenerated#testWithError
Test logging improvements:
  * print which chunk building in the round for multimodule projects
  * print actions after cache changed
2016-04-08 13:45:37 +03:00
Kirill Rakhman
da5c963a43 Fix let implement quickfix label for object expressions
Fixes #KT-11782
2016-04-08 10:37:25 +03:00
Valentin Kipyatkov
cdab9d5103 KT-11710 "Replace 'if' with elvis operator": incorrect code generated for 'if' expression
#KT-11710 Fixed
2016-04-07 18:50:32 +03:00
Valentin Kipyatkov
6a65442095 KT-11811 There is no intention "Make protected" for a val declared in parameters of constructor
#KT-11811 Fixed
2016-04-07 18:50:32 +03:00
Valentin Kipyatkov
a9fe999e0e Fixed StackOverflow in CanBeValInspection.kt 2016-04-07 18:50:31 +03:00
Valentin Kipyatkov
22a4bbe1aa KT-11805 Invert if-condition intention breaks code in case of end of line comment
#KT-11805 Fixed
2016-04-07 18:50:30 +03:00
Valentin Kipyatkov
b258af5288 KT-11724 False suggestion to replace with compound assignment
#KT-11724 Fixed
2016-04-07 18:50:30 +03:00
Alexander Udalov
7c90fbe4de Compute return type for property getters more safely
Do not call `isError()` on property's type right after creation of
PropertyGetterDescriptor because the property has no getter yet (it's created
but not yet stored to the property, that happens a bit later), and `isError()`
leads to computation of the delegate type, which for delegated properties
performs some complex resolution (see `VariableTypeResolver#process`) which
relies on the fact that the property already has a getter.

Since the purpose of the original change (883e2e4d) was to support a quick fix
which would add the type to a property in an expression like "val x get() =
...", check the type (or initializer) presence in the PSI instead, this is
safer and is still suitable for the quick fix.

Also fix arguments to "wrong getter type" diagnostic: previously something
useless like "expected Int, actual Int" was reported

 #KT-11809 Fixed
2016-04-07 15:35:58 +03:00
Dmitry Petrov
f1b061d662 Optimize coercion to Unit.
POP operations are backward-propagated.

Operation can't be transformed if its result is moved within stack
(by DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, or SWAP).

Unnecessary operations are replaced with NOPs (for debugger).
Unnecessary NOPs are removed.

KT-9922 Suboptimal generation for simple safe call with unused return value
KT-11116 Optimize methods returning Unit
2016-04-07 11:40:58 +03:00
Alexander Udalov
c4a568efff Minor, add test cases for obsolete protected-related issues 2016-04-07 00:07:11 +03:00
Alexander Udalov
9eec5daf51 Minor, fix a few typos in NameResolution.adoc 2016-04-06 23:21:13 +03:00
Nikolay Krasko
9e88db7e58 Fix bad test modification 2016-04-06 21:46:02 +03:00
Nikolay Krasko
46a1028494 Temporary ad-hock jps-tests enable with testdata modification 2016-04-06 21:46:00 +03:00
Alexey Andreev
9fd19dd7fd KT-7819 Add test to ensure that lambda capturing this literal can be inlined 2016-04-06 16:16:56 +03:00
Alexey Andreev
05887f45f7 KT-7819 Implement non-local returns 2016-04-06 16:16:55 +03:00
Alexey Andreev
a6e1bd1d89 KT-7819 Borrow tests for non-local returns from JVM backend 2016-04-06 16:16:55 +03:00
Pavel V. Talanov
f7db1f934c IDELightClassGenerationSupport#getContextForClassOrObject: do not rely on resolution facade being unchanged
ResolutionFacade should only recompute its underlying structures in case of psi change (which is ok) or some exception, but relying on it being unchanged has led to numerous exceptions in backend when building light classes (EA-70985, EA-80756)
Changing this code may not be the solution but it can possibly move failures to other parts of the system, where they can be easier diagnosed
2016-04-06 16:09:17 +03:00
Nikolay Krasko
74091a12cf Update since to IDEA 2016.1 2016-04-06 14:20:55 +03:00
Nikolay Krasko
4b22685dc5 Change asm library path 2016-04-06 14:20:53 +03:00
Nikolay Krasko
f648fddb84 Create repository for openapi.jar and idea_rt.jar on teamcity to avoid full idea download 2016-04-06 14:20:51 +03:00
Stanislav Erokhin
187c0d4dd0 Refactoring. Change Key for TAIL_RECURSION_CALL from ResolvedCall to Call. 2016-04-06 13:55:36 +03:00
Stanislav Erokhin
516d4df834 Refactoring. Remove isSafeCall from ResolvedCall. 2016-04-06 13:55:35 +03:00
Stanislav Erokhin
bf08341ee4 Refactoring. Change type of ResolvedCall#extensionReceiver from Receiver to ReceiverValue 2016-04-06 13:55:35 +03:00
Stanislav Erokhin
63a2d8a416 Refactoring. Remove receiverArgument from ResolutionCandidate. 2016-04-06 13:55:34 +03:00
Valentin Kipyatkov
602de317d6 Minor improvement in convert to string template inspection: no highlighting when the expression is split onto multiple lines 2016-04-06 10:45:28 +03:00
Mikhail Glukhikh
c32881e41b Fix: test renamed 2016-04-06 10:39:50 +03:00
Dmitry Petrov
8377eb4613 KT-11777: no parts for '<root>' 2016-04-06 10:01:01 +03:00
Nikolay Krasko
d8a2cab708 Bad merge in AbstactIntentionTest that made tests useless 2016-04-05 22:12:31 +03:00
Dmitry Jemerov
01b0cfb552 don't parse lines starting with @ as KDoc tags if they're inside a Markdown code fence
#KT-11789 Fixed
2016-04-05 19:48:51 +02:00
Stanislav Erokhin
ad002c4f09 Minor. Fix file name & regenerate tests. 2016-04-05 20:45:27 +03:00
Kirill Rakhman
a895a3e3de ConvertToForEachFunctionCallIntention: convert 'continue' to 'return@forEach'
Fixed #KT-11764
2016-04-05 18:48:02 +02:00
Valentin Kipyatkov
d5182ffe16 Minor change on code review 2016-04-05 19:33:08 +03:00
Valentin Kipyatkov
e7fa0bec9a Ctrl-Q and other PsiElement-based features to work for synthetic java properties
#KT-11676 Fixed
2016-04-05 19:33:07 +03:00
Valentin Kipyatkov
2aba11abb8 Added test for generic operator 2016-04-05 19:33:07 +03:00
Valentin Kipyatkov
3aff4d4c17 Smart completion to use super type for override if no explicit type specified 2016-04-05 19:33:06 +03:00
Valentin Kipyatkov
7af67da4ac Better smart completion after "by" for override property with no explicit type specified 2016-04-05 19:33:06 +03:00
Valentin Kipyatkov
f85de3aac7 Added better way to construct FuzzyType 2016-04-05 19:33:05 +03:00
Valentin Kipyatkov
e18fb20d5a Completion after "by" for top-level properties 2016-04-05 19:33:05 +03:00
Valentin Kipyatkov
fe9d6aca9a More correct test data 2016-04-05 19:33:04 +03:00
Valentin Kipyatkov
24764ed865 Checking for conflicting substitutors in completion after "by" 2016-04-05 19:33:04 +03:00
Valentin Kipyatkov
e05d6a7056 Smart completion after "by" works for getValue/setValue in generic class 2016-04-05 19:33:03 +03:00
Valentin Kipyatkov
4dde458e84 Smart completion after "by" works for generic properties too 2016-04-05 19:33:02 +03:00
Valentin Kipyatkov
20ac76fe3a Member functions of enum should not be in smart completion 2016-04-05 19:33:02 +03:00
Valentin Kipyatkov
9c6fed1622 Enabled old test 2016-04-05 19:33:01 +03:00
Valentin Kipyatkov
3e09a6902a Renamed test 2016-04-05 19:33:01 +03:00
Valentin Kipyatkov
7b4f26d1b5 Minor changes on code review 2016-04-05 19:33:00 +03:00
Valentin Kipyatkov
9ebf94b4cf KT-11609 No named arguments completion should be after dot
#KT-11609 Fixed
2016-04-05 19:32:59 +03:00
Valentin Kipyatkov
471b673bdd Dropped HeuristicSignatures because there are supported by the language already 2016-04-05 19:32:59 +03:00
Valentin Kipyatkov
88bdf88bbb "Delegates" members in smart completion after "by"
#KT-6231 Fixed
2016-04-05 19:32:58 +03:00
Valentin Kipyatkov
ae0d840aab "Static members" completion after "by" 2016-04-05 19:32:58 +03:00
Valentin Kipyatkov
6fa230311c Show substituted type arguments for type instantiation items 2016-04-05 19:32:57 +03:00
Valentin Kipyatkov
074c6c8dcd Minor 2016-04-05 19:32:57 +03:00
Valentin Kipyatkov
0edc5c15e2 Complete type instantiation items after "by" 2016-04-05 19:32:56 +03:00
Valentin Kipyatkov
ba6accd5f9 Correct substitutions for smart completion after "by" and "in" 2016-04-05 19:32:55 +03:00
Valentin Kipyatkov
7d3229538e One more test 2016-04-05 19:32:55 +03:00
Valentin Kipyatkov
e8c35e16e0 Smart completion after "by" and "in": non-imported operators supported 2016-04-05 19:32:54 +03:00
Valentin Kipyatkov
cda539d769 Initial implementation of smart completion after "by"
#KT-11787 Fixed
2016-04-05 19:32:37 +03:00
Valentin Kipyatkov
c2065c1856 "contains" now requires to be marked as operator + no heuristic signature for contains needed anymore 2016-04-05 18:44:06 +03:00
Mikhail Glukhikh
1b9c6e0ea2 Add variance (in / out) modifier inspection #KT-11090 Fixed 2016-04-05 17:47:29 +03:00
Mikhail Glukhikh
7c02a1eaad Refactoring: VarianceChecker / VarianceCheckerCore, check variance for a separate class 2016-04-05 17:47:20 +03:00
Mikhail Glukhikh
78a898651b Code cleanup: VarianceChecker 2016-04-05 17:45:51 +03:00
Mikhail Glukhikh
c1cbd26eb9 Minor refactoring: let implement interface 2016-04-05 17:45:47 +03:00
Pavel V. Talanov
8fe14b7ba5 KT-11765 Analyze code in anonymous initializer of inteface
#KT-11765 Fixed
2016-04-05 15:04:07 +03:00
Alexey Andreev
40dc5f24d5 Generalize pattern that matches JS module declaration to accept unicode characters
(cherry picked from commit eb44819)
2016-04-05 14:40:27 +03:00
Alexey Andreev
20c0f62d8b Speed-up looking up modules in JS files. This reduces the time needed for JS backend tests to pass
(cherry picked from commit 951ec82)
2016-04-05 14:40:27 +03:00
Alexey Andreev
b3698b1177 Rename JsAstUtils.fqn to fqnWithoutSideEffects. Move PropertyTranslator to appropriate package 2016-04-05 14:40:26 +03:00
Alexey Andreev
0caff1e504 Refactor JS optimizer to use RecursiveJsVisitor where possible and introduce more self-descriptive names in TemporaryAssignmentElimination. Add TODOs and comments for code pieces with non-obvious meaning. 2016-04-05 14:40:26 +03:00
Alexey Andreev
4d126096a1 Invert MetadataProperties.withoutSideEffects to sideEffects 2016-04-05 14:40:26 +03:00
Alexey Andreev
b053c54933 Add more hints about property access that is provable has no side effect. Refactor namer 2016-04-05 14:40:25 +03:00
Alexey Andreev
4a53f5c0b8 Don't relocate temporary variable which receives property access, unless it's provable that this property don't have side effects 2016-04-05 14:40:25 +03:00
Alexey Andreev
cfdce8eaca Rewrite temporary variable elimination 2016-04-05 14:40:25 +03:00
Alexey Andreev
8709289b0a Prohibit from eliminating non-local temporary variables 2016-04-05 14:40:24 +03:00
Alexey Andreev
af7ddb4572 Adds test infrastructure for JS optimizer. Adds simple tests 2016-04-05 14:40:24 +03:00
Alexey Andreev
a7fcbb614d Some cleanup in JS optimizer 2016-04-05 14:40:24 +03:00
Alexey Andreev
3571201e9c Prevent JS optimizer from inserting duplicate variable declarations 2016-04-05 14:40:23 +03:00
Alexey Andreev
4d7906fe44 Prevent temporary variable from substituting to branches of ternary conditional expression, since it can sometimes violate evaluation order 2016-04-05 14:40:23 +03:00
Alexey Andreev
e6e3275906 Implement reduction of if statement to ternary conditional expression 2016-04-05 14:40:23 +03:00
Alexey Andreev
33baa1d774 Implement dead code elimination in JS AST. Repeat optimizations until it's not possible to optimize anything 2016-04-05 14:40:22 +03:00
Alexey Andreev
b5ab8f8488 Make JS optimizations respect nested functions 2016-04-05 14:40:22 +03:00
Alexey Andreev
3ceea68859 Remove optimizations performed during JS inlining. Implement several optimizations as a separate pass 2016-04-05 14:40:22 +03:00
Natalia Ukhorskaya
3301f1f614 Configure Kotlin: do not show notification when apply directive contains double quotes 2016-04-05 14:12:01 +03:00
Natalia Ukhorskaya
e2f464ccc6 Configure kotlin: fix NPE for Idea 145 of higher
#KT-11772 Fixed
2016-04-05 14:12:01 +03:00
Michael Bogdanov
dec53c8d6c Fix for KT-11762: "VerifyError: Bad local variable type" caused by explicit loop variable type
#KT-11762 Fixed
2016-04-05 13:37:10 +03:00
Zalim Bashorov
f2237f675d Don't use invalid entries (including disposed libraries) when crete module infos to avoid exceptions in the future (see #EA-81326) 2016-04-05 12:44:46 +03:00
Zalim Bashorov
88da3fe44d Check that library isn't already disposed before use to avoid exceptions like in #EA-79154 2016-04-05 12:44:46 +03:00
Zalim Bashorov
7dad1831e9 Generate stubs only for files from jar
#EA-78399 fixed
2016-04-05 12:44:46 +03:00
Dmitry Petrov
fe7f7ceed5 Do not generate postponed initialization method for part class as synchronized. 2016-04-05 11:44:36 +03:00
Kirill Rakhman
f9bef68e10 Fix handling of nullable types in LetImplementInterfaceFix #KT-11404 2016-04-05 09:49:02 +03:00
Nikolay Krasko
3056e0b54c Make java8 tests depend on Java 8 JDK 2016-04-05 00:42:09 +03:00
Nikolay Krasko
9c43ff281c Remove stopping JobSchedule executor. It now fails on shutdown attempt. 2016-04-05 00:42:08 +03:00
Nikolay Krasko
554b7d9618 Reset application to null after test in KotlinTestWithEnvironment 2016-04-05 00:42:06 +03:00
Nikolay Krasko
7dcf8ae570 Refactoring: replace custom function to FileUtil.delete 2016-04-05 00:42:05 +03:00
Nikolay Krasko
4104d8632d Fix AS API change 2016-04-05 00:41:28 +03:00
Nikolay Krasko
9cd8c2b7bd Fix compilation against new version of Android plugin 2016-04-05 00:39:46 +03:00
Nikolay Krasko
66bef7c740 Introduce compound run configuration with all compiler tests 2016-04-05 00:39:46 +03:00
Nikolay Krasko
9afd9db5c9 Rename "All compiler tests" to "Compiler tests" as it now doesn't include js tests 2016-04-05 00:39:46 +03:00
Nikolay Krasko
fdf7a3325d Clean up copied code. Remove comments and unused code. 2016-04-05 00:39:46 +03:00
Nikolay Krasko
9fd5568425 Uncomment and move AntTaskJsTest test to js module 2016-04-05 00:39:46 +03:00
Nikolay Krasko
4f7257ab66 Remove dependency to idea.jar in compiler tets to continue running them with JDK 1.6 2016-04-05 00:39:46 +03:00
Nikolay Krasko
a642a15947 "Run Test" line markers now wrap the function names. Additional marker on abstract class. 2016-04-05 00:39:46 +03:00
Nikolay Krasko
ee9962ed70 Template for Junit4 framework doesn't have test prefix anymore 2016-04-05 00:39:46 +03:00
Nikolay Krasko
ed6aaa1138 Remove temp directories in tests
There's new algo for temp file creation that starting to fail after ~1000 files have been created.
2016-04-05 00:39:46 +03:00
Nikolay Krasko
835c8f2c10 Build compiler-tests with 1.6 jdk 2016-04-05 00:39:46 +03:00
Nikolay Krasko
5a88b19b24 Update to idea 2016.1 2016-04-05 00:39:46 +03:00
Nikolay Krasko
6291bb92bd Create own disposable for building separated modules
There's a new check that assert disposer hasn't be disposed yet.
2016-04-05 00:39:46 +03:00
Nikolay Krasko
04cea0993c Make idea-analysis depend on Java 8 2016-04-05 00:39:46 +03:00
Nikolay Krasko
aa2fe9576b Build jps-plugin with java 1.6 2016-04-05 00:39:46 +03:00
Nikolay Krasko
4c81cc802b Remove duplicate build-common dependency 2016-04-05 00:39:46 +03:00
Nikolay Krasko
5a3712f737 Add read action to definition searcher 2016-04-05 00:39:46 +03:00
Nikolay Krasko
00d06fccb6 Fix tests by using relative paths
LightTempDirTestFixtureImpl.findOrCreateChildDir can work only with relative paths
2016-04-05 00:39:46 +03:00
Nikolay Krasko
2081d8f458 Fixes after LightPlatformCodeInsightTestCase stopped execution test under write action by default
See 1d1025401ffb7a06b3340069e06dad14a2e73ddd in intellij-community
1d1025401f
2016-04-05 00:39:46 +03:00
Nikolay Krasko
8325c1a2df Setup proguard rules for new xstream library 2016-04-05 00:39:46 +03:00
Nikolay Krasko
900cc58f01 xstream-1.4.3.jar -> xstream-1.4.8.jar in idea 2016-04-05 00:39:46 +03:00
Nikolay Krasko
f80aaa97a6 Extract plugins tests to separate module with JDK 1.8 2016-04-05 00:39:46 +03:00
Nikolay Krasko
46b5305666 Extract jps-tests to separate module
Remove dependency to idea-full to build jps-plugin with Java 1.6
2016-04-05 00:39:46 +03:00
Nikolay Krasko
fca9a84db8 Set compile target to 1.8 2016-04-05 00:39:46 +03:00
Nikolay Krasko
c576f9272e Remove explicit target 2016-04-05 00:39:46 +03:00
Nikolay Krasko
ef13e8f5bb Prepare building plugins modules against 1.8 JDK 2016-04-05 00:39:46 +03:00
Nikolay Krasko
24a54e2933 Write action for AbstractKotlinExceptionFilterTest 2016-04-05 00:39:46 +03:00
Nikolay Krasko
37b6849d31 Update test data in debugger tests 2016-04-05 00:39:46 +03:00
Nikolay Krasko
4dffacfd1b Fix evaluation tests - create views in gui thread 2016-04-05 00:39:46 +03:00
Nikolay Krasko
139964bf31 Fix repl tests: do modification in write action, avoid hang in closed console 2016-04-05 00:39:46 +03:00
Nikolay Krasko
ae05c04d98 Update maven test: shutdown maven process 2016-04-05 00:39:46 +03:00
Nikolay Krasko
f4fa567409 Can't change file for checkResultByFile by simple assignment to myFile anymore 2016-04-05 00:39:46 +03:00
Nikolay Krasko
a71d1c24ff Mass test data update: find usages doesn't contain column anymore 2016-04-05 00:39:46 +03:00
Nikolay Krasko
b6f3bf9869 Update undroid test clean up 2016-04-05 00:39:46 +03:00
Nikolay Krasko
31484784bb Suppress warnings from PsiClassUtil for findModulesWithClass method 2016-04-05 00:39:46 +03:00
Nikolay Krasko
aa6def5b86 Suppress warnings from SVGLoader 2016-04-05 00:39:46 +03:00
Nikolay Krasko
31da7662c5 Set-up usage for kotlin-test lib 2016-04-05 00:39:46 +03:00
Nikolay Krasko
84af26d342 Fix compile error in KotlinExcludeFromCompletionLookupActionProvider 2016-04-05 00:39:46 +03:00
Nikolay Krasko
0d9e586628 Fix compile errors in AbstractKotlinEvaluateExpressionTest.kt 2016-04-05 00:39:46 +03:00
Nikolay Krasko
02fb9a4063 Update to idea16 EAP (145.184.1) 2016-04-05 00:39:46 +03:00
Stanislav Erokhin
693461e2ee Minor. Remove failed tests for KT-8116. 2016-04-04 23:12:38 +03:00
Stanislav Erokhin
40d3d2c592 Minor. Mute testdata. 2016-04-04 23:12:38 +03:00
Stanislav Erokhin
1c05308c05 Minor. Fix testdata. 2016-04-04 23:12:37 +03:00
Alexander Udalov
c1bcc76dda ChangeLog: add some missing issues fixed in 1.0.1 2016-04-04 21:42:45 +03:00
Alexander Udalov
0e3d2fb38e ChangeLog for 1.0.2 2016-04-04 21:39:34 +03:00
Pavel V. Talanov
3f62b6c495 Typecheck call arguments if callee is resolved to variable
#KT-11579 Fixed
2016-04-04 21:13:22 +03:00
Pavel V. Talanov
e46d713bba KtLightClassForFacade is no longer valid if some of the files have changed their name
#KT-11580 Fixed
2016-04-04 21:10:04 +03:00
Stanislav Erokhin
832f468b13 KT-11733 Cannot infer type parameter in SAM with nullability annotations
#KT-11733 Fixed
2016-04-04 15:31:30 +03:00
Natalia Ukhorskaya
c6fe1b715d Minor: fix test on java 6 2016-04-04 15:27:14 +03:00
Natalia Ukhorskaya
3a0caed148 Avoid 1s delay in completion in debugger fields if session is not stopped on a breakpoint 2016-04-04 15:27:14 +03:00
Nikolay Krasko
473a05b456 Fix too frequent check for compiler modification 2016-04-04 15:25:49 +03:00
Mikhail Glukhikh
b55610b1f0 KT-11404 (let type implement interface): indirect inheritance with generics fixed 2016-04-04 14:17:56 +03:00
Mikhail Glukhikh
640ae60a6b KT-11404: additional test to cover indirect inheritance 2016-04-04 13:58:45 +03:00
Kirill Rakhman
1e6f507f5e Implement quick-fix "let type implement interface" #KT-11404 Fixed 2016-04-04 13:46:47 +03:00
Kirill Rakhman
2198a8c8d0 cleanup KtClassOrObject and KtClass 2016-04-04 13:45:30 +03:00
Mikhail Glukhikh
214e1d3015 Simplify comparison fix introduced #KT-10509 Fixed 2016-04-04 13:41:48 +03:00
hedgehog
02d4376b85 #KT-10797 Fixed 2016-04-04 12:21:11 +02:00
Dmitry Jemerov
62212e7da9 Merge pull request #845 from yarulan/KT-11675
Fix #KT-11675 Fixed - Add Smart Enter processor for 'init'
2016-04-04 12:09:41 +02:00
Natalia Ukhorskaya
de60e6d5b7 Minor: count lambdaOrdinal in tests from 1 instead of 0 2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
09faec9ed7 Debugger: Smart Step Into inside lambda suggests methods from outer context
#KT-10148 Fixed
2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
8b6a447e68 Do not highlight completion variants from nullable receiver with grey in Evaluate Expression Dialog
#KT-11578 Fixed
2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
4d8673d097 Smart step into skips methods from subclasses
#KT-11705 Fixed
2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
c91026f0c0 Configure Kotlin action fails for Idea 145 or higher
#KT-11593 Fixed
2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
cba7c85c36 Minor: rearrange test data 2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
102edd5a0e Debugger: do not insert array in imports 2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
2ce9783214 Debugger: remove useless casts from expressions converted from java 2016-04-04 12:30:46 +03:00
Natalia Ukhorskaya
a93db70995 Debugger: Convert java expression to kotlin when open EE dialog from Variables View
#KT-6805 Fixed
2016-04-04 12:30:46 +03:00
Michael Bogdanov
e0adfd453f Fix for KT-11677: Generic type signatures for local classes in inlined lambdas are not written properly
#KT-11677 Fixed
2016-04-04 12:07:47 +03:00
Michael Bogdanov
f5166b7aef Support test directives in inline tests 2016-04-04 12:07:46 +03:00
Michael Bogdanov
d319811101 Added test for obsolete KT-11631: Couldn't inline method call
#KT-11631 Obsolete
2016-04-03 14:18:13 +03:00
Ilya Gorbunov
f3f1aa8a15 Change String.subSequence parameter names to match those of CharSequence.subSequence. 2016-04-01 21:39:09 +03:00
Sergey Mashkov
c64b59ed82 KT-11261 Implement MavenArchetypesProvider extension point 2016-04-01 18:24:14 +03:00
Alexander Udalov
f2ddc83f86 Reorder and prettify existing ChangeLog entries for 1.0.2 2016-04-01 17:46:18 +03:00
Alexander Udalov
f149e2ca6e Configure Kotlin in project: list only modules with Kotlin files
This was initially done in d07d34af but reverted in 8f2dd2c8, possibly due to
incorrect rebase

 #KT-10831 Fixed
2016-04-01 14:08:32 +03:00
Svetlana Isakova
860a2741d9 Minor 2016-04-01 11:41:53 +03:00
Svetlana Isakova
f1ccf6b133 Restructuring in "invoke" description 2016-04-01 11:39:59 +03:00
Dmitry Petrov
1d87595dc9 binary compat validator: update testData for changes related to new facade generation 2016-04-01 10:13:22 +03:00
Dmitry Petrov
92ddbb271a KT-11410: generate light classes from multifile class parts in binaries
if explicitly requested by fqName
2016-04-01 10:13:22 +03:00
Dmitry Petrov
4c4141ea49 KT-11410: write multifile class code generation scheme to extra field (xi) in kotlin.Metadata. 2016-04-01 10:13:22 +03:00
Dmitry Petrov
d30ab50532 KT-11410: Build stdlib with new part/facade inheritance scheme. 2016-04-01 10:13:22 +03:00
Dmitry Petrov
db58ebc4b2 KT-11410: Class hierarchy for parts/facade of multi-file class.
Preserve static initialization semantics for parts by introducing a special "clinit trigger" class.
Insert "static initialization trigger" call to every method of a part class, remove this call on inline.
Always mangle names for private functions in multifile class parts to avoid resolution clashes on inheritance.

NB in codegen tests initializers for all non-const vals are wrapped in 'run { ... }',
so that the initializer is not a constant expression, and some static initialization code should be generated.
2016-04-01 10:13:22 +03:00
Dmitry Petrov
0ccaf43e2c KT-11410: Add Xmultifile-parts-inherit CLI option. 2016-04-01 10:13:21 +03:00
Dmitry Petrov
095cbea125 KOTLIN_CONFIGURATION_FLAGS directive for passing compiler configuration parameters to tests.
So far, only boolean flags are supported.
2016-04-01 10:13:21 +03:00
Sergey Mashkov
cb4702c406 KT-11261 Implement MavenArchetypesProvider extension point 2016-03-31 23:04:51 +02:00
Sergey Mashkov
14ca0f4aac KT-2917 maven archetype for kotlin projects 2016-03-31 23:04:50 +02:00
Ilya Gorbunov
f35dc47b4e Optimize snapshot operations to return special collection implementations when result is empty or has single element.
#KT-9990 Fixed
2016-03-31 21:30:59 +03:00
Alexey Tsvetkov
0a5db2fea4 Load kotlin.incremental from local.properties file too 2016-03-31 19:40:51 +03:00
Pavel V. Talanov
781bc13941 ExceptionTracker: do not increment counter on ReenteringLazyValueComputationException
ReenteringLazyValueComputationException is in fact correct behaviour which does not indicate a problem we should try to recover from
This led to an obscure bug when resolve sessions were invalidated multiple times during light class construction (see KT-11635)
 #KT-11635 Fixed
2016-03-31 19:33:05 +03:00
Pavel V. Talanov
d7dc122298 KT-11721 Wrong "Typechecker has run into recursive problem" on calling kotlin get function as synthetic property
#KT-11721 Fixed
2016-03-31 19:33:04 +03:00
Ilya Gorbunov
d5d19f5595 Make Map.plus accept Map out-projected by key type as either operand (receiver or parameter).
#KT-11301 Fixed
2016-03-31 17:20:58 +03:00
Ilya Gorbunov
0332217b70 Remove implementations of intrinsic array creation functions (arrayOf, primitiveArrayOf)
#KT-11485 Fixed
2016-03-31 17:15:10 +03:00
Ilya Gorbunov
9caa17dc74 Minor: Make internal monitorEnter/monitorExit functions private to remove them from the public API
#KT-11485
2016-03-31 17:15:10 +03:00
Nikolay Krasko
bbd6417d3c Add plugin-api dependency of android-extension-compiler to plugin classpath
Add it to kotlin-plugin.jar but not to kotlin-android-extensions-plugin.jar because frontend depends on the module plugin-api too.
2016-03-31 16:07:22 +03:00
Nikolay Krasko
c0481ca598 Move injection to optional dependency 2016-03-31 16:07:22 +03:00
Pavel V. Talanov
7de171efda Improve message clarity for WRONG_NUMBER_OF_TYPE_ARGUMENTS diagnostics
#KT-9887 Fixed
2016-03-31 16:06:48 +03:00
Alexey Tsvetkov
d6cd46e079 Build non-incrementally when input class-file is changed 2016-03-31 15:08:14 +03:00
Denis Zharkov
1511a03027 Fix SAM adapters substitution
Approximate sourceFunction types if it's needed

 #KT-11696 Fixed
2016-03-31 14:52:12 +03:00
Denis Zharkov
bc1b34a989 Add additional visibility check for synthetic extensions
Use extension receiver as dispatch one, because it is effectively dispatch
(after some desugaring)
2016-03-31 14:51:57 +03:00
Denis Zharkov
b5c9523e4b Minor. Adjust JS test to protected visibility changes 2016-03-31 14:51:57 +03:00
Denis Zharkov
1bc45fb9cf Adjust J2K to latest protected visibility fixes 2016-03-31 14:51:57 +03:00
Denis Zharkov
92be4aee9c Prohibit protected constructor calls that are not super-calls in subtypes
#KT-11649 Fixed
2016-03-31 14:51:57 +03:00
Denis Zharkov
816f14a927 Minor. Covariantly override ClassDescriptor.original 2016-03-31 14:51:57 +03:00
Denis Zharkov
5056c43975 Do not check receiver for protected constructor calls
Checks for protected constructors should be performed manually,
because they are rather complex
2016-03-31 14:51:57 +03:00
Denis Zharkov
5bf336474d Respect receiver-dependent visibility when selecting smart-cast type 2016-03-31 14:51:57 +03:00
Denis Zharkov
d3b7eb81fa Make PositioningStrategy.mark public
Because it's used with receivers of types different from call site ones.
2016-03-31 14:51:57 +03:00
Denis Zharkov
935355ad2f Refine isVisible for protected visibility
#KT-7437 Fixed
 #KT-7971 Fixed
 #KT-7051 Fixed
 #KT-6125 Fixed
 #KT-6186 Fixed
2016-03-31 14:51:57 +03:00
Denis Zharkov
182b349492 Clarify Visibility.isVisible contract for null as receiverValue
See comment
2016-03-31 14:51:57 +03:00
Mikhail Glukhikh
60511f010a Build fix: evaluationErrors.repl 2016-03-31 14:34:56 +03:00
Svetlana Isakova
4c30bcfca0 Added separate notes for name resolution motivation
Addressed some comments on the main article
2016-03-31 13:23:55 +03:00
Mikhail Glukhikh
56ef98ee29 Refactoring: DeclarationsChecker checkClassOrObjectMembers / checkFunction 2016-03-31 12:19:15 +03:00
Mikhail Glukhikh
8c131f4790 KT-11666: Implicit nothing is allowed for overridden function / properties 2016-03-31 12:00:22 +03:00
Mikhail Glukhikh
4c03aaabd4 Implicit nothing / intersection types are now checked also for member functions #KT-11666 Fixed 2016-03-31 11:59:17 +03:00
Yaroslav Ulanovych
242a44e477 Fix #KT-11675 Fixed - Add Smart Enter processor for 'init' 2016-03-30 23:25:47 +03:00
Alexander Udalov
0ea3b4ade4 Fix multiple resource leaks by closing InputStream instances
The main fix is in BuiltInsPackageFragment, the rest is the improvement of
other usages of getResourceAsStream

 #KT-11433 Fixed
2016-03-30 21:41:43 +03:00
Alexander Udalov
8316953259 Fix double quotes in diagnostic messages
For diagnostics without any parameters, the given text is simply rendered as a
String, so no symbols should be escaped.

For diagnostics with parameters, the format in java.text.MessageFormat is used,
so one single quote is erased and two single quotes become one single quote in
the rendered text.
2016-03-30 21:41:43 +03:00
Pavel V. Talanov
484167e9d9 KtLightModifierList* is created only for light classes build for sources
This is a hacky solution to avoid calling lightMemberOrigin.originalElement inside
Moreover it needs to resolve descriptor for sources inside computeAnnotations and it is used only for kotlin sources so this will have to do for now
2016-03-30 21:35:24 +03:00
Pavel V. Talanov
e19cc04c63 KT-11678 Support navigation from Java source to Kotlin binaries
Introduce LightMemberOriginForCompiledElement which holds logic for finding corresponding decompiled declaration
ByJvmSignatureIndexer stores the required information while building decompiled text

Some are unsolved in this commit:
   - constructors
   - @Jvm* and other unregular generated members
   - annotation methods

 #KT-11678 Fixed
2016-03-30 21:35:23 +03:00
Pavel V. Talanov
f9fa365059 LightElements: avoid computation of LightMemberOrigin.originalElement on common api calls 2016-03-30 21:35:23 +03:00
Pavel V. Talanov
f40a04c5a2 Refactor light elements
KtLightElement#delegate -> clsDelegate, KtLightElement#origin -> kotlinOrigin and make them properties
KtLightClassForDecompiledDeclaration stores KtClsFile
KtLightField stores LightMemberOrigin
2016-03-30 21:35:22 +03:00
Pavel V. Talanov
02543295f9 Refactor: Make LightMemberOrigin an interface, extract one implementation 2016-03-30 21:35:21 +03:00
Pavel V. Talanov
3977508c2c Improve AbstractReferenceResolveTest 2016-03-30 21:35:20 +03:00
Pavel V. Talanov
4824d4b880 Refactor: abstract over decompiled text indexing
Move navigation-related code from KtDecompiledFile
2016-03-30 21:35:19 +03:00
Pavel V. Talanov
ef25b14eab Drop non-generated NavigateToDecompiledLibraryTest
It relies on internal data structure
2016-03-30 21:35:19 +03:00
Pavel V. Talanov
68c0bb9dc2 Generate navigateToDecompiledLibraryTest from the same test data as navigateToLibrarySourceTest
Change test data format
2016-03-30 21:35:18 +03:00
Pavel V. Talanov
f74e8ee7f8 Generate tests for resolving references to kotlin binaries from java in IDE 2016-03-30 21:35:17 +03:00
Ilya Gorbunov
ab68b49a70 Introduce RandomAccess to JS.
Make EmptyList support RandomAccess.
#KT-10794
2016-03-30 21:06:18 +03:00
Ilya Gorbunov
6ba98f7fe6 Binary compatibility validator: filter out empty facades *after* members are flattened from non-public part superclasses.
Use stable member sort order for members flattened from non-public superclasses, rewrite test to make order matter.
2016-03-30 20:44:44 +03:00
Svetlana Isakova
8e7f259beb Added an article describing name resolution 2016-03-30 19:34:54 +03:00
Mikhail Glukhikh
b7e8f71367 Fix of getCorrespondingLoop for complex loop / try-finally trees #KT-8246 Fixed 2016-03-30 18:49:23 +03:00
Alexander Udalov
f385c85672 Rename Changelog.md -> ChangeLog.md 2016-03-30 18:29:17 +03:00
Nikolay Krasko
193f5e9720 Find problem test in injection 2016-03-30 16:42:37 +03:00
Nikolay Krasko
b4f5f0e10e Add initial support for injecting languages with comment or annotation
#KT-11472 Fixed
2016-03-30 16:42:37 +03:00
Nikolay Krasko
4819c07c95 Extract function for adding annotation to KtModifierListOwner 2016-03-30 16:42:37 +03:00
Valentin Kipyatkov
97311b56fe Minor changes on code review 2016-03-30 15:58:09 +03:00
Valentin Kipyatkov
99c232df84 Checking that no quickfix reference KotlinType 2016-03-30 15:58:09 +03:00
Valentin Kipyatkov
2ac627efd3 No KotlinType reference in ConvertClassToKClassFix 2016-03-30 15:58:09 +03:00
Valentin Kipyatkov
40e69318b8 Renames + parameter to receiver 2016-03-30 15:58:08 +03:00
Valentin Kipyatkov
1f39511950 No i18n 2016-03-30 15:58:08 +03:00
Valentin Kipyatkov
9e5bbc5ef4 No KotlinType reference in ChangeParameterTypeFix 2016-03-30 15:58:08 +03:00
Valentin Kipyatkov
d8993069c0 Do not rely on KotlinType.toString() 2016-03-30 15:58:08 +03:00
Valentin Kipyatkov
1754b58e37 No KotlinType reference in AddArrayOfTypeFix 2016-03-30 15:58:08 +03:00
Valentin Kipyatkov
3905344530 No KotlinType reference in NumberConversionFix 2016-03-30 15:58:07 +03:00
Valentin Kipyatkov
3ad292697a No KotlinType reference in ChangeFunctionLiteralReturnTypeFix 2016-03-30 15:58:07 +03:00
Valentin Kipyatkov
9bbeaa3c03 Minor code improvements 2016-03-30 15:58:07 +03:00
Valentin Kipyatkov
74f9f89728 Converting to Kotlin (step 2) 2016-03-30 15:58:07 +03:00
Valentin Kipyatkov
f18db1f88e Converting to Kotlin (step 1) 2016-03-30 15:58:07 +03:00
Valentin Kipyatkov
e00e94e8c6 No KotlinType reference in CastExpressionFix 2016-03-30 15:58:06 +03:00
Valentin Kipyatkov
3467ac7438 No KotlinType reference in ChangeFunctionReturnTypeFix 2016-03-30 15:58:06 +03:00
Valentin Kipyatkov
41c09700e8 Minor code improvements 2016-03-30 15:58:06 +03:00
Valentin Kipyatkov
e0ba2e8395 Converting to Kotlin (step 2) 2016-03-30 15:58:06 +03:00
Valentin Kipyatkov
6afd88bf07 Converting to Kotlin (step 1) 2016-03-30 15:58:06 +03:00
Valentin Kipyatkov
54a69bf21d ChangeVariableTypeFix to not hold KotlinType 2016-03-30 15:58:05 +03:00
Valentin Kipyatkov
d5a8d8c393 Functions to objects 2016-03-30 15:58:05 +03:00
Valentin Kipyatkov
3f022377f3 Minor code improvements 2016-03-30 15:58:05 +03:00
Valentin Kipyatkov
eb918db3af Converting to Kotlin (step 2) 2016-03-30 15:58:05 +03:00
Valentin Kipyatkov
9c18409966 Converting to Kotlin (step 1) 2016-03-30 15:58:05 +03:00
Valentin Kipyatkov
1f0679e103 Converting to Kotlin (step 2) 2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
2ffde5db43 Converting to Kotlin (step 1) 2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
210626a6e1 Merged code into one visitor 2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
f4e3e33bd3 Renamed class 2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
93e170325e KT-11612 Highlight named arguments in the editor somehow
#KT-11612 Fixed
2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
b9865c7225 Minor 2016-03-30 15:58:04 +03:00
Valentin Kipyatkov
2625c6bc29 Converted to Kotlin 2016-03-30 15:58:03 +03:00
Alexander Udalov
ae263dd70c Add KClass.equals/hashCode to public API of Kotlin runtime
See be4b432
2016-03-30 15:01:07 +03:00
Alexey Tsvetkov
71135b9528 Minor: rename property AbstractKotlinCompile.experimentalIncremental->incremental 2016-03-30 04:42:30 +03:00
Alexey Tsvetkov
61814eb23f Test: override build.log in gradle IC tests 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
c1a61b17c7 Test: use one function to find test's build log for jps and gradle 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
3d8ec118cb Remove class files when building non-incrementally 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
c8b7764576 Add gradle IC version file 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
ede900ca87 Use separate cache directory for each kotlin gradle task 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
4c782dbfcc Refactor: move allVersions() to jps-plugin since it is jps specific 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
5d2d827772 Test: change log dump format in gradle tests so it could be parsed again 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov
b050722249 Test: add android incremental compilation test project 2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
bafa9dca48 Test: pass android-build-tools version using project property
The reason is to test the same project with different android-build-tools versions
2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
157c5009f0 Test: download android sdk using sdk-manager-plugin 2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
c686c7fb91 Minor: print subprocess output immediately in tests 2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
da3897536a Minor: format android gradle test 2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
5d89f1fb0a Minor: remove assertion from test
Asserted task does not exist
2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
ae53183d72 Fix java build when kotlin is changed
See SimpleKotlinGradleIT#testSimpleCompile

    #KT-11350 fixed
2016-03-30 03:40:52 +03:00
Alexey Tsvetkov
4e64d46105 Add kotlin.incremental project property to gradle
Allows turning on incremental compilation by passing
'-Pkotlin.incremental=true' in command line
or specifying it in a 'local.properties' file
2016-03-30 03:40:51 +03:00
Alexey Tsvetkov
274b7bb0b0 Test: turn off thread leaks assertion for android gradle tests
ThreadTracker compares active threads before and after compilation.
In test mode if those sets are different, it was throwing an exception.
By some reason that is not obviously linked with kotlin,
the exception was thrown for every android test.

As a temporary solution I added a property 'kotlin.gradle.test.assertThreadLeaks'
that controls this assertion and turned it off for android tests only.
2016-03-30 03:39:44 +03:00
Ilya Gorbunov
cbf8dca28d Add deprecated extension MutableList.remove.
#KT-11648 Fixed
2016-03-29 19:56:03 +03:00
Alexey Sedunov
90487e9aa1 Misc: Replace Ultimate SDK with Community during dependency update 2016-03-29 19:26:27 +03:00
Alexey Sedunov
3603d873cd [REVERTED] 8e7e3a3 Alexey Sedunov on 3/10/2016 at 16:58 (committed on 3/24/2016 at 18:42)
Misc: Configure IDEA Ultimate dependencies
2016-03-29 19:17:12 +03:00
Alexey Sedunov
1e50cc5d00 [REVERTED] d8a033e Alexey Sedunov on 3/11/2016 at 15:56 (committed on 3/24/2016 at 18:42)
Misc: Configure dependency on Spring support and related plugins: J2EE, JSP, persistence, database tools, CSS
2016-03-29 19:17:11 +03:00
Alexey Sedunov
9070aa882d [REVERTED] 161d11d Alexey Sedunov on 3/18/2016 at 14:00 (committed on 3/24/2016 at 18:42)
Spring Support: Test framework
2016-03-29 19:17:10 +03:00
Alexey Sedunov
e11e27ff55 [REVERTED] 72a17b0 Alexey Sedunov on 2/21/2016 at 00:01 (committed on 3/24/2016 at 18:42)
Spring Support: Inspection for final Spring-annotated classes/functions
2016-03-29 19:17:09 +03:00
Alexey Sedunov
ed9b1ac151 [REVERTED] 0a71eb7 Alexey Sedunov on 2/25/2016 at 14:02 (committed on 3/24/2016 at 18:42)
Spring Support: Implement Spring-specific references
2016-03-29 19:17:07 +03:00
Alexey Sedunov
95f6acdddf [REVERTED] 8c72b02 Alexey Sedunov on 3/21/2016 at 19:14 (committed on 3/24/2016 at 18:42)
Light Classes: Constant expression evaluator for light annotation arguments
2016-03-29 19:17:05 +03:00
Alexey Sedunov
4896d90c79 [REVERTED] 28b8cfc Alexey Sedunov on 3/22/2016 at 21:26 (committed on 3/24/2016 at 18:42)
Spring Support: Show Spring line markers for Kotlin classes
2016-03-29 19:17:04 +03:00
Alexey Sedunov
bad1794577 [REVERTED] 0eda1f3 Alexey Sedunov on 3/14/2016 at 18:54 (committed on 3/24/2016 at 18:42)
Spring Support: SpEL injections
2016-03-29 19:17:02 +03:00
Alexey Sedunov
1970582dd8 [REVERTED] 2692a7d Alexey Sedunov on 2/21/2016 at 00:50 (committed on 3/24/2016 at 18:42)
Spring Support: Inspection for Spring configuration
2016-03-29 19:17:00 +03:00
Alexey Sedunov
124776643e [REVERTED] 86c551b Alexey Sedunov on 3/24/2016 at 19:21 (committed on 3/24/2016 at 19:23)
Misc: Сhangelog update
2016-03-29 19:16:59 +03:00
Alexey Sedunov
bfcf7d2b1e [REVERTED] 2dd83b1 Alexey Sedunov on 3/25/2016 at 16:08 (committed on 3/25/2016 at 16:21)
Misc: Fetch Spring libraries to dependencies directory
2016-03-29 19:16:58 +03:00
Alexander Udalov
4a533168d9 Rework const val generation in multifile classes
Do not query MultifileClassCodegen#classBuilder early on: this causes the class
file for the facade to be prematurely dumped to the disk in some cases, when
that class file is not yet completely generated. Instead fork the logic in
PropertyCodegen#generateSyntheticMethodIfNeeded: save metadata in parts,
generate method in the facade
2016-03-29 17:53:32 +03:00
Alexander Udalov
f31dca32a4 Flush stdout and stderr before shutdown in scripts
Although a test is present, it doesn't check the behavior because it seems that
in the test environment both streams are necessarily flushed

 #KT-9546 Fixed
2016-03-29 17:53:18 +03:00
Alexander Udalov
be4b432778 Clarify KClass equality
#KT-11502 Fixed
2016-03-29 17:14:51 +03:00
Alexey Sedunov
cbb6f7ed63 Generate equals()/hashCode(): Fix hashCode() implementation
#KT-11638 Fixed
2016-03-29 15:21:17 +03:00
Ilya Gorbunov
768da05ba9 Update dump declaration mappings tests to reflect new constant generation in multifile facades. 2016-03-29 14:34:32 +03:00
Ilya Gorbunov
ce09612804 Write ReadMe about what constitutes the public API and what is an incompatible change 2016-03-29 13:50:08 +03:00
Ilya Gorbunov
8888537137 Reference dump of kotlin-runtime and kotlin-stdlib of 1.0.2-dev
New public implementation methods 'renderLambdaToString' which are called only from the same module.
2016-03-29 13:50:06 +03:00
Ilya Gorbunov
26e905e90e Reference dump of kotlin-runtime and kotlin-stdlib of 1.0.0 and 1.0.1 2016-03-29 13:50:04 +03:00
Ilya Gorbunov
4c113ad882 Prettify dump output format: indent members and enclose them in { }, space before : in supertypes. 2016-03-29 13:50:02 +03:00
Ilya Gorbunov
ff0a24a750 Move test output files closer to test data.
Move reference dump out of test directory.
2016-03-29 13:50:01 +03:00
Ilya Gorbunov
2e87a08c8d Ignore kotlin visibilities for classes in effectively public package kotlin.jvm.internal 2016-03-29 13:49:59 +03:00
Ilya Gorbunov
ce4b161df4 Find single jar file with binaries in target folders without knowning its version in advance. 2016-03-29 13:49:57 +03:00
Ilya Gorbunov
a75093650c Add JvmField and const tests for exposed fields visibility 2016-03-29 13:49:55 +03:00
Ilya Gorbunov
0d12d60e8a Infer lateinit-exposed field effective visibility from its setter visibility. 2016-03-29 13:49:53 +03:00
Ilya Gorbunov
f2cb5edf1a Do not consider protected members in final class as public API 2016-03-29 13:49:51 +03:00
Ilya Gorbunov
4e250e4dd1 Refactor data structures 2016-03-29 13:49:49 +03:00
Ilya Gorbunov
10792de4c1 Treat inline-exposed internal API as effectively public.
Comment out unsupported cases.
2016-03-29 13:49:48 +03:00
Ilya Gorbunov
0aaf0ba60f Take into account field kotlin visibility 2016-03-29 13:49:46 +03:00
Ilya Gorbunov
bd8c83bee2 Merge public static API of non-public base supertypes into public subtype 2016-03-29 13:49:44 +03:00
Ilya Gorbunov
472b386101 Tests for public API dump tool. 2016-03-29 13:49:43 +03:00
Ilya Gorbunov
da032e371a Minor: refactoring 2016-03-29 13:49:41 +03:00
Ilya Gorbunov
88a038a0df Filter out nested classes in non-public outer classes. 2016-03-29 13:49:39 +03:00
Ilya Gorbunov
a9fd1de263 Tool to dump binary API signatures from compiled JAR.
Incorporate declaration mappings output from the compiler to take into account kotlin visibilities.
2016-03-29 13:49:38 +03:00
Ilya Gorbunov
25abdf9fdb Tests for declaration mappings dumping from compiler 2016-03-29 13:49:36 +03:00
Ilya Gorbunov
e7d75fccd6 Introduce compiler option to dump declaration mapping. 2016-03-29 13:49:34 +03:00
Ilya Gorbunov
4e49187549 Dump declaration mapping during codegen process. 2016-03-29 13:49:33 +03:00
Natalia Ukhorskaya
68907d05c3 J2K produces unresolved 'toArray' calls for java Collection#toArray(T[])
#KT-11600 Fixed
2016-03-29 11:26:18 +03:00
Alexander Udalov
a8bebeb48d Load annotations of const properties from multifile classes
Rework backing field generation logic in PropertyCodegen to switch the
ClassBuilder instance for a multifile part to that of the corresponding facade
class. This became needed because multifile parts, and their metadata, are
generated _before_ the multifile facade class and otherwise we would never
record that there's a synthetic '$annotations' method for a const val and would
not write that to the protobuf message for the property.

See also bad83200

 #KT-10892 Fixed
2016-03-28 21:11:14 +03:00
Alexander Udalov
6924d883eb Support reflection calls to multifile class members
#KT-11447 Fixed
2016-03-28 21:11:14 +03:00
Mikhail Glukhikh
9fa101b3fe Changelog: 1.0.1-2 added 2016-03-28 20:22:36 +03:00
Mikhail Glukhikh
a541aaafd8 Protected in final inspection: protected modifier is effectively private in final classes #KT-6674 Fixed 2016-03-28 19:03:16 +03:00
Mikhail Glukhikh
20bac6178c Array in data class inspection: warning on array properties in data classes #KT-10299 Fixed 2016-03-28 19:00:16 +03:00
Yan Zhulanow
047828bd6d Fix EA-79598: getNode() in JspxImportListImpl returns null 2016-03-28 14:43:07 +03:00
Alexander Udalov
a6610d1b0c Drop obsolete JVM intrinsics, rename JavaClassArray -> ArrayOf 2016-03-28 14:24:23 +03:00
Alexander Udalov
d62535c388 Minor, drop unnecessary workaround of obsolete issue 2016-03-28 14:14:56 +03:00
Alexander Udalov
a8e6a9c828 Minor, add JDK to multi-module Java analysis test 2016-03-28 14:14:55 +03:00
Alexander Udalov
2dab56db8e Do not report "incomplete hierarchy" in decompiler
It's fine if the decompiler can't find some classes; it won't do anything
except render their FQ names which are fully available
2016-03-28 14:13:59 +03:00
Alexander Udalov
8d64ed7f3f Do not produce error classes for not found annotations 2016-03-28 14:13:59 +03:00
Alexander Udalov
e915e1548c Fix multiple 'unresolved java classifier' errors
Use the same component (NotFoundClasses) as in loading of compiled Kotlin
symbols.

Some tests were changed to avoid a diagnostic that is now reported when a
non-found class is encountered in a signature (e.g. staticMethod.1.java where
JDK seems to be not configured)

 #KT-10493 Fixed
 #KT-10820 Fixed
 #KT-11368 Fixed
2016-03-28 14:13:59 +03:00
Alexander Udalov
873cf439de Drop MissingDependencyErrorClass and related code
No longer needed because of the proper support for missing classes in
deserialization (see NotFoundClasses.kt)
2016-03-28 14:13:59 +03:00
Alexander Udalov
db5e00bcc0 Report error if some deserialized classes are missing in dependencies
Technically we often can compile code which uses missing classes (as long as
nothing is called on them) but it seems better to let the user know something's
wrong in their setup before the error manifests itself at runtime. Also the
Java compiler does the same

 #KT-4328 Fixed
2016-03-28 14:13:59 +03:00
Alexander Udalov
accf80a624 Do not create error types in deserialization on not found classes
For a class which cannot be resolved in the current deserialization session,
create a special ClassDescriptor instance with an empty scope and put in the
correct package under the current module. Codegen will perfectly map such class
to its JVM signature (because only the precise FQ name is needed, which is
available). For more details on this approach, see the issue description.

 #KT-4328 Fixed
 #KT-11497 Fixed
2016-03-28 14:13:59 +03:00
Alexander Udalov
3944d56ac2 Minor, remove unnecessary type parameter in CallChecker#check 2016-03-28 14:13:59 +03:00
Alexander Udalov
2c81824689 Rework and prettify CompileKotlinAgainstCustomBinariesTest
Do not use MockLibraryUtil to compile Kotlin code: this allows to avoid
rebuilding kotlin-compiler.jar every time before running a test. Also extract a
few utilities, use Kotlin stdlib where possible
2016-03-28 14:13:59 +03:00
Zalim Bashorov
9f069843e8 Minor: precise incremental compilation no longer experimental 2016-03-28 12:57:04 +03:00
Ilya Gorbunov
3779fb2521 Minor: Do not recompile markdown every time. 2016-03-26 01:02:53 +03:00
Natalia Ukhorskaya
470027bfd8 J2K: specify type for variables with anonymous type if they have write accesses 2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
23908fb8f3 J2K produces unresolved 'toArray' calls for java Collection#toArray()
#KT-11600 Fixed
2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
79bac598bf J2K breaks code if applied to a java class with static field which is accessed from another java class
#KT-11587 Fixed
2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
c7ae9981cb J2K: Quote '$' symbols in converted strings
#KT-6800 Fixed
2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
4bc4f0bce7 J2K: not initialized field of non-primitive type should have null initializer
#KT-11544 Fixed
2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
8616c9588d J2K, minor: pass nullability as additional parameter for more flexibility 2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
59930c32c4 Debugger, refactoring in tests: add ability to skip some variables in printFrame 2016-03-25 20:27:19 +03:00
Natalia Ukhorskaya
a09814961f Debugger: more precise context expression in codeFragment
#KT-11380 Fixed
2016-03-25 20:27:19 +03:00
Yan Zhulanow
77b7b46542 Kapt: fix sequential build with kapt when Kotlin source file was modified 2016-03-25 19:32:18 +03:00
hansenji
100252b18b Handle elements in two different classes with the same name annotated with the same annotation. 2016-03-25 19:32:18 +03:00
hansenji
b9dc92d7cf Removed Test for deprecated annotation 2016-03-25 19:32:18 +03:00
Valentin Kipyatkov
e62c8a0860 Unescape single quote when converting to string template 2016-03-25 18:11:34 +03:00
Valentin Kipyatkov
7f2ccb5613 KT-11295 AssertionError in ConvertToStringTemplateIntention.fold
#KT-11295 Fixed
2016-03-25 18:11:34 +03:00
Valentin Kipyatkov
c1499e7cb6 KT-11576 Unused symbol warning: add quickfix for annotated declarations
#KT-11576 Fixed
2016-03-25 18:11:34 +03:00
Valentin Kipyatkov
03d7c5764d Moved confusing utility from KtPsiUtil (but the code in KtLightClassForExplicitDeclaration is still incorrect!) 2016-03-25 18:11:34 +03:00
Valentin Kipyatkov
02d309c9cf KT-11481 "Add import" intention is not available for 'is' branches in when
#KT-11481 Fixed
2016-03-25 18:11:34 +03:00
Nikolay Krasko
f93bf9fbb4 Fix generating folder for java8 tests 2016-03-25 17:33:32 +03:00
Alexey Sedunov
c4eb8ceb53 Compiler Daemon: Use clearHandlersCache() method instead of Reflection API
(old code may fail in IDEA Ultimate due to field obfuscation)
2016-03-25 16:00:08 +03:00
Alexey Sedunov
2d0b06dc2d Project Configuration: Do not rely on field names when reflecting on LibraryOptionsPanel (they can differ due to Ultimate obfuscation) 2016-03-25 15:56:28 +03:00
Alexey Sedunov
2dd83b12d3 Misc: Fetch Spring libraries to dependencies directory 2016-03-25 15:21:16 +03:00
Nikolay Krasko
00239914fa Minor: refactoring 2016-03-25 14:10:41 +03:00
Nikolay Krasko
0f6e7cc277 Minor: add contract annotation 2016-03-25 14:10:41 +03:00
Nikolay Krasko
1524f099b3 Rewrite KotlinCliJavaFileManagerTest with KotlinTestWithEnvironment 2016-03-25 14:10:41 +03:00
Nikolay Krasko
5fb7b1be80 Move java8 tests 2016-03-25 14:10:41 +03:00
Nikolay Krasko
3a747e0c38 Refactoring: move utility methods to idea module 2016-03-25 14:10:41 +03:00
Zalim Bashorov
4b8c9c8b39 Minor: fix testdata 2016-03-24 22:28:40 +03:00
Zalim Bashorov
9a9b863c9d IC: add tests with moving files
Additionally added the ability to use directories in IC tests.

 #KT-8002 Obsolete
2016-03-24 22:28:40 +03:00
Kirill Rakhman
d230afe726 Reuse BindingContext and perform quickfix directly on PSI instead of the editor 2016-03-24 19:39:57 +01:00
Kirill Rakhman
cc730c36ad Implement quickfix to remove '.java' when KClass is expected
Fixes #KT-11078
2016-03-24 19:39:57 +01:00
Alexey Sedunov
5b272921e6 Misc: Favor intellij-core over idea-full in the idea-completion dependencies (to prevent loading of scambled PsiFileImpl from Ultimate SDK) 2016-03-24 20:49:09 +03:00
Valentin Kipyatkov
384183ad7b Intention to convert raw string literal to ordinary one
#KT-5208 Fixed
2016-03-24 19:05:56 +03:00
Valentin Kipyatkov
ecebb80bbe Added intention description 2016-03-24 19:05:55 +03:00
Valentin Kipyatkov
3d422b47cb Intention action to convert string to raw string
(half of KT-5208)
2016-03-24 19:05:55 +03:00
Alexey Sedunov
86c551b27b Misc: Сhangelog update 2016-03-24 18:23:34 +03:00
Michael Bogdanov
6547fa1d4c Replace hashes in bytecode listing tests with 'HASH' 2016-03-24 16:17:58 +01:00
Alexey Sedunov
2692a7d35c Spring Support: Inspection for Spring configuration 2016-03-24 17:42:13 +03:00
Alexey Sedunov
0eda1f3969 Spring Support: SpEL injections
#KT-11406 Fixed
2016-03-24 17:42:12 +03:00
Alexey Sedunov
28b8cfc3d5 Spring Support: Show Spring line markers for Kotlin classes
#KT-3741 Fixed
2016-03-24 17:42:11 +03:00
Alexey Sedunov
8c72b02c9b Light Classes: Constant expression evaluator for light annotation arguments 2016-03-24 17:42:10 +03:00
Alexey Sedunov
0a71eb777e Spring Support: Implement Spring-specific references 2016-03-24 17:42:08 +03:00
Alexey Sedunov
72a17b0671 Spring Support: Inspection for final Spring-annotated classes/functions
#KT-11098 Fixed
2016-03-24 17:42:07 +03:00
Alexey Sedunov
161d11d9ec Spring Support: Test framework 2016-03-24 17:42:06 +03:00
Alexey Sedunov
d8a033e8a5 Misc: Configure dependency on Spring support and related plugins: J2EE,
JSP, persistence, database tools, CSS
2016-03-24 17:42:05 +03:00
Alexey Sedunov
8e7e3a3b99 Misc: Configure IDEA Ultimate dependencies 2016-03-24 17:42:04 +03:00
Alexey Sedunov
d76e8f2d67 Light Classes: Generate light wrappers for name identifiers 2016-03-24 17:42:01 +03:00
Alexey Sedunov
fefa0baeee Light Classes: Generate light wrappers for annotation entries 2016-03-24 17:41:58 +03:00
Alexey Sedunov
4debf0cc45 Java To Kotlin: KtLightModifierList 2016-03-24 17:41:57 +03:00
Alexey Sedunov
19850ffb86 Java To Kotlin: KtLightModifierList.java (rename to .kt) 2016-03-24 17:41:56 +03:00
Michael Bogdanov
6737bc12f1 Fix for KT-11519: Version 1.0.1 fails with NPE in com.sun.beans.TypeResolver.resolve() where v1.0.0 works fine
#KT-11519 Fixed
2016-03-24 15:18:31 +01:00
Valentin Kipyatkov
f0ef04a6a8 Changed highlighting range for unresolved annotation name to not include '@'
#KT-11529 Fixed
2016-03-24 16:44:58 +03:00
Michael Bogdanov
0fdba49315 Test for KT-11514: Platform Double is converted to Int when comparing to Int literal
#KT-11514 Fixed
2016-03-24 14:11:25 +01:00
Michael Bogdanov
d0aac74e72 Fix for KT-11590: IllegalAccessError: SAM adapter generated with invalid accessibility for inline function
#KT-11590 Fixed
2016-03-24 14:11:25 +01:00
Alexey Tsvetkov
33cd661aad Minor: removed experimental-ic-build.log duplicating build.log 2016-03-24 14:57:17 +03:00
Alexey Tsvetkov
f3ee255436 Normalize output for windows tests 2016-03-24 14:55:27 +03:00
Michael Bogdanov
a851bb0fff Fix for KT-11584: Regression in 1.0.1: incorrect comparison of Long! with integer constant
#KT-11584 Fixed
2016-03-24 08:51:43 +01:00
Denis Zharkov
628f9050fb Report UNUSED_EXPRESSION on anonymous functions 2016-03-23 20:11:51 +03:00
Denis Zharkov
16736e3a0e Resolve anonymous functions in block as expression
#KT-7265 Fixed
2016-03-23 20:08:15 +03:00
Mikhail Glukhikh
77e37ff75d Changelog from 1.0.1 added 2016-03-23 15:27:13 +03:00
Mikhail Glukhikh
46290798ca Refactoring (same logic in ControlFlowInformationProvider / DataFlowValueFactory) 2016-03-23 15:04:13 +03:00
Mikhail Glukhikh
32e7f9e58f Correct handling of local class / anonymous object cases for KT-10445 / KT-10042 2016-03-23 15:04:09 +03:00
Mikhail Glukhikh
b975b7d26e More accurate CFG for local class constructors (now they are not considered unconditionally executed) #KT-10042 Fixed 2016-03-23 15:04:05 +03:00
Mikhail Glukhikh
8756cba2f5 Minor: test renamed 2016-03-23 15:04:01 +03:00
Mikhail Glukhikh
bc4ec97043 Captured value initialization is no more allowed #KT-10445 Fixed 2016-03-23 15:03:50 +03:00
Anton Sukhonosenko
e8b665f600 #KT-10883 Fixed 2016-03-22 17:23:16 +01:00
Alexander Udalov
348125acb3 Fix visibility of protected classes in bytecode
Protected should be translated to public as in Java so that everything would
work at runtime. The real visibility is still saved to an InnerClasses
attribute

 #KT-8269 Fixed
 #KT-9246 Fixed
 #KT-10143 Fixed
2016-03-22 18:42:34 +03:00
Valentin Kipyatkov
28c5dde875 KT-7715 Highlight var's that can be replaced by val's
#KT-7715 Fixed
2016-03-22 18:01:52 +03:00
Ilya Chernikov
e5b5a8db42 Rollback partially a commit that dropped removePerfOutput functionality, fixes CompilerDaemonTest.testHelloApp
The commit was done by @yole in assumption that the function only affects PARF lines generated by compiler, but similar lines generated
by daemon infrastructure were affected as well, the mentioned test was failing since. CliBaseTest class was refactored, I place the removePerfOutput
function into AbstractCliTest class.
2016-03-22 11:15:38 +01:00
Michael Bogdanov
00cb2705da Add a test verifying anonymous object transform is performed correctly with ClassBuilder. 2016-03-21 18:37:28 +03:00
Ilya Gorbunov
1ae0040ca3 Minor: make variables initialized in defineClass lateinit instead of nullable. 2016-03-21 18:37:27 +03:00
Ilya Gorbunov
d9329456b5 ClassBuilder-to-ClassVisitor adapters should invoke methods of adapted ClassBuilder.
Call classBuilder.defineClass instead of ClassVisitor.visit.
Call classBuilder.newField instead of ClassVisitor.visitField.
2016-03-21 18:37:27 +03:00
Kirill Rakhman
146dca2cd6 Formatter: Remove spaces between expression and parentheses
#KT-11476 Fixed
2016-03-21 17:56:04 +03:00
Denis Zharkov
56477f0af8 Fix loading container type from Java
Load immutable flexible upper bound for 'Iterable<? super T>'

We load 'Collection<? super CharSequence>' as 'MutableCollection<in CharSequence>'
instead of 'MutableCollection<in CharSequence>..Collection<*>'
because it's obviously not typesafe to use any 'Collection<*>'
as argument for such type.

But there'se nothing bad with loading 'Iterable<? super CharSequence>'
as 'MutableIterable<*>..Collection<*>'. Same for other declarations that have
covariant mutable representation (currently Iterator, ListIterator).

Also there are useful use-cases when it's neccessary to use 'Iterable<*>'
as an argument for parameter with type 'Iterable<? super T>' (see matchers.kt test).

NB: Star-projections appear in examples because types like 'Collection<in CharSequence>'
with conflicting use-site projections are invalid in Kotlin, but they are valid in Java.
2016-03-21 16:46:46 +03:00
Denis Zharkov
c3e44ec199 Fix loading Java type arguments
Type arguments with use variance in java contradicting to Kotlin declaration-site variance should be loaded as star-projections

 #KT-11492 Fixed
2016-03-18 19:07:27 +03:00
Denis Zharkov
838fcf9a57 Load contavariantly projected collections in Java as mutable
#KT-3068 Fixed
2016-03-18 19:07:27 +03:00
Denis Zharkov
e54b25a35a Fix StackOverflowError while mapping recursive intersection-type
#KT-10972 Fixed
2016-03-18 19:07:27 +03:00
Denis Zharkov
67b59fa72f Prohibit nested intersection types in return position
#KT-11490 Fixed
2016-03-18 19:07:27 +03:00
Mikhail Glukhikh
90b5d3b9f5 Minor if-to-when refactoring 2016-03-18 18:54:01 +03:00
Mikhail Glukhikh
fa069214fd if to when intention now detects effectively else branches in subsequent code + performs more accurate comment handling #KT-10750 Fixed
Also #KT-11424 Fixed
2016-03-18 18:47:32 +03:00
Michael Bogdanov
c3d450f050 Fix for KT-11479: 1.0.2 Snapshot: CompilationException: Back-end (JVM) Internal error: Couldn't inline method call
#KT-11479 Fixed
2016-03-18 15:43:18 +01:00
Natalia Ukhorskaya
dde11b7f50 Report more info for errors from jdi 2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
6b4ea1ff19 Debugger: do not report errors from context file
#KT-11455 Fixed
2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
6752d0f180 Descriptors from library source should be visible from descriptors from libraries class files 2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
5b489d1986 Debugger: use StackFrameProxy from IDEA instead of StackFrame from JDI to show error message when debug info in corrupted
#EA-76187 - IE: FrameVisitor.findLocalVariable Fixed
2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
589d7007fc Skip additional visibility check for java classes in debug mode 2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
b79aa13242 Complete private members from libraries in Evaluate Expression dialog 2016-03-18 15:19:03 +03:00
Natalia Ukhorskaya
26c153639a Skip visibility check when resolving class in debug mode
#KT-11326 Fixed
2016-03-18 15:19:03 +03:00
Alexander Udalov
0fd8bec2ef Convert Java model to Kotlin, put in several files
Also move JavaPropertyInitializerEvaluator to ../components/
2016-03-18 14:48:58 +03:00
Alexander Udalov
0d74fc2290 Minor cleanup in Java model: fix warnings, remove unused 2016-03-18 14:48:57 +03:00
Alexander Udalov
0a54464420 Minor, JavaClass#getOriginKind -> isKotlinLightClass 2016-03-18 14:48:56 +03:00
Alexander Udalov
0ba0e2b10d Delete JavaTypeSubstitutorImpl, use PsiSubstitutor in JavaClassImpl
Also delete related tests
2016-03-18 14:48:56 +03:00
Alexander Udalov
291c713d8b Cleanup JavaElement model from methods used only in substitutor
Downcast everything used in JavaTypeSubstitutorImpl to *Impl, remove methods
from interfaces, inline/move some of them
2016-03-18 14:48:55 +03:00
Alexander Udalov
26bf0dca13 Remove interface JavaTypeSubstitutor, use implementation
After 151e55b JavaTypeSubstitutor is only used from inside PSI-based
implementation of Java structure
2016-03-18 14:48:55 +03:00
Alexander Udalov
e42cb2af40 Render 'annotation class not found' for error types in tests
After 13ae3d9 it became unclear whether an annotation mentioned in test data is
resolved or not, this change fixes that
2016-03-18 14:48:54 +03:00
Alexander Udalov
70dd79d7e4 Minor, rename TypeConstructorImpl -> ClassTypeConstructorImpl 2016-03-18 14:20:43 +03:00
Alexander Udalov
13ae3d96ab Simplify TypeConstructorImpl, extend it from AbstractClassTypeConstructor 2016-03-18 14:20:43 +03:00
Michael Bogdanov
b95e27fd87 Fix for KT-11478: "Couldn't inline method call" error
#KT-11478 Fixed
2016-03-18 11:07:47 +01:00
Denis Zharkov
ce8add2802 Fix common supertype calculation
Use star-projections instead of 'out Any?' in corner cases

 #KT-11468 Fixed
2016-03-18 10:12:00 +03:00
Mikhail Glukhikh
bace881463 Quick fix to make var with private setter final #KT-10859 Fixed 2016-03-17 18:18:07 +03:00
Mikhail Glukhikh
efdf6b9569 Minor 2016-03-17 17:47:10 +03:00
Alexey Tsvetkov
d1a8c0d09b Enable default incremental compilation by default in IDEA
#KT-11360 fixed
2016-03-17 15:47:51 +03:00
Denis Zharkov
fecb64560b Minor. Decrease method visibility 2016-03-16 20:23:42 +03:00
Denis Zharkov
d9a6d15fe4 Add tests for obsolete issues
#KT-4628 Obsolete
 #KT-3897 Obsolete
 #KT-3898 Obsolete
 #KT-7523 Obsolete
2016-03-16 20:23:36 +03:00
Denis Zharkov
bfa0b69ba9 Simplify SamCodegenUtil.getOriginalIfSamAdapter
At the monent adapters are either:
- synthetic extensions (no overrides)
- static members:
fake override always has one overridden from super class,
that should be created as a result of SamAdapterDescriptor.createSubsitutedCopy(),
hence should be instance of SamAdapterDescriptor
2016-03-16 20:23:01 +03:00
Denis Zharkov
1d0c37ff20 Cache read classes and method nodes for inline
It decrease GENERATE phase nearly for 10%
2016-03-16 20:23:01 +03:00
Denis Zharkov
26081bf817 Support loading Java annotations with TYPE_PARAMETER target 2016-03-16 20:23:01 +03:00
Denis Zharkov
04eb5ff4f7 Move test loading Java TYPE_USE annotation to Java8 module
#KT-11454 Fixed
2016-03-16 20:23:00 +03:00
Denis Zharkov
85329e59ca Remove nullability annotations attached to TYPE_USE position in tests
They do not work anyway by many reasons:
- 'org.jetbrains.annotations.*' are not TYPE_USE targeted
- raw type with annotated arguments is something very weird and should be
investigated
2016-03-16 20:23:00 +03:00
Denis Zharkov
e96024017f Move and fix tests on typeEnhancement with TYPE_USE annotations 2016-03-16 20:22:59 +03:00
Denis Zharkov
a644dd3ae9 Create tests for TYPE_USE nullability annotations
- tests and declarations for checkerframework has been moved,
because they only Java 8 targeted
- tests for eclipse annotations has been just copied,
because there are two jars: one for Java 8 and other for earlier versions
2016-03-16 20:22:59 +03:00
Denis Zharkov
3f3c2bb272 Minor. Update eclipse nullability annotation sources
Accordingly to their repository
2016-03-16 20:22:58 +03:00
Denis Zharkov
c9c9f7ff38 Minor. Simplify LazyJavaClassMemberScope.getFunctionsFromSupertypes 2016-03-16 20:22:58 +03:00
Denis Zharkov
78c9dffe00 Refine return type of MemberScope.getContributedFunctions 2016-03-16 20:22:58 +03:00
Denis Zharkov
50d258e7f4 Optimize CF merge operations
Return incoming value if it's single
2016-03-16 19:27:28 +03:00
Denis Zharkov
4bea054e4b Optimize TowerResolver.run implementation
- run `processor` at each level instead of list construction
- make it as lazy as possible

Speed up analysis time nearly for 2-5%
2016-03-16 19:27:28 +03:00
Nikolay Krasko
ee50aec734 Don't add a blank line between one line class and object (KT-10965) 2016-03-16 18:41:28 +03:00
Alexey Tsvetkov
61090d7027 Refactoring: optimize createDefaultSourceDirectorySet 2016-03-16 16:43:25 +03:00
Alexey Tsvetkov
d1abc87857 Fix NoSuchMethodError with Gradle 2.12
#KT-11351 fixed
2016-03-16 16:43:24 +03:00
Alexey Tsvetkov
d6c2f77125 Fix Process.waitFor freeze on windows when gradle daemon is stopped during tests 2016-03-16 16:43:24 +03:00
Alexander Udalov
b2cffeeb24 Fix 'IDE' scope file pattern by including 'src' recursively
See b328f37
2016-03-16 16:10:26 +03:00
NitroG42
c66f4450d8 Add new expressions to template
Added two missing expressions for live-templates, the className(), and
the functionName()
2016-03-16 13:40:33 +01:00
Zalim Bashorov
f00615c00b Minor: source sources of SourceToOutputMap when dump it to make IC tests more stable 2016-03-16 14:42:13 +03:00
Kirill Rakhman
48310d66da Implement quick fix for converting primitive types
#KT-10476 Fixed
2016-03-16 10:58:29 +01:00
Alexander Udalov
b328f37495 Add all IDE modules to scope 'IDE', exclude tests
Exclude test roots (add only src/* and testData/*) to prevent clash with the
built-in "Tests" scope
2016-03-16 12:52:20 +03:00
Nikolay Krasko
94e8ba7c4b "Code formatter doesn't remove spaces in single line properties" fixed (KT-11076)
#KT-11076 Fixed
2016-03-16 12:38:26 +03:00
Nikolay Krasko
2db888a646 Accurate work with adding/removing context of tests.
Need this because of KEEP_FIRST_COLUMN_COMMENT setting. Comments accidentally left on first
collumn cause the bad formatting.

 #KT-4175 Fixed
2016-03-16 12:38:24 +03:00
Nikolay Krasko
8ad0c1ac01 Force new line if the whitespace between comments doesn't have a line break
Tweeking KEEP_FIRST_COLUMN_COMMENT setting and one-line comments generated on the same line.

 #KT-4175 In Progress
2016-03-16 12:38:23 +03:00
Nikolay Krasko
85bc32a884 Adjust move code tests for KEEP_FIRST_COLUMN_COMMENT option
#KT-4175 In Progress
2016-03-16 12:38:21 +03:00
Nikolay Krasko
085deec717 Make J2K pay more attention to original formatting of comments. Better support for KEEP_FIRST_COLUMN_COMMENT
#KT-4175 In Progress
2016-03-16 12:38:20 +03:00
Nikolay Krasko
a9f11d2c64 Always add new line space with space before to deal with KEEP_FIRST_COLUMN_COMMENT option
InvertIfConditionIntention, RemoveBracesIntention tests are affected

 #KT-4175 In Progress
2016-03-16 12:38:19 +03:00
Nikolay Krasko
6193987d0d Reformat code should not align comments (KT-4175)
#KT-4175 In Progress
2016-03-16 12:38:17 +03:00
Natalia Ukhorskaya
334c6ba71a Refactoring: rename kotlin-android-plugin to idea-android 2016-03-15 20:26:14 +03:00
Natalia Ukhorskaya
d2de74226e Refactoring: rearrange dependencies in android modules 2016-03-15 20:25:54 +03:00
Natalia Ukhorskaya
ec9a6aacd5 Refactoring: move android-extensions-* module under separate module group 2016-03-15 20:25:52 +03:00
Natalia Ukhorskaya
78d4860215 Refactoring: rename android-jps-plugin to android-extensions-jps 2016-03-15 20:25:50 +03:00
Natalia Ukhorskaya
bf4c92d903 Refactoring: rename android-idea-plugin to android-extensions-idea 2016-03-15 20:25:48 +03:00
Natalia Ukhorskaya
7e6fa8ef17 Refactoring: rename android-compiler-plugin to android-extensions-compiler 2016-03-15 20:25:45 +03:00
Natalia Ukhorskaya
93161be199 Configure Kotlin: restore all changed files in undo action 2016-03-15 20:25:42 +03:00
Natalia Ukhorskaya
e31202ff7c Show only changed files in notification "Kotlin not configured" 2016-03-15 20:25:36 +03:00
Natalia Ukhorskaya
7c3dd3e139 Minor: fix warnings 2016-03-15 20:21:21 +03:00
Natalia Ukhorskaya
6b48eae03e Configure Kotlin for Android: add kotlin plugin to project build.gradle file.
Do not add mavenCentral dependency if jcenter is present
2016-03-15 20:20:24 +03:00
Natalia Ukhorskaya
e611154580 Minor: fix testData after e2d2d696c0d8b24ebe310fd880a912d6eb428872s 2016-03-15 14:53:03 +03:00
Ilya Gorbunov
02bb7f2f0d Remove the compiler option "Xmultifile-facades-open" 2016-03-15 14:10:33 +03:00
Natalia Ukhorskaya
e2d2d696c0 Add function name to fake local variable for inline argument 2016-03-15 13:25:49 +03:00
Mikhail Glukhikh
a830d80dac Values equality no more provides guarantee for their types equality (for open types or types with overridden equals) #KT-11280 Fixed 2016-03-15 11:01:39 +03:00
Michael Bogdanov
3eb6749377 Call done on when mapping transformation end 2016-03-15 10:04:28 +03:00
Alexander Udalov
4f77b02a58 Rename 'ins' -> 'Ins' in BuiltinsPackageFragment and related classes 2016-03-14 20:41:46 +03:00
Alexander Udalov
777ef32d65 Move AnnotationsImpl to frontend, delete unused DefaultAnnotationArgumentVisitor 2016-03-14 20:05:19 +03:00
Alexander Udalov
11409ec6cf Move some function type utilities from descriptors to frontend 2016-03-14 19:45:09 +03:00
Alexander Udalov
63eb6712eb Rename getParameterTypeProjectionsFromFunctionType -> getValueParameterTypesFromFunctionType
Also add getValueParametersCountFromFunctionType which doesn't create a new
list every time but only returns the number of value parameters
2016-03-14 19:45:08 +03:00
Alexander Udalov
5b7115dc38 Minor, drop deprecated KotlinBuiltIns.getExtensionFunction 2016-03-14 19:45:08 +03:00
Alexander Udalov
516484c905 Use DFS in isFunctionTypeOrSubtype
To prevent exponential working time on weird hierarchies
2016-03-14 19:24:18 +03:00
Alexander Udalov
117d0bcf03 Fix multiple exceptions related to subtypes of function types
The main change is in FunctionsTypingVisitor#visitLambdaExpression, where we
incorrectly allowed subtypes of function types to be expected type during
resolution of lambdas

Also see EA-70485

 #KT-9820 Fixed
2016-03-14 19:24:17 +03:00
Alexander Udalov
33ff1e1e29 Use correct function to check for function type in InlineParameterChecker
There's no use of noinline/crossinline modifiers on parameters of _subtypes_ of
function types

 #KT-11411 Fixed
2016-03-14 19:24:08 +03:00
Alexander Udalov
c18fab82e5 Simplify and rename function type utilities
- isFunctionType -> change the only usage in TracingStrategyForInvoke to check
  for exact function type
- isExtensionFunctionType -> change all usages to check for exact extension
  function type because extension function types are uninheritable in Kotlin
- isExactFunctionType -> isNonExtensionFunctionType
- isExactExtensionFunctionType -> isExtensionFunctionType
- isExactFunctionOrExtensionFunctionType -> isFunctionType
- isFunctionOrExtensionFunctionType -> isFunctionTypeOrSubtype
2016-03-14 19:24:07 +03:00
Alexander Udalov
e308f2acdb Minor, fix warnings and remove weird comments in KotlinBuiltIns 2016-03-14 19:24:07 +03:00
Alexander Udalov
2ce661af98 Rename KotlinBuiltIns.getFunctionType -> createFunctionType, move to functionTypes.kt 2016-03-14 19:24:06 +03:00
Alexander Udalov
fd344561fc Move static function type utilities from KotlinBuiltIns to functionTypes.kt 2016-03-14 19:24:05 +03:00
Mikhail Glukhikh
569a5888ff do...while (true) is now considered infinite loop in CFA #KT-3896 Fixed
Also #KT-3883 Fixed
Also #KT-4986 Fixed
2016-03-14 16:13:14 +03:00
Mikhail Glukhikh
4cf3ec3df2 Minor: ControlFlowInformationProvider cleanup 2016-03-14 16:13:05 +03:00
Mikhail Glukhikh
7232c5ccc1 Minor: FILE directives fixed in two tests 2016-03-14 15:49:50 +03:00
Michael Bogdanov
92f1a20d5f New name generation for transformed when classes 2016-03-14 12:22:06 +03:00
Michael Bogdanov
a72636afb8 Code clean 2016-03-14 11:26:51 +03:00
Michael Bogdanov
bec6126b06 Support when mapping transformation on inlining 2016-03-14 11:24:39 +03:00
Michael Bogdanov
b88260b4f9 RegenerationInfo renamed to TransformationInfo 2016-03-14 10:45:39 +03:00
Michael Bogdanov
c062fff633 All regeneration infos moved to one file 2016-03-14 10:45:38 +03:00
Michael Bogdanov
56d8e4d170 Old/NewClassName funs in RefenerationInfo converted to properties 2016-03-14 10:45:38 +03:00
Michael Bogdanov
bbb838765c Obtain regenerated class name through RegeneratedInfo 2016-03-14 10:45:37 +03:00
Michael Bogdanov
ddd992d3dd AnonymousObjectRegenerationInfo java->kotlin convertion 2016-03-14 10:45:37 +03:00
Michael Bogdanov
da76bf7b03 AnonymousObjectRegenerationInfo.java->AnonymousObjectRegenerationInfo.kt 2016-03-14 10:45:36 +03:00
Michael Bogdanov
7e3e1554fa Added canRemoveAfterTransformation method 2016-03-14 10:45:36 +03:00
Michael Bogdanov
8c9d8778eb Introduced base class for AnonymousObjectGeneration 2016-03-14 10:45:35 +03:00
Michael Bogdanov
c6007c91f7 AnonymousObjectGeneration refactoring 2016-03-14 10:45:35 +03:00
Michael Bogdanov
a0f050fc69 Removed AnonymousObjectGeneration from RegeneratedClassContext 2016-03-14 10:45:34 +03:00
Nikolay Krasko
60ee5441cf Update links in Editing Kotlin section 2016-03-13 19:53:18 +03:00
Mikhail Glukhikh
f76efb68f2 Strictfp on a class is now a warning #KT-11109 Fixed 2016-03-12 13:17:11 +03:00
Alexander Udalov
173a838f8c Minor, improve some usages of function type utilities
Re change in FunctionsHighlightingVisitor:
KBI#isFunctionOrExtensionFunctionType already takes care of supertypes, no need
to do additional loop
2016-03-11 21:11:25 +03:00
Alexander Udalov
52309cd10e Minor, drop handling of deprecated kotlin.Extension annotation 2016-03-11 21:11:24 +03:00
Alexander Udalov
90a48d3b35 Minor, move some utilities out of FunctionDescriptorUtil 2016-03-11 21:11:24 +03:00
Alexander Udalov
994dc46bcd Write nullability annotations on extension receiver parameters
#KT-5429 Fixed
2016-03-11 15:20:32 +03:00
Pavel V. Talanov
597c571f25 Fix diagnostic range when some qualifier is unresolved in "@a.b.c.Anno"
#KT-7747 Fixed
2016-03-11 15:00:02 +03:00
Natalia Ukhorskaya
35271af07c Do not convert invalid files to Kotlin 2016-03-11 13:56:10 +03:00
Natalia Ukhorskaya
468c869c0c Show notification for files converted to Kotlin after project sync 2016-03-11 13:56:07 +03:00
Natalia Ukhorskaya
ebaf9899b0 Convert Java Activity to Kotlin after gradle sync finished 2016-03-11 13:56:05 +03:00
Natalia Ukhorskaya
40e89c76a9 Android: add action to create new activity on Kotlin
#KT-11264 Fixed
2016-03-11 13:56:02 +03:00
Natalia Ukhorskaya
b50f2dc6e5 J2K: Use parameters nullability for method call 2016-03-11 12:08:10 +03:00
Natalia Ukhorskaya
c1df0e4aeb Minor: include AbstractJavaToKotlinCopyPasteConversionTest from idea module to J2K Tests run configuration 2016-03-11 12:08:10 +03:00
Natalia Ukhorskaya
c928237699 J2K: drop line breaks in some polyadic expressions 2016-03-11 12:08:10 +03:00
Natalia Ukhorskaya
f1b6bf7817 J2K: convert comments inside qualified expression correctly 2016-03-11 12:08:10 +03:00
Natalia Ukhorskaya
405b0b1df6 J2K: convert annotations in annotations parameters correctly
#KT-11126 Fixed
2016-03-11 12:08:10 +03:00
Natalia Ukhorskaya
7d594970ff J2K: convert protected member used outside of inheritors as public 2016-03-11 12:08:10 +03:00
Alexey Tsvetkov
52be775f28 Minor: add two accidentally deleted files to test case 2016-03-11 02:43:31 +03:00
Alexey Tsvetkov
d352905a72 Add incremental tests for parameters with default values 2016-03-10 23:36:40 +03:00
Ilya Gorbunov
d6506d9770 Minor: reformat code in JS stdlib 2016-03-10 23:24:29 +03:00
Alexey Tsvetkov
d7cda17d2a Minor: make it possible to run gradle incremental tests on CI
* Rename test so it won't be run by maven's integration-test phase
* Adjust allocated heap size
2016-03-10 23:00:11 +03:00
Pavel V. Talanov
5de4ce6f57 Minor, FunctionCodegen: add additional logging on missing function descriptor
Trying to diagnose light class building failures
2016-03-10 19:49:04 +03:00
Pavel V. Talanov
fc16d7c4fd Refactor, minor: extract exception logging to an util object 2016-03-10 19:49:03 +03:00
Pavel V. Talanov
9a5650a045 Add KtPsiFactory#createFileWithLightClassSupport
Allows to create light classes for KtFile built from text
2016-03-10 19:41:59 +03:00
Pavel V. Talanov
4246c7f326 Refactor: Provide API to create KtLightClassForFacade by synthetic file 2016-03-10 19:41:57 +03:00
Pavel V. Talanov
725f128b64 Minor: remove obsolete properties from KtLightClassForFacade 2016-03-10 19:41:55 +03:00
Michael Bogdanov
c38f28fb08 Restore last inline function call site line number on lambda inlining into @InlineOnly function 2016-03-10 17:08:17 +03:00
Denis Zharkov
2e9075115b Minor. Specify type arguments explicitly
Otherwise strange compilation error appears (see KT-11323)
2016-03-10 16:49:00 +03:00
Denis Zharkov
151e55b2fa Use descriptors for building SAM constructors
It helps to get rid of semantics duplicating and fixes known bugs

- SOE in OnlyAbstractMethodFinder.find
- type enhancement for SAM constructors

 #KT-11287 Fixed
 #KT-11322 Fixed
 EA-77989 Fixed
2016-03-10 16:49:00 +03:00
Denis Zharkov
b8b48c5f98 Extract common logic into AbstractTypeConstructor
Mostly it's about detecting loops in supertypes

Test data changes:
- Loops are being disconnected in Java classes too
- functions.kt: loops disconnection mechanism runs supertypes calculation,
so when we start check T it forces F' supertypes calculation, that ends
with CYCLIC_GENERIC_UPPER_BOUND reported on F

 #KT-11287 In Progress
2016-03-10 16:49:00 +03:00
Denis Zharkov
ea9f1b5649 Minor. Pull up method 2016-03-10 16:49:00 +03:00
Nikolay Krasko
d45fc3bad7 Avoid warnings from idea core during file system initialization on Windows.
Do not use idea custom file system for now.
See FileSystemUtil.java and IdeaWin32.java files for details.
2016-03-10 13:32:08 +03:00
Nikolay Krasko
518bd76f35 Don't write false values in SetSlice to binding context
Optimization is significant for USED_AS_RESULT_OF_LAMBDA slice
2016-03-10 13:30:02 +03:00
Nikolay Krasko
71f91c5ce7 Attempt to drop debug name for traces 2016-03-10 13:30:01 +03:00
Michael Bogdanov
1a5bf33190 Fix for KT-11034: Private set with @JvmStatic lateinit var doesn't compile
#KT-11034 Fixed
2016-03-10 10:17:27 +03:00
Ilya Gorbunov
856dd7d909 Minor: make AbstractBackspaceHandlerTest really abstract.
#KT-5728
2016-03-10 05:54:03 +03:00
Ilya Gorbunov
92003f626b kotlin.test: Make inline methods 'todo' and 'currentStackTrace' @InlineOnly not to loose stack trace.
Move related tests to separate file and verify the line numbers.
#KT-11348 Fixed
2016-03-10 04:28:24 +03:00
Pavel V. Talanov
c3a1643c6c Add test for obsolete KT-6481 Mark deprecated constructor calls with strikethrough 2016-03-09 18:41:00 +03:00
Alexey Tsvetkov
df3f163ee2 JS: inline safe calls
#KT-6912 fixed
2016-03-09 16:25:01 +03:00
Dmitry Jemerov
956e9f3847 Merge pull request #828 from cypressious/smart_lambda_param
Implement Smart Enter Processor for adding a lambda block
2016-03-09 12:39:19 +01:00
Kirill Rakhman
828a7de980 Simplify logic for last lambda fixer and set caret directly in first pass 2016-03-09 12:35:48 +01:00
Dmitry Jemerov
9cb980b211 Merge pull request #825 from mcgee/KT-5728
#KT-5728 Fixed
2016-03-09 12:27:36 +01:00
Alexander Udalov
8f7047817f Fix debugger testData after improving toString() of lambdas 2016-03-09 13:41:00 +03:00
Alexander Udalov
eef3631b8a Improve toString() for lambdas and function expressions
#KT-9952 Fixed
2016-03-09 10:49:26 +03:00
Alexander Udalov
bab127ad33 Remove some legacy codegen tests, move some to generated 2016-03-09 10:25:38 +03:00
Alexander Udalov
f8dfaf4599 Merge boxWithJava testData into box, delete BoxWithJava test 2016-03-09 10:25:38 +03:00
Alexander Udalov
16a0ddd2fb Merge boxMultiFile testData into box, delete BoxMultiFile test 2016-03-09 10:25:38 +03:00
Alexander Udalov
e115f80d6c Remove traces of 'boxWithStdlib' directory in other tests 2016-03-09 10:25:38 +03:00
Alexander Udalov
06a67e6602 Merge boxWithStdlib testData into box, delete BoxWithStdlib test 2016-03-09 10:25:38 +03:00
Alexander Udalov
22bfc9786a Add WITH_RUNTIME or WITH_REFLECT to boxWithStdlib testData 2016-03-09 10:25:38 +03:00
Alexander Udalov
2564a2f91f Do not include kotlin-reflect at runtime by default in codegen tests
Change some tests to either include reflection or to avoid using it
2016-03-09 10:25:38 +03:00
Alexander Udalov
20e36438e2 Move some tests from boxWithStdlib/ to box/
Move those tests which do not require neither stdlib nor reflect
2016-03-09 10:25:38 +03:00
Alexander Udalov
54a615fcd3 Support inlining 'arrayOf' and 'emptyArray' with no stdlib in classpath
Previously an exception was thrown on trying to inline arrayOf/emptyArray when
compiling with "-no-stdlib" (or in tests without a dependency on the stdlib),
because these functions were found in a built-in package fragment which does
not have the bytecode associated with it
2016-03-09 10:25:38 +03:00
Kirill Rakhman
f7af927e8f Don't set parameter names and register unresolved error correctly 2016-03-08 22:44:13 +01:00
Anton Sukhonosenko
5bb8bf7381 #KT-5728 Fixed
Code review fixes
2016-03-08 22:30:14 +03:00
Anton Sukhonosenko
31fea1d2b7 #KT-5728 Fixed 2016-03-08 22:30:07 +03:00
Dmitry Jemerov
bb4397612d fix tests: add inspection description 2016-03-08 19:04:23 +01:00
Dmitry Jemerov
649517be3a disable inspection by default 2016-03-08 17:43:25 +01:00
Manas Chaudhari
f54f56d86b Add quickfix for adding documentation 2016-03-08 17:43:16 +01:00
Manas Chaudhari
88fcad02a9 Implement Missing Documentation Inspection
#KT-1494 Fixed
2016-03-08 17:41:18 +01:00
Dmitry Jemerov
3626e90788 use Kotlin icon for Gradle framework support provider 2016-03-08 17:20:39 +01:00
Dmitry Jemerov
bfbd76cc14 KotlinIconProvider: J2K and cleanup 2016-03-08 17:20:36 +01:00
Dmitry Jemerov
26ebc075f4 KotlinIconProvider: rename to .kt 2016-03-08 17:20:32 +01:00
Dmitry Jemerov
ad48ff6a9e use regular Kotlin icon to represent Kotlin run configurations, leave old LAUNCH icon only for REPL
#KT-11041 Fixed
2016-03-08 17:20:30 +01:00
Dmitry Jemerov
94fc58885a use 16x16 icons for framework types and library presentations 2016-03-08 17:20:28 +01:00
Denis Zharkov
68f411395a Fix bridge generation for special builtin override
Use method itself signature as common bridge delegate

 #KT-11285 Fixed
2016-03-07 09:26:02 +03:00
Stanislav Erokhin
11f05005f6 Minor. Update run configuration Update-Dist-Run. 2016-03-07 06:14:21 +03:00
Kirill Rakhman
12237c3cba test lambda parameter smart enter processor 2016-03-05 00:49:26 +01:00
Ilya Gorbunov
9233d5a825 Minor: do not throw error immediately, return error message to 'require' who shall throw an IllegalArgumentException by itself. 2016-03-04 20:28:07 +03:00
Nikolay Krasko
79c00e14ca Restore structure of sources roots 2016-03-04 19:11:19 +03:00
Nikolay Krasko
2e7ac5e4bf Comment target to make changes more noticeable 2016-03-04 19:11:18 +03:00
Nikolay Krasko
ea340f2392 Do not depend on MOVE_SEARCH_FOR_REFERENCES_FOR_FILE global setting
Always search for references if something is under source root and disable search otherwise.

 #KT-11277 Fixed
2016-03-04 19:10:59 +03:00
Nikolay Krasko
8397a4cb5b Don't intercept move when there're no kotlin files
#KT-11277 Fixed
2016-03-04 19:10:05 +03:00
Mikhail Glukhikh
f9034fccb4 Changelog file 2016-03-04 17:09:46 +03:00
Pavel V. Talanov
1affb05b7b Fix typechecker in case of "for ((a, b) in) { }"
Fixes NDFDE
2016-03-04 16:52:34 +03:00
Pavel V. Talanov
363d545bd5 Parameters of function types are always considered local 2016-03-04 16:52:33 +03:00
Pavel V. Talanov
e121ef0fdc Add additional check to AbstractPsiCheckerTest
Check that KtDeclaration.resolveToDescriptor() utility does not throw
2016-03-04 16:52:32 +03:00
Pavel V. Talanov
37500e2cd5 Throw ISE earlier on passing certain types of declaration to ResolveSession#resolveToDescriptor() 2016-03-04 16:52:31 +03:00
Valentin Kipyatkov
5757a306aa Should fix EA-75417 2016-03-04 16:30:25 +03:00
Valentin Kipyatkov
7ba39bd8cf J2K: refactoring - AccessorBodyToExpression processing can be expressed as intention-based 2016-03-04 16:30:25 +03:00
Valentin Kipyatkov
05dc4c1c48 ResolutionFacade for synthetic files should be invalidated on changes in these synthetic files
Fixed EA-77017
2016-03-04 16:30:24 +03:00
Nikolay Krasko
28e85517eb Update project icon 2016-03-04 15:32:44 +03:00
Nikolay Krasko
bee13cd246 Update to IDEA 15.0.4 (143.2287.1) 2016-03-04 15:32:42 +03:00
Alexey Tsvetkov
a3893a3c2e Test IC for adding private inline function
#KT-9681 fixed
2016-03-04 15:11:27 +03:00
Alexey Tsvetkov
9523a8b88d Add missing enum entry added/removed tests
#KT-6200 fixed
2016-03-04 14:43:52 +03:00
Dmitry Petrov
3bbd8979e4 KT-9670: optimize Class <-> KClass wrapping/unwrapping as a special case of boxing/unboxing.
NB doesn't work for arrays of classes.
2016-03-04 10:14:21 +03:00
Dmitry Petrov
2ecb8896cc Converting optimization.boxing to Kotlin: convert & simplify 2016-03-04 10:14:21 +03:00
Dmitry Petrov
0555464a3b Converting optimization.boxing to Kotlin: rename files 2016-03-04 10:14:21 +03:00
Kirill Rakhman
a7ac01ee6f Implement Smart Enter Processor for the last function call argument being a lambda
Fixes #KT-6785
2016-03-03 23:48:29 +01:00
Dmitry Petrov
8660800af7 Constraint system builder shouldn't drop nullability when comparing signatures for specificity. 2016-03-03 19:23:43 +03:00
Dmitry Petrov
8a2b80fe3f Generalize signature comparison: checking for conflicting overloads.
Also, vararg parameter no longer conflicts with Array<out T>
(CONFLICTING_JVM_DECLARATIONS is reported, can be avoided using @JvmName).
2016-03-03 18:26:10 +03:00
Dmitry Petrov
4ac05f1cd8 Generalize signature comparison: callable references overloading conflict resolution. 2016-03-03 18:26:10 +03:00
Dmitry Petrov
c5f3cbc645 Generalize signature comparison: make it work for regular call overloading conflict resolution. 2016-03-03 18:26:10 +03:00
Dmitry Petrov
022162322d Introduce "flat signature" - a generalized abstraction for a (call) signatures that can be compared for specificity. 2016-03-03 18:26:10 +03:00
Dmitry Petrov
77b7128689 Check conflicting overloads for generic signatures. 2016-03-03 18:26:09 +03:00
Nikolay Krasko
ab962d9bae New project wizard with Gradle and Kotlin creates build.gradle with absent version (KT-11213)
#KT-11213 Fixed
2016-03-03 17:19:21 +03:00
Nikolay Krasko
b8ac6e27f5 Cache and postpone requests for plugin update status from UnsupportedAbiVersion notification 2016-03-03 17:19:21 +03:00
Nikolay Krasko
33b65ec692 Refactoring: remove updateHighlightingResult() method as all usages called it with false 2016-03-03 17:19:21 +03:00
Nikolay Krasko
d09139e53a Minor: add private modifiers 2016-03-03 17:19:21 +03:00
Nikolay Krasko
7e39c2321a Show the hint how to resolve incompatible ABI library problem (KT-11024) 2016-03-03 17:19:21 +03:00
Alexander Udalov
04eea69a82 Fix Java 8 codegen box tests 2016-03-03 17:08:47 +03:00
Alexey Tsvetkov
4aa171c1b3 Minor: wait for gradle daemon to stop in tests
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
2140c270d7 Minor: replace warning with an assert
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
6ab868ae33 Print file paths relative to project root in gradle incremental compilation logs
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
8a0bd9446b Minor: remove duplicated daemon stop in tests
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
6574f60730 Minor: ignore some incremental tests for gradle
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
ba386f031b Pass isPackage = false when processing class proto
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov
eff972d613 Recompile files with errors next time
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
7dc35aa343 Always call after compile hook
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
402436f3eb Add dummy files to fix gradle incremental tests
Gradle won't call kotlin task if source directory is empty

KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
be44db7bd3 Rebuild and compare output class files in gradle incremental tests
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
9e3284ff2a Make some functions private in classFileComparison.kt
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
7a7562d685 Build incremental testing utils to kotlin-build-common-test.jar
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov
239e217d19 Move DebugXProtoBuf classes to build-common
KT-8487
2016-03-03 16:45:19 +03:00
Ilya Chernikov
42cbd940c3 simple test on dependent module recompilation
KT-8487
2016-03-03 16:45:18 +03:00
Ilya Chernikov
1f83745862 Fixing destination dir handling to avoid warning from kotlin compiler
KT-8487
2016-03-03 16:45:18 +03:00
Ilya Chernikov
b470bdda23 Class added to proguard - was missing in gradle plugin when incremental compilation is on
KT-8487
2016-03-03 16:45:18 +03:00
Alexey Tsvetkov
7e6c1c75f4 Remove classfile for modified files too
KT-8487
2016-03-03 16:45:18 +03:00
Alexey Tsvetkov
af0925056e Use fresh wrapper version
KT-8487
2016-03-03 16:45:18 +03:00
Alexey Tsvetkov
d730cff88a Add new gradle wrapper to tests
KT-8487
2016-03-03 16:45:18 +03:00
Alexey Tsvetkov
3b697e8693 Minor: simplify File.isKotlinFile utility function
KT-8487
2016-03-03 16:45:18 +03:00
Alexey Tsvetkov
f2cde80aaf Minor: remove unused functions
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
df157f9db3 Reuse incremental test modification utils from build-common
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
8df209b436 Move incremental test modification utils to build-common
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
f4aed97d52 Extract incremental test modification utils
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
62dce975b3 Fix case when there are only removed kotlin files
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
7856bd5d0a Add log parser tests
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
4f2f0f0a60 Remove dependency on kotlin-test in IC test
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov
f3079a3b75 Add kotlin test to gradle incremental build tests dependencies
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
8e4c11a1e6 Allow using more memory for gradle tests
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
9fba1a9c71 Move gradle test settings to separate files
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
a5b28ac62a Recompile subclasses in gradle
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
1893a6e15b Remove getting lookups with generated classes fq-names
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
c955a399a3 Exclude from compilation only files that were compiled at last iteration
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
f93562299c Reuse code from build-common
KT-8487
2016-03-03 16:45:16 +03:00
Alexey Tsvetkov
a5e3ca3596 Minor: change formatting, add logging
KT-8487
2016-03-03 16:45:15 +03:00
Alexey Tsvetkov
a13cf73a5b Minor: put files to set
KT-8487
2016-03-03 16:45:15 +03:00
Alexey Tsvetkov
579b49c7f3 Compile using -module xml
KT-8487
2016-03-03 16:45:15 +03:00
Alexey Tsvetkov
5028184c2a Minor: remove commented code
KT-8487
2016-03-03 16:45:15 +03:00
Alexey Tsvetkov
fa86653ddd Minor: optimize imports
KT-8487
2016-03-03 16:45:15 +03:00
Ilya Chernikov
6b9c3e5eb6 placing incremental compilation under "experimentalIncremental" option
KT-8487
2016-03-03 16:45:15 +03:00
Ilya Chernikov
819735e073 Adding extended gradle incremental cache implementation with map from sources to classfiles and some exposed functionality from parent class, using it to clean classfiles and find dirty lookups from removed files, refactoring dirty lookup calculation
KT-8487
2016-03-03 16:45:15 +03:00
Ilya Chernikov
4be395dcee Implementing weak variant of testing for jps-based tests - test passes if gradle compiles at least all expected files, but if it compiles more - it is not a failure; using this variant for parametrized tests
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
ddf3ca276b Implementing workaround for not being able to set java task classpath statically and therefore making it unable to detect changes in kotlin classes
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
df63fc30f6 (temp) disabling copying on kotlin-build-sources.jar in attempt to run maven build on TC
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
4809e8755e Implementing daemon restart mechanism to prevent problems with low memory watcher (TODO: investigate!)
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
c6fe18fbe0 Adding runtime dependency to incremental tests's build.gradle, fixes some tests from jps
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
a1ddbb3fe5 skipping tests that using "touch" modification, since gradle do not consider mere timestamp touching as a change and do not call kotlin plugin on it
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
c5617f1274 Adding automated parametrized tests for all jps-plugin tests
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
7b54751092 Implementing test infrastructure for chcking incremental builds and for importing and executing jps-lugin tests, adding several tests manually
KT-8487
2016-03-03 16:45:14 +03:00
Ilya Chernikov
cde89cb1e8 Implementing support for running gradle tests with daemon
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
9498235407 Adding cashes versios handling, refactoring sources to compile computing, minor output refactorings
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
db3b6ff10b Switching gradle plugin to incremental compilation based on build lib
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
d3d854ec7d Preparing build lib for migrating gradle plugin on it: moving ArgumentUtils from jps plugin, adding buildUtils with incremental compilation functions extracted from kotlinBuilder, minor tweak to lookup storage dump
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
6789f2ff0f adding build lib to maven part, adding it's contents to kotlin-compiler-embeddable
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
ebae665b78 Adding missing keep statement to proguard config
KT-8487
2016-03-03 16:45:13 +03:00
Ilya Chernikov
d4a86b7f6d Generate proper sources jar for compiler-embeddable, fixing problem with locating embeddable compiler jar in tests, revealed by the change
KT-8487
2016-03-03 16:45:12 +03:00
Ilya Chernikov
66f1f87757 Additional check of analyze resul, prevents a problem of passing BindingContext.EMPTY to the generation stage, fixes kapt tests in gradle plugins
KT-8487
2016-03-03 16:45:12 +03:00
Alexander Udalov
daab3db062 Add WITH_RUNTIME and WITH_REFLECT directives to box tests
Currently all tests in boxWithStdlib/ run with both runtime and reflection
included; eventually they'll be merged into box/ using these directives
2016-03-03 16:11:21 +03:00
Alexander Udalov
f47cc5ce2f Fix runtime dependency in codegen/box tests, delete old doTestWithStdlib logic
Codegen tests in "compiler/testData/codegen/box" started to run with
ConfigurationKind.ALL accidentally in 933be1e. This commit fixes it
2016-03-03 16:08:18 +03:00
Alexander Udalov
5488972b53 Minor, don't create empty tmpdir in codegen tests w/o Java 2016-03-03 16:08:18 +03:00
Alexander Udalov
d011fa8dc6 Add FULL_JDK to tests in codegen/boxWithStdlib/fullJdk/
Drop the old scheme which relied on the directory name
2016-03-03 16:08:18 +03:00
Alexander Udalov
dc085c45b7 Improve exception on creating KClass for classes which are not classes in Kotlin 2016-03-03 16:08:18 +03:00
Alexander Udalov
4553afbd0c Make PropertyAccessorDescriptor#hasBody a front-end utility 2016-03-03 16:08:18 +03:00
Alexander Udalov
ae14d185eb Support setters for Java-method-based properties in reflection
Also heuristically support the corner case of multiple properties with the same
name and signature in a Java class, see the comment in
KDeclarationContainerImpl

 #KT-11258 Fixed
2016-03-03 16:08:18 +03:00
Alexander Udalov
14b1a3a048 Don't fail on requesting members of Java collection classes
RuntimeTypeMapper assumed that JavaPropertyDescriptor was necessarily backed by
JavaField, which has changed when we started to load Java method (or a pair of
methods) overriding a Kotlin property as a property, not as a method. Another
example of this situation is special built-in properties which are mapped to
Java methods, e.g. java.util.Collection#size() <-> kotlin.Collection#size. This
change adds support for the case of a property backed by a JavaMethod.

Note that callable references or usage of any reflection API related to
built-in members is not supported anyway and will currently fail with errors

 #KT-11258 Fixed
2016-03-03 16:08:18 +03:00
Alexander Udalov
6429dd4b04 Preserve JavaPropertyDescriptor type in substitution/copy
JavaPropertyDescriptor.substitute should return JavaPropertyDescriptor,
similarly to what's happening in JavaMethodDescriptor
2016-03-03 16:08:18 +03:00
Alexander Udalov
371051b1d6 Filter out package members from other facades in KPackageImpl
#KT-10690 Fixed
2016-03-03 16:08:18 +03:00
Alexander Udalov
1c0bbcd72b Fix KProperty.javaField for fake overrides
#KT-8131 Fixed
2016-03-03 16:08:18 +03:00
Michael Bogdanov
534a3a11d6 Write additional type parameters for DefaultImpls methods, fix for KT-11121: BadClassFile exception for interface implemented generic properties
#KT-11121 Fixed
2016-03-03 16:11:31 +03:00
Valentin Kipyatkov
5aca50b4ca Enhanced constructor descriptor should not loose its source!
#KT-11256 Fixed
2016-03-02 21:43:43 +03:00
Valentin Kipyatkov
508e1937d6 More diagnostic for EA-75975 2016-03-02 21:43:42 +03:00
Valentin Kipyatkov
135ec78d7d Fixed EA-70945 2016-03-02 21:43:42 +03:00
Alexander Udalov
65662d7c99 Remove incorrect test, to be reconsidered in the future
Before 3ca4097, 'set' signature was not checked at all in this case

 #KT-11272 Open
2016-03-02 20:44:23 +03:00
Dmitry Jemerov
386f22480f don't crash on startup in case of corrupted plugin installation
#KT-11230 Fixed
2016-03-02 18:17:36 +01:00
Alexander Udalov
e849792712 Minor, add KCallableImpl#container 2016-03-02 19:01:10 +03:00
Alexander Udalov
4779e3e9cf Drop traces of old annotations from kotlin.jvm.internal 2016-03-02 19:01:04 +03:00
Alexander Udalov
c93517bc2f Minor, fix test data 2016-03-02 19:00:50 +03:00
Dmitry Jemerov
661c87e464 minor: rename "jet" to "kotlin" in a couple of variable names 2016-03-02 16:47:43 +01:00
Stanislav Erokhin
5141d95a88 Refactoring. Remove dependence intellij-core from resolution module 2016-03-02 18:07:41 +03:00
Stanislav Erokhin
9338aa5633 Refactoring. Copy SmartList from IDEA to util.runtime module. 2016-03-02 18:07:40 +03:00
Alexander Udalov
8e77e16bbd Remove leftovers of platformName and platformStatic in test data
Drop unnecessary imports, rename some tests
2016-03-02 16:47:04 +03:00
Alexander Udalov
beb11e7ac1 Minor, don't create unnecessary class loader in OuterClassGenTest
Read the bytes from the file instead
2016-03-02 15:47:40 +03:00
Alexander Udalov
f1bb31d0a9 Minor, inline one overload of CodegenTestUtil.compileJava 2016-03-02 15:47:40 +03:00
Alexander Udalov
933be1e035 Drop single-file mode of black box codegen tests
Add regression test for #KT-5190
2016-03-02 15:47:39 +03:00
Alexander Udalov
2de7f38427 Migrate boxWithJava tests to multi-file framework 2016-03-02 15:47:38 +03:00
Alexander Udalov
0801ae5364 Minor, delete weird intermediate git files 2016-03-02 15:47:38 +03:00
Alexander Udalov
e7371d2c1a Minor, move boxAgainstJava logic to a separate test class 2016-03-02 15:47:37 +03:00
Alexander Udalov
280ad195ee Migrate boxAgainstJava tests to multi-file framework 2016-03-02 15:47:36 +03:00
Alexander Udalov
26de87d792 Minor, make CodegenTestUtil.compileJava take absolute paths of files 2016-03-02 15:47:36 +03:00
Alexander Udalov
12cf70ac38 Delete legacy codegen tests with Java on annotations
After cleanup, these tests are now duplicated with those in
boxAgainstJava/annotations/
2016-03-02 15:47:35 +03:00
Alexander Udalov
9f67fe2fe3 Adapt CompileKotlinAgainstKotlin test to black box format
Rename/remove some obsolete test cases
2016-03-02 15:47:35 +03:00
Alexander Udalov
0b26e749f6 Improve multi-file test framework in CodegenTestCase
Instead of inheriting from KotlinMultiFileTestWithJava, invoke
KotlinTestUtils.createTestFiles directly. This helps to avoid constructing
unnecessary environment (createEnvironment() was called in setUp, but codegen
tests ignored the created environment because it's not possible to do
generically in codegen tests; the environment kind depends on the source file
usually)
2016-03-02 15:44:28 +03:00
Alexander Udalov
4b96a8131b Inline KotlinLiteFixture 2016-03-02 15:44:28 +03:00
Alexander Udalov
12b6a4ede4 Obsolete KotlinLiteFixture, move utilities to CheckerTestUtilTest 2016-03-02 15:44:28 +03:00
Alexander Udalov
647e188a08 Migrate bytecode text tests to multi-file framework
Get rid of BytecodeTextMultifileTestGenerated
2016-03-02 15:44:28 +03:00
Dmitry Jemerov
fbc2fe74ad Merge pull request #826 from cypressious/catch_fixer
Implement smart enter processors for try, catch (parameters and body) and finally
2016-03-02 13:21:32 +01:00
Dmitry Petrov
9244ef9b81 Do not use 'dup' for postfix increment/decrement: can't do it with collection element in general.
KT-11190, KT-11191, KT-11192, KT-11200, KT-11206
2016-03-02 14:28:06 +03:00
Dmitry Petrov
3ca4097bcc KT-11203: report errors on read-write operations for elements of collections with inconsistent get&set signatures 2016-03-02 14:28:06 +03:00
Mikhail Glukhikh
cd91e44451 Minor fix: intention description directory renamed 2016-03-02 14:13:02 +03:00
Denis Zharkov
eb2c584578 Rename JetTypeMapper 2016-03-02 13:38:46 +03:00
Denis Zharkov
56a2561ab9 Extract JvmMethodGenericSignature from JvmMethodSignature 2016-03-02 13:38:46 +03:00
Denis Zharkov
7bd8fa0b48 Optimize signature propagation
Do not collect super function with trivial signature
2016-03-02 13:38:46 +03:00
Denis Zharkov
d66b9a08dd Do not map generic signature if it's unnecessary 2016-03-02 13:38:46 +03:00
Denis Zharkov
5690d58fd0 Memoize package views in module 2016-03-02 13:38:46 +03:00
Denis Zharkov
4583283515 Search classes by JavaClass through package scope 2016-03-02 13:38:46 +03:00
Denis Zharkov
26ebf46e3e Do not read module mappings more than once 2016-03-02 13:38:46 +03:00
Denis Zharkov
3652cd9c18 Optimize top level class searching in LazyJavaPackageScope
Do not try to search something, that is known not to exist
2016-03-02 13:38:46 +03:00
Denis Zharkov
beb24af5ef Devirtualize calls to PackageFragmentDescriptorImpl.fqName
1. Replace INVOKEINTERFACE with INVOKEVIRTUAL
2. Make callee function final

It helps to decrease one module compilation time by 1-2 seconds
2016-03-02 13:38:46 +03:00
Dmitry Jemerov
3cc3b3fce2 cleanup: remove dead code from ProjectStructureUtil, move code used only during project configuration to ConfigureKotlinInProjectUtils; move function from KotlinRuntimeLibraryCoreUtil into KotlinRuntimeLibraryUtil 2016-03-02 11:15:06 +01:00
Dmitry Jemerov
828e53ce82 reuse Gradle external system ID 2016-03-02 11:15:05 +01:00
Dmitry Jemerov
13f4053950 detect Kotlin source roots
#KT-8592 Fixed
2016-03-02 11:15:03 +01:00
Dmitry Jemerov
8f2dd2c821 better presentation for the list of modules with Kotlin files
#KT-9025 Fixed
2016-03-02 11:15:02 +01:00
Dmitry Jemerov
d994e442da support new IDEA API to allow configuring a Java/JS runtime without prompting the user 2016-03-02 11:15:01 +01:00
Dmitry Jemerov
4ea05354c7 move the calculation of configure kotlin notification out of EDT
#KT-10541 Fixed
2016-03-02 11:15:00 +01:00
Dmitry Jemerov
1976e5f3b0 ConfigureKotlinNotification: J2K and cleanup 2016-03-02 11:14:59 +01:00
Dmitry Jemerov
a6716d9160 ConfigureKotlinNotification: rename to .kt 2016-03-02 11:14:58 +01:00
Dmitry Jemerov
207c5e188b correctly detect Gradle modules (previous code, besides being crazy overcomplicated, didn't always work because module.getModuleFile() returns null immediately after a project has been imported from Gradle and before it has been saved) 2016-03-02 11:14:56 +01:00
Dmitry Jemerov
edcd469e44 API for configuring Kotlin without notification
#KT-11089 Fixed
2016-03-02 11:14:54 +01:00
Dmitry Jemerov
28406bb1fb update URL for Gradle documentation 2016-03-02 11:14:53 +01:00
Dmitry Jemerov
c081a0c758 don't show pre-1.0 versions of Kotlin in "Configure Kotlin in project" action 2016-03-02 11:14:51 +01:00
Alexey Andreev
550c8b12d1 KT-10667 Fix building qualified references to nested type of built-ins, e.g. Map.Entry 2016-03-02 10:31:05 +03:00
Mikhail Glukhikh
96a7febd09 Smart cast is performed now inside 'x as? Type ?: return' safe as / elvis combination #KT-10992 Fixed 2016-03-02 10:07:33 +03:00
Mikhail Glukhikh
c7f3a31517 Create subclass intention implemented #KT-8473 Fixed
Can be used for implementing interfaces / abstract classes / sealed classes or extending open classes
2016-03-02 10:05:27 +03:00
Mikhail Glukhikh
7fa9ca8e9f Minor: potential NPE fix 2016-03-02 10:05:23 +03:00
Nikolay Krasko
247185735a Refactoring: rename file 2016-03-01 16:04:06 +03:00
Nikolay Krasko
59e2449d4e Refactoring: extract methods from JSLibraryStdPresentationProvider 2016-03-01 16:04:05 +03:00
Nikolay Krasko
a21a6c9906 Refactoring: extract methods from JavaRuntimePresentationProvider 2016-03-01 16:04:03 +03:00
Nikolay Krasko
0594abbad6 J2K: LibraryPresentationProviderUtil convert 2016-03-01 16:04:02 +03:00
Nikolay Krasko
6349285b06 J2K: LibraryPresentationProviderUtil rename 2016-03-01 16:03:56 +03:00
Nikolay Krasko
97837e6315 Don't detect libraries in maven, gradle and ide systems as runtime libraries
#KT-11072 Fixed
 #KT-10918 Fixed
2016-03-01 15:55:16 +03:00
Nikolay Krasko
b70d0f8c28 Minor: drop deprecated methods and remove warnings in library presentation providers 2016-03-01 15:55:16 +03:00
Nikolay Krasko
d07d34af93 Configure Kotlin in Project: "All modules containing Kotlin files" lists modules even not containing those files (KT-10831)
#KT-10831 Fixed
2016-03-01 15:55:16 +03:00
Ilya Gorbunov
0cd0554078 JS: Remove unsupported Enumeration declaration.
Relates to #KT-7480
2016-03-01 14:01:39 +03:00
Ilya Gorbunov
e5dbb65ff7 JS: Remove declarations of unsupported SortedSet and TreeSet, make toSortedSet() jvm-only.
Fix completion test.

Relates to #KT-7480
2016-03-01 14:01:38 +03:00
Dmitry Petrov
eb7cf92fbd Minor. Add a test for KT-10732: no redeclaration for
fun <T> List<T>?.foo()
fun <T> List<T>.foo()
2016-03-01 13:54:03 +03:00
Michael Bogdanov
16afe74dc1 Fix for KT-11117: Android Kotlin DEX transformation error when I use arrayOf as an anonymous object property
#KT-11117 Fixed
2016-02-29 12:53:58 +03:00
Kirill Rakhman
ed152bccfa Implement smart enter processors for try, catch (parameters and body) and finally with tests
Fixes #KT-10013
2016-02-28 14:31:59 +01:00
Alexander Udalov
2d5b7a8768 Minor, move CompileKotlinAgainstKotlin tests to codegen/ 2016-02-27 16:31:46 +03:00
Alexander Udalov
c4b4a23cb1 Minor, move abstract codegen tests out of 'generated'
Delete unused AbstractBlackBoxCodegenJava8Test
2016-02-27 16:22:25 +03:00
Alexander Udalov
ea522fe606 Minor, rename AbstractSMAPBaseTest -> SMAPTestUtil
Remove unnecessary inheritance
2016-02-27 16:09:27 +03:00
Alexander Udalov
c72f29b13a Move KotlinTestWithEnvironment to org.jetbrains.kotlin.test
It's not really related to lazy-resolve and should be also probably located
near KotlinTestWithEnvironmentManagement
2016-02-27 15:40:07 +03:00
Alexander Udalov
25cebe03e9 Fix inline codegen tests after regroup and rename 2016-02-27 15:40:06 +03:00
Alexander Udalov
f7958edf21 Improve test data format for SMAP codegen tests
Instead of comments in a Kotlin source file, add a .smap with the contents of
the source mapping data (and possible comments)
2016-02-27 15:40:06 +03:00
Alexander Udalov
cc84aabdcf Migrate boxInline tests to new multi-file framework 2016-02-27 15:40:05 +03:00
Alexander Udalov
fa1f7d988e Get rid of CompileKotlinAgainstMultifileKotlinTestGenerated and boxMultifileClasses/
Merge tests in boxMultifileClasses/calls to one test case; copy the two
resulting tests (+ change box to main) to compileKotlinAgainstKotlin
2016-02-27 15:40:05 +03:00
Alexander Udalov
cc8af573f9 Migrate CompileKotlinAgainstKotlin test to multi-file framework 2016-02-27 15:40:04 +03:00
Alexander Udalov
5884d4be79 Get rid of code duplication in kt-against-kt tests 2016-02-27 15:40:03 +03:00
Alexander Udalov
e0b6f12737 Migrate boxMultiFile and boxMultifileClass tests to new multi-file tests
AbstractCompileKotlinAgainstMultifileKotlinTest is broken in this commit; will
be fixed later
2016-02-27 15:40:03 +03:00
Alexander Udalov
4fb0453cea Introduce multi-file test framework to codegen tests
Currently still only single-file tests are supported; this will be fixed in
subsequent commits
2016-02-27 15:40:01 +03:00
Alexander Udalov
adea547d8a Inline KotlinLiteFixture#loadFile, refactor surroundings 2016-02-27 15:40:00 +03:00
Alexander Udalov
1be6046fc2 Minor refactorings in legacy codegen tests
Use loadFile() + getPrefix() instead of loadFile(String)
2016-02-27 15:40:00 +03:00
Alexander Udalov
5f7bc601a8 Refactor/simplify KotlinMultiFileTestWithJava and subclasses 2016-02-27 15:39:59 +03:00
Ilya Gorbunov
06af22b2c1 JS: Remove LinkedList declaration since the implementation is missing.
#KT-7480 Fixed
2016-02-27 02:49:05 +03:00
Ilya Gorbunov
f9e97882fc Minor: remove obsolete TODO. 2016-02-27 00:52:31 +03:00
Ilya Gorbunov
19fa2f51ea Review and correct exception messages. 2016-02-27 00:52:30 +03:00
Ilya Gorbunov
00e30e417f Cleanup: suppress warnings where appropriate. 2016-02-26 21:54:57 +03:00
Ilya Gorbunov
f025a3b8c4 Cleanup: rename parameters to match overriden method (in private implementations).
Remove some redundancy.
2016-02-26 21:54:55 +03:00
Kirill Rakhman
19130cdd71 Clean up KotlinMissingIfBranchFixer 2016-02-26 18:52:07 +01:00
Ilya Gorbunov
b19c0363fd Clarify parameter order of lambda function parameter of *Indexed functions.
#KT-10953 Fixed
2016-02-26 20:47:26 +03:00
Ilya Gorbunov
0e0455daeb Improve the documentation of binarySearch functions.
#KT-10198 Fixed
2016-02-26 20:31:05 +03:00
Dmitry Jemerov
103f8300fb don't show "Change type arguments" fix when there's nothing to change
#KT-11178 Fixed
2016-02-26 16:11:24 +01:00
Pavel V. Talanov
a4c005fefd Update existing test data depending on diagnostic parameter rendering 2016-02-26 14:45:11 +03:00
Pavel V. Talanov
5304ddfca3 DelegatedPropertyResolver: Use SHORT_NAMES_IN_TYPES for ad-hoc diagnostics parameter rendering 2016-02-26 14:45:11 +03:00
Pavel V. Talanov
48094db9dc DefaultErrorMessages: remove hardcoced fq names for built-in types 2016-02-26 14:45:10 +03:00
Pavel V. Talanov
e397544aee Improve NONE_APPLICABLE ide renderer 2016-02-26 14:45:10 +03:00
Pavel V. Talanov
8cbc9eee3e Improve AMBIGUOUS_CALLS renderer 2016-02-26 14:45:09 +03:00
Pavel V. Talanov
b399bbffd7 Improve JvmConflictingDeclarations diagnostics rendering 2016-02-26 14:45:08 +03:00
Pavel V. Talanov
d0b27a5fe2 Update test data for diagnostics test 2016-02-26 14:45:07 +03:00
Pavel V. Talanov
5dcfdb3996 Test return type mismatch on override diagnostic rendering 2016-02-26 14:45:07 +03:00
Pavel V. Talanov
7ba4adf006 Add tests for diagnostics rendering 2016-02-26 14:45:06 +03:00
Pavel V. Talanov
4ab5aabfa0 Adjust existing test data for diagnostic messages 2016-02-26 14:45:06 +03:00
Pavel V. Talanov
e4cf090720 Adjust diagnostics rendering so that short classifier names are rendered unless the name is ambiguous in corresponding RenderingContext 2016-02-26 14:45:05 +03:00
Pavel V. Talanov
c7cb596f74 Rename: NameShortness -> ClassifierNamePolicy 2016-02-26 14:45:05 +03:00
Pavel V. Talanov
ced5a6c917 Introduce RenderingContext and add as parameter to DiagnosticParameterRenderer#render
RenderingContext holds data about the whole diagnostics allowing to adjust rendering of its parameters
2016-02-26 14:45:04 +03:00
Pavel V. Talanov
4f18b3da53 Rename: Renderer -> DiagnosticParameterRenderer and move it out of descriptors module
DescriptorRenderer is no longer a renderer
DescriptorRenderers should not be used to render diagnostic parameters explicitly
2016-02-26 14:45:02 +03:00
Pavel V. Talanov
41f5b5e8b1 Minor: expose DescriptorRender#renderMessage 2016-02-26 14:45:01 +03:00
Pavel V. Talanov
a3bab638eb Move MultiRenderer to a more suitable package 2016-02-26 14:45:00 +03:00
Pavel V. Talanov
40d538731b Move NameShortness to a separate file and refactor it to be an interface 2016-02-26 14:45:00 +03:00
Pavel V. Talanov
77f74a929a Revert 06215ca932
It led to parameter names missing in parameter info and completion for compiled java code used from kotlin
See KT-11039
2016-02-26 14:05:47 +03:00
Natalia Ukhorskaya
7b1afa1e01 Rearrange Colors page for Kotlin 2016-02-26 12:34:24 +03:00
Natalia Ukhorskaya
e0cb0eb1de Highlight super and this as keywords 2016-02-26 12:34:24 +03:00
Natalia Ukhorskaya
d361aca0fb Change some colors in Darcula after refactoring of colors in IDEA 2016-02-26 12:34:24 +03:00
Alexander Udalov
63db41a712 Minor, refactor BuiltInDefinitionFile.read to get rid of isInternalBuiltInFile 2016-02-26 11:29:10 +03:00
Alexander Udalov
5f39f628c9 Fix and test built-ins decompiler for incompatible version 2016-02-26 11:29:10 +03:00
Alexander Udalov
440b23ddf6 Minor, extract createIncompatibleAbiVersionDecompiledText to common/ 2016-02-26 11:29:10 +03:00
Alexander Udalov
f82ec6711d Remove SerializedResourcePaths and BuiltInsSerializedResourcePaths
Most of members now only make sense for JS, move the rest to
BuiltInSerializerProtocol
2016-02-26 11:29:10 +03:00
Alexander Udalov
4bacabe354 Don't read old built-in files in decompiler 2016-02-26 11:29:10 +03:00
Alexander Udalov
996c5848c2 Simplify deserialization components for built-ins and JS 2016-02-26 11:29:10 +03:00
Alexander Udalov
f130755972 Use new built-in binary format (.kotlin_builtins files) in IDE
Instead of .kotlin_class and .kotlin_package files, .kotlin_builtins files are
now supported: they are decompiled to a long file consisting of all non-real
classes (those which do not also have .class files) and members in the
corresponding package.

Unlike the old files, .kotlin_builtins files have a binary version in the
beginning, which allows us to skip decompilation and stub building in case the
file has an unsupported version. This could previously lead to exceptions, see
KT-11077, EA-79339.

The change in DecompiledTextFactory is needed because without "defined in ..."
the keys for members in the long decompiled file are not unique, as there are
multiple members with exactly the same signatures in different classes (e.g.
arithmetic operations in primitive classes).

Remove testData files with the decompiled text and stubs of built-in symbols
because now that the whole package is decompiled to a single file, it would be
painful to update these files each time something in built-in sources changes

 #KT-11077 Fixed
2016-02-26 11:29:10 +03:00
Alexander Udalov
cb490dbe4f Minor, add BuiltInsBinaryVersion.readFrom(InputStream) 2016-02-26 11:29:10 +03:00
Alexander Udalov
c81d76414f Drop serialization of old binary built-in files (.kotlin_class, .kotlin_package) 2016-02-26 11:29:10 +03:00
Ilya Chernikov
c39cec4869 Fixing daemon memory test on windows by increasing the expected threshold 2016-02-26 10:23:37 +03:00
Ilya Gorbunov
029b918ec9 Another CharSequence.repeat implementation in JS from polyfill of String.repeat.
#KT-3064
2016-02-26 01:26:05 +03:00
Ilya Gorbunov
f564adfdd4 Optimize trivial cases of CharSequence.repeat. Provide CharSequence.repeat for JS.
#KT-3064 Fixed
2016-02-26 01:23:30 +03:00
Stanislav Erokhin
7a43d62408 Move sources to resolution module 2016-02-26 00:39:37 +03:00
Stanislav Erokhin
5bb1f3b2ea Create resolution module. 2016-02-26 00:39:37 +03:00
Stanislav Erokhin
310c68f633 Removed lock level WRITING from LexicalWritableScope. 2016-02-26 00:39:36 +03:00
Stanislav Erokhin
f85abed6e6 Replace RedeclarationHandler by LocalRedeclarationChecker 2016-02-26 00:39:35 +03:00
Ilya Gorbunov
7d32fad063 Improve docs for trimIndent/trimMargin.
#KT-9786
2016-02-25 22:09:15 +03:00
Ilya Gorbunov
77f148bec6 Improve docs for substring/subsequence. 2016-02-25 22:09:14 +03:00
Ilya Gorbunov
c946d283ff Fix example for Throws annotations.
Improve code escaping and wording for JvmSuppressWildcards.
2016-02-25 22:09:14 +03:00
Ilya Gorbunov
a100ffd66b Minor: improve wording in the deprecation message. 2016-02-25 21:16:45 +03:00
Alexander Udalov
71170d32cb Exclude kotlin.reflect.jvm.internal.impl from import and completion in project 2016-02-25 20:30:00 +03:00
Nikolay Krasko
edb684fee0 Print kotlin compiler version in build script where withKotlin tag is used 2016-02-25 18:49:53 +03:00
Michael Bogdanov
1b94904684 Prohibited @Strictfp annotation on classes (it's not supported yet), Fix for KT-11109: Strictfp annotation do nothing when applied to class
#KT-11109 Fixed
2016-02-25 18:07:51 +03:00
Natalia Ukhorskaya
894c11d412 Merge pull request #820 from JakeWharton/jw/extra-source-folders
Include source folders from registered source-generating tasks.
2016-02-25 12:07:20 +03:00
Denis Zharkov
fe7393dc1a Fix testData 2016-02-25 11:15:18 +03:00
Denis Zharkov
4c88e2a0bc Use original descriptor when mapping fake override
Otherwise wrong CONFLICTING_INHERITED_JVM_DECLARATIONS were reported

 #KT-10691 Fixed
2016-02-25 11:10:48 +03:00
Michael Bogdanov
582b1c5e66 Fix for KT-11163: Incorrect codegen in case of custom compareTo on primitives
#KT-11163 Fixed
2016-02-25 10:16:09 +03:00
Denis Zharkov
36e84ff23a Minor. Add tests for obsolete issues
#KT-8900 Obsolete
 #KT-8901 Obsolete
2016-02-25 08:31:58 +03:00
Denis Zharkov
914447b7eb Do not treat uninitialized value as a reason to retain boxing
See testData/simpleUnitializedMerge.kt
On exit from `if` we merge value in variable with slot 1 (x):
- from `if` body we get BoxedBasicValue
- from outer block we get UNITIALIZED_VALUE

So we just suppose `x` is unitialized after `if`
and there's no need to mark BoxedValue as unsafe to remove
because it's anyway can't be used after `if`

 #KT-6842 Fixed
2016-02-25 08:31:19 +03:00
Denis Zharkov
2f4b8dab25 Minor. Replace 'filter' with 'any' 2016-02-25 08:31:19 +03:00
Stanislav Erokhin
226e690a86 Minor. refactoring in Qualifier. 2016-02-24 19:33:10 +03:00
Stanislav Erokhin
f130de2468 Remove scope from Qualifier 2016-02-24 19:33:10 +03:00
Stanislav Erokhin
4b3c6d52ef Remake QualifierReceiver 2016-02-24 19:33:09 +03:00
Stanislav Erokhin
8c5339cccf Minor. Remove class ClassifierQualifier and create special ClassValueReceiver 2016-02-24 19:33:09 +03:00
Stanislav Erokhin
2f0ae6f176 Minor. Remove name from Qualifier. 2016-02-24 19:33:08 +03:00
Stanislav Erokhin
5240233eda Minor. Remove HIDDEN_ANNOTATION_FQ_NAME. 2016-02-24 19:33:08 +03:00
Stanislav Erokhin
6a1664c1b3 Minor. removed explicitExtensionReceiverForInvoke from CallCandidateResolutionContext. 2016-02-24 19:33:07 +03:00
Stanislav Erokhin
1ef4a958fd Minor. removed call checked from ResolutionContext. 2016-02-24 19:33:07 +03:00
Stanislav Erokhin
6591f8a2ab Minor. removed unused method from AdditionalTypeChecker. 2016-02-24 19:33:06 +03:00
Stanislav Erokhin
24829ee3ac Minor. rename 2016-02-24 19:33:06 +03:00
Stanislav Erokhin
665e13e4ec Remove obsolete code about warnings for expressions which can be null in java(has @Nullable annotation in java) and in kotlin not marked nullable.
After introducing flexible types and signature enhancement there is no more such expressions.
2016-02-24 19:33:05 +03:00
Michael Bogdanov
b20f49a2c4 Default body compilation for inline fun extracted from InlineCodegen to separate one 2016-02-24 14:06:29 +03:00
Michael Bogdanov
f149f16882 Separately process inline function default impl body compilation (non general inline magic),
Fix for KT-10670 Debugger: Evaluate Expression/Watches fail for inline function parameter initialized with default value

 #KT-10670 Fixed
2016-02-24 14:06:29 +03:00
Michael Bogdanov
7bfb5a0c60 InliningInstructionAdapter refactoring: renamed to MethodBodyVisitor, added additional empty owerrides 2016-02-24 14:06:28 +03:00
Dmitry Jemerov
54de48604d Merge pull request #824 from cypressious/setter_smart_enter
Implement Smart Enter for Property Setters #KT-9996
2016-02-24 11:27:39 +01:00
Kirill Rakhman
f3e68fdeaa Implement smart enter processors for property setter with tests
Fixes #KT-9996
2016-02-23 17:01:02 +01:00
Kirill Rakhman
c1a2570dd4 replace null checks with elvis operator 2016-02-23 16:35:12 +01:00
Alexander Udalov
c71c344b8a Fix NCDFE on primitive iterators during boxing optimization
The real fix is in ProgressionIteratorBasicValue's constructor, other changes
are refactorings

 #KT-11153 Fixed
2016-02-22 19:49:39 +03:00
Ilya Gorbunov
3c35395cf7 Minor: refactor some tests to use nested classes. 2016-02-21 04:18:11 +03:00
Ilya Gorbunov
7997aea5c3 Make Destructured nested class of MatchResult interface in JS too. 2016-02-21 04:18:09 +03:00
Ilya Gorbunov
acc6cc539a Mark CollectionAssertions as deprecated due to their experimental status. 2016-02-21 03:33:12 +03:00
Ilya Gorbunov
bf536afe5f Mark reified assertFailsWith with InlineOnly to preserve stack traces. 2016-02-21 03:20:07 +03:00
Ilya Gorbunov
119eceb80b Minor: correct file name 2016-02-21 03:20:05 +03:00
Alexander Udalov
c0a0a8afd7 Revert "Minor, pass -Xmx256m to compiler in CompilerSmokeTestBase"
This reverts commit 61f5e2f9cf.

Causes OOM on TeamCity
2016-02-20 22:21:58 +03:00
Zalim Bashorov
82a049b319 JS: fix definition nested classes inside interfaces 2016-02-20 21:20:42 +03:00
Alexey Andreev
718c15806c KT-10785 Ensure that access to private properties from inside memeber functions of objects is performed via 'this' rather that by FQN. 2016-02-20 19:16:26 +03:00
Alexey Andreev
0a2cff9056 KT-10785 Fixed. Change predicate that decides whether to dereference assignment target as a property accessor or as a backing field. 2016-02-20 19:16:26 +03:00
Alexander Udalov
dbde566b66 Minor, fix typo in test class name 2016-02-20 19:05:40 +03:00
Alexander Udalov
1a5a077bd6 Replace map + filterNotNull -> mapNotNull in project 2016-02-20 19:05:30 +03:00
Alexander Udalov
61f5e2f9cf Minor, pass -Xmx256m to compiler in CompilerSmokeTestBase
This fixes CompilerFileLimitTest when running locally
2016-02-20 19:05:23 +03:00
Alexey Andreev
a4db14eff5 [KT-4124] Add tests for qualified labeled super access to functions and properties 2016-02-20 15:19:31 +03:00
Alexey Andreev
d83f926658 [KT-4124] Refactor super calls and fix calls to Any::equals 2016-02-20 15:19:31 +03:00
Alexey Andreev
6adcafafbb [KT-4124] Minor refactoring and cleanup 2016-02-20 15:19:30 +03:00
Alexey Andreev
d067068774 [KT-4124] Support invocation of constructor of inner class from extension method 2016-02-20 15:19:30 +03:00
Alexey Andreev
9238afc439 [KT-4124] Fix some tests from common testData 2016-02-20 15:19:29 +03:00
Alexey Andreev
f5786dd567 [KT-4124] Add test case for nested/inner classes inside native class. Add diagnostic of inner classes inside native classes. 2016-02-20 15:19:28 +03:00
Alexey Andreev
040a646174 [KT-4124] Add test case for nested native class 2016-02-20 15:19:28 +03:00
Alexey Andreev
68828317b8 [KT-4124] Suppress error reporting about native local classes 2016-02-20 15:19:27 +03:00
Alexey Andreev
e3c7cd0021 [KT-4124] Add diagnostic that reports of local classes. Remove test for diagnostic of nested types 2016-02-20 15:19:27 +03:00
Alexey Andreev
8537d327fa [KT-4124] Add diagnostic of a several cases of local classes like class in object in function. 2016-02-20 15:19:26 +03:00
Alexey Andreev
c705fafc95 [KT-4124] Add support for super<T>@Outer.functionName() case 2016-02-20 15:19:25 +03:00
Alexey Andreev
9e0e734021 [KT-4124] Add support for super<T>@Outer.propertyName case 2016-02-20 15:19:25 +03:00
Alexey Andreev
20b3361edc [KT-4124] Fix test compatibility between JS and Java backed for several tests 2016-02-20 15:19:24 +03:00
Alexey Andreev
c231ecfe50 [KT-4124] Fix the following: when test can't be compiled, sometimes JUnit reported that .js file was not found instead of reporting actual errors. 2016-02-20 15:19:24 +03:00
Alexey Andreev
3f5be335a9 [KT-4124] Fix bug when constructing like this: "A.Companion.B()" 2016-02-20 15:19:23 +03:00
Alexey Andreev
700159987b [KT-4124] Fix bug when inner A.B extends inner A.C not passing outer reference there 2016-02-20 15:19:23 +03:00
Alexey Andreev
8f74720973 [KT-4124] Add more generated tests from Java backend. Fix support of deeply nested classes (i.e. A.B.C) and nested enums. 2016-02-20 15:19:22 +03:00
Alexey Andreev
c48c6bc055 [KT-4124] Use generated test to avoid duplication of test data of inner classes. Add support of classes contained within objects. 2016-02-20 15:19:22 +03:00
Alexey Andreev
133b84160e [KT-4124] Fix case of super@labeled recever. Add names to metadata of inner classes. 2016-02-20 15:19:21 +03:00
Alexey Andreev
4efceb95e3 [KT-4124] Add less trivial tests 2016-02-20 15:19:20 +03:00
Alexey Andreev
a8014dec50 [KT-4124] Add support for simple nested classes 2016-02-20 15:19:20 +03:00
Stanislav Erokhin
ae7b048fdb Minor. rename 2016-02-20 14:55:18 +03:00
Stanislav Erokhin
3e366f6b2d Minor. cleanup 2016-02-20 14:55:18 +03:00
Stanislav Erokhin
45de06ac0c Minor. Removed generics. 2016-02-20 14:55:17 +03:00
Stanislav Erokhin
63b3cbafa4 Remove old resolution algorithm. 2016-02-20 14:55:17 +03:00
Stanislav Erokhin
acdd807e91 Support "given candidates" mode in new resolution algorithm. 2016-02-20 14:55:16 +03:00
Stanislav Erokhin
daee95f2c4 Refactoring: create separate util function for create constructors resolution candidates 2016-02-20 14:55:16 +03:00
Stanislav Erokhin
7de2013a3e KT-3856 Wrong inner class inaccessible diagnostic for extension to outer class
#KT-3856 Fixed
2016-02-20 14:55:15 +03:00
Zalim Bashorov
61cc8394e8 Minor: fix testdata 2016-02-20 13:11:23 +03:00
Alexander Udalov
1b8f934b54 Delete deprecated enum 'values' property 2016-02-19 22:28:44 +03:00
Alexander Udalov
1eeb72e073 Do not create empty static scope instances for non-enum classes 2016-02-19 22:28:44 +03:00
Alexander Udalov
60fe64dcaa Remove obsolete lazy code in LazyClassDescriptor
This was added in a072550931 when we thought
making 'annotation' an annotation instead of a modifier would be a good idea;
we weren't be able to resolve the class kind immediately then. This is no
longer the case
2016-02-19 22:28:44 +03:00
Zalim Bashorov
d832a3d290 KotlinBuilder: use proper API to update Java mappings 2016-02-19 19:11:10 +03:00
Zalim Bashorov
ae32698c78 Minor: add more sources for jps library 2016-02-19 19:11:09 +03:00
Zalim Bashorov
05eff9028f New IC: don't fail on unsupported difference kinds and process SUPERTYPE_ID_LIST correctly 2016-02-19 19:10:44 +03:00
Dmitry Petrov
90be4f8ea5 KT-6745: change message to reflect that a super qualifier should be an immediate supertype,
not just a supertype.
2016-02-19 16:49:59 +03:00
Michael Bogdanov
1d17bee6cc Don't generate source mapping on inlining 'InlineOnly' functions 2016-02-19 16:08:03 +03:00
Michael Bogdanov
6f1def9366 isInlineOnly renamed to isInlineOnlyOrReified 2016-02-19 16:08:02 +03:00
Dmitry Petrov
30c2abba3c KT-9550: distinguish signature conflict on override from signature conflict of inherited members.
Add a common OverridingStrategy class for cases where we don't care (yet) about precise diagnostics.
2016-02-19 15:59:08 +03:00
Mikhail Glukhikh
883e2e4d2b KT-9498 extension: now type can be inferred for getter with expression body 2016-02-19 14:49:25 +03:00
Michael Bogdanov
405c21a17e Fix for KT-11081: Reified type parameters are lost in anonymous object in inline function when using default value parameters
#KT-11081 Fixed
2016-02-19 14:22:29 +03:00
Mikhail Glukhikh
4c1c64fa08 Quick fix for adding arrayOf wrapper for annotation parameters #KT-10063 Fixed 2016-02-19 13:32:49 +03:00
Mikhail Glukhikh
c9c391e688 Specify property type by accessor type (preliminary) #KT-9498 Fixed 2016-02-19 13:32:46 +03:00
Alexander Udalov
36de3008e3 Fix visibility flags for lambda classes in InnerClasses attribute 2016-02-19 12:52:40 +03:00
Ilya Chernikov
343735e36c fixing test after changing cleanup scheme - first it is now required to rebuild sources, and therefore consumed memory is increased 2016-02-18 21:06:38 +01:00
Ilya Chernikov
8065e490e8 performing cleanup (and memory usage reporting) only if kotlin compiler was actually called, should fix e.g. KT-10127 2016-02-18 21:06:37 +01:00
Alexey Tsvetkov
d0efd4083f Call System.gc only when when log level is debug, fixes KT-11022 2016-02-18 21:06:36 +01:00
Denis Zharkov
bc5110550a Release generated bytecode after each processed part
Part here means separate '.kt' file or multi-file facade
Now this memory optimization doesn't work with jar's,
because there is no simple way to write them incrementally.
2016-02-18 21:22:04 +03:00
Denis Zharkov
b87cc5712c Minor. Weaken value parameter types: ClassFileFactory -> OutputFileCollection 2016-02-18 21:22:04 +03:00
Denis Zharkov
fd32b8dd19 Minor. Transform method to void 2016-02-18 21:22:04 +03:00
Denis Zharkov
cecb998fd3 Simplify ClassFileFactory state
Before this change it contained maps to complex object,
after it retains only necessary information:
- sources files for package parts
- PackageParts objects grouped by package fq name

Both of them needed for writing module mappings
2016-02-18 21:22:04 +03:00
Denis Zharkov
f8f996b2f6 Minor. Move 'done()' call into MultifileClassCodegen itself 2016-02-18 21:22:03 +03:00
Natalia Ukhorskaya
0f3ecab2b4 Replace deprecated usages of CodeInsightColors 2016-02-18 18:37:03 +03:00
Ilya Gorbunov
6b1ed8fd61 JS: use slice() instead of slice(0) to copy arrays (minor). 2016-02-18 17:37:33 +03:00
Ilya Gorbunov
cbd38f007c JS: Do not create a copy of already cloned vararg array.
JVM: Do not create copy of vararg array it it's already Object[].
2016-02-18 17:37:31 +03:00
nik
c69d332db9 until-build set to 146.9999 to make Kotlin plugin compatible with new IDEA builds 2016-02-18 10:11:12 +03:00
Alexander Udalov
35a4aeeeba CLI tests: add LauncherScriptTest instead of generated 'kotlinc' script tests
The compiler behavior on test data in compiler/testData/cli is already tested
with CliTestGenerated, which is 4x faster and does not require to rebuild the
compiler jar with 'ant dist'. Leave only several simple tests to check that
'kotlinc', 'kotlinc-jvm' and 'kotlinc-js' scripts work
2016-02-17 20:52:00 +03:00
Alexander Udalov
04ccca8adc CLI tests: convert to generated 2016-02-17 20:52:00 +03:00
Alexander Udalov
a53166b732 CLI tests: rename CliBaseTest to AbstractCliTest 2016-02-17 20:51:59 +03:00
Alexander Udalov
762504d5e4 CLI tests: convert to JUnit 3 2016-02-17 20:51:58 +03:00
Alexander Udalov
f74988cbec CLI tests: get rid of CliCommonTest 2016-02-17 20:51:58 +03:00
Alexander Udalov
3b22483fb2 CLI tests: move file existance checks to config files 2016-02-17 20:51:57 +03:00
Alexander Udalov
7a6cc71454 CLI: disable colors on platforms unsupported by jansi
#KT-10605 Fixed
2016-02-17 20:51:48 +03:00
Alexander Udalov
2e13377d4a J2K ReplInterpreter: prettify 2016-02-17 20:51:11 +03:00
Alexander Udalov
5670e7f750 J2K ReplInterpreter: convert 2016-02-17 20:51:11 +03:00
Alexander Udalov
2b2c4b3610 J2K ReplInterpreter: move .java -> .kt 2016-02-17 20:51:11 +03:00
Alexey Andreev
8497931455 #EA-79158 Fix translation of empty 'when' statement 2016-02-17 19:18:25 +03:00
Alexey Andreev
133402c1ca #EA-79158 Report code fragment when translator throws an exception. It should help to get a code sample for this issues and all similar issues. 2016-02-17 19:18:24 +03:00
Michael Bogdanov
0283fea835 Optimize recursive string concatenation 2016-02-17 16:53:19 +03:00
Michael Bogdanov
8835b0599a Inline preevaluated string and primitive only constants in compilation time, don't inline const references in non-annotation context, fix for KT-11025: Don't inline const val in compare instuctions
#KT-11025 Fixed
2016-02-17 16:53:18 +03:00
Michael Bogdanov
7c2920febe Don't allow use standalone constants in complexExpressions, fix for KT-11043: Inconsisten result for class literal and string concatenation
#KT-11043 Fixed
2016-02-17 16:53:18 +03:00
Michael Bogdanov
af3437626b Properly calculate isConst for java properties 2016-02-17 16:53:17 +03:00
Natalia Ukhorskaya
c5d788d049 Debugger: do not put breakpoints at lines from another file in case of inline function 2016-02-17 15:08:56 +03:00
Natalia Ukhorskaya
42927bb078 Make function delegated to sam adapter synthetic 2016-02-17 15:08:53 +03:00
Natalia Ukhorskaya
7fb1848bd5 Minor, fix exception: do not try to get line start offset for line < 0 and line == lineCount() 2016-02-17 15:07:19 +03:00
Mikhail Glukhikh
657459ef22 Source of KNPE removed #EA-79002 Fixed 2016-02-17 11:52:49 +03:00
Alexey Sedunov
651b00c323 Pull Members Up: Always insert spaces between keywords
#KT-10971 Fixed
2016-02-17 11:31:46 +03:00
Alexey Sedunov
e1b4f45b35 Implement Abstract Members Intention: Fix EA-79052 2016-02-17 11:31:45 +03:00
Alexey Sedunov
27ea2dc6f9 Change Signature: Fix EA-77624 2016-02-17 11:31:41 +03:00
Alexey Sedunov
d587bb2ea6 Change Signature: Support Change Signature quick-fix for Java -> Kotlin case
#KT-9401 Fixed
2016-02-17 11:31:40 +03:00
Ilya Gorbunov
8761819117 StdLib generators: provide extension points for family properties specific to documentation and code. 2016-02-17 04:23:18 +03:00
Stanislav Erokhin
9781578af2 Update copyright in generated classes. 2016-02-16 20:31:15 +03:00
Stanislav Erokhin
341b251e4d Update copyright in generated tests. 2016-02-16 18:59:10 +03:00
Mikhail Glukhikh
5def6eae5b Correct handling of erroneous code during code extraction 2016-02-16 18:50:24 +03:00
Mikhail Glukhikh
eed4aa71db No assertion error in getContainingPseudocode #KT-10983 Fixed
Also #EA-72954 Fixed
2016-02-16 18:50:20 +03:00
Alexey Andreev
f6fadc4fa5 [KT-10614] Fix passing of inline.kt test 2016-02-16 16:02:17 +03:00
Alexey Andreev
79b42d7fe5 [KT-10614] Fix issue: copy array on vararg call with spread operator 2016-02-16 16:02:16 +03:00
Mikhail Glukhikh
1bbc46729c Effective visibility: concise diagnostic messages #KT-10761 Fixed
Also #KT-9760 Fixed
2016-02-16 15:58:50 +03:00
Mikhail Glukhikh
3049961b9a Revert "Implicit exhaustive when annotation / highlighting"
This reverts commit 0cc09872b6.
2016-02-16 15:57:38 +03:00
Denis Zharkov
d344b5b991 Optimize completion for overridden descriptors 2016-02-16 12:01:14 +03:00
Denis Zharkov
36606fd944 Run slow flexible type assertions only in test mode 2016-02-16 12:01:13 +03:00
Denis Zharkov
961b72682a Drop unnecessary call to substituted 'overriddenDescriptors' 2016-02-16 12:01:13 +03:00
Denis Zharkov
87497a5dc6 Do not run enhancement for fake overrides with one overridden 2016-02-16 12:01:13 +03:00
Denis Zharkov
42d451f2d1 Optimize ErasedOverridabilityCondition
Do not start substitution if some basic conditions are failed
2016-02-16 12:01:13 +03:00
Denis Zharkov
44148107ae Optimize SamAdapterOverridabilityCondition
Do not calculate it for non-static members,
because SAM adapters only exist in static scope now
2016-02-16 12:01:13 +03:00
Denis Zharkov
9f22b17918 Optimize external overridability conditions
- Skip ones that can lead only to success after first success
- And vice versa
2016-02-16 12:01:13 +03:00
Denis Zharkov
1b4b8ab5db Memoize 'JavaTypeClassifierImpl.isRaw' result 2016-02-16 12:01:12 +03:00
Denis Zharkov
d4d289c881 Optimize ResolvedCallImpl for case of empty pararameter set 2016-02-16 12:01:12 +03:00
Alexey Andreev
f1fd701d0d Remove PackageDirectoryMismatch from testData scope since it never actually matches 2016-02-16 11:46:25 +03:00
Alexey Andreev
56cb7c2677 [KT-11027] Fix the issue 2016-02-16 11:46:24 +03:00
Zalim Bashorov
c28b701ccf JS: ignore annotation on expression when its retention is SOURCE
#KT-8258
2016-02-15 21:35:30 +03:00
Mikhail Glukhikh
90927cfd19 CallExpressionResolver.getQualifiedExpressionTypeInfo refactoring 2016-02-15 16:46:24 +03:00
Dmitry Jemerov
37bd08175f K
(cherry picked from commit 8549ec7)
2016-02-15 13:36:45 +01:00
Pavel V. Talanov
1800e5a7db Remove some usages of Name.guess (and rename this utility to discourage new usages) 2016-02-15 13:32:42 +03:00
Pavel V. Talanov
47ceb106c7 Fix "<" or ">" in member name leading to exception 2016-02-15 13:32:41 +03:00
Michael Bogdanov
69afc2316d Internal visibility to TestGroup 2016-02-15 13:15:43 +03:00
Pavel V. Talanov
735b37aa7c Fix stub/ast mismatch for old binaries (rc-1036) in newer versions of plugin 2016-02-15 12:45:13 +03:00
Jake Wharton
f713adc96e Add support for AOSP's nullability annotations.
These are different than 'android.support.annotation' in that they are used on the JVM for projects within AOSP.
2016-02-15 11:32:09 +03:00
Mikhail Glukhikh
84a072b9f0 getQualifiedExpressionTypeInfo refactoring 2016-02-15 10:42:56 +03:00
Mikhail Glukhikh
88e7b728df CallExpressionResolver: converted to Kotlin, cleanup 2016-02-15 10:42:52 +03:00
Mikhail Glukhikh
bd40d59a17 CallExpressionResolver.java --> CallExpressionResolver.kt 2016-02-15 10:42:48 +03:00
Dmitry Jemerov
2a8e1af489 trim -release- from plugin version number when checking whether the runtime is outdated 2016-02-14 15:36:21 +01:00
Ilya Gorbunov
24edbc36df Create at most one wrapper sequence for adjacent drop/take operations on sequences.
Based on PR #814 by Sargun Vohra
#KT-10821 Fixed
2016-02-14 16:46:46 +03:00
Mikhail Glukhikh
a663797cb8 Refactoring: use of EffectiveVisibility class inside isEffectivelyPublic/Private API extensions 2016-02-13 10:48:17 +03:00
Mikhail Glukhikh
0f7284f83a More accurate safe call handling in GenericCandidateResolver / CallExpressionResolver
(real receiver nullability is taken into account)
2016-02-13 10:48:12 +03:00
Mikhail Glukhikh
17593e4ef6 Call completer: safe call with nullable receiver has nullable return type #KT-11007 Fixed 2016-02-13 10:48:07 +03:00
Jake Wharton
0d6ec35f7f Include source folders from registered source-generating tasks.
This includes the output directories from tasks which generate Java code which were registered with registerJavaGeneratingTask().
2016-02-13 02:34:06 -05:00
Valentin Kipyatkov
4cd7193047 KT-11018 Ctrl + Mouse Hover shows a var as val
#KT-11018 Fixed
2016-02-13 10:20:20 +03:00
Valentin Kipyatkov
c9f26de9f5 Introduce/eliminate when subject intentions to keep line breaks and comments 2016-02-13 10:20:19 +03:00
Valentin Kipyatkov
ce54a2d4bd If to when conversion preserves comments too 2016-02-13 10:20:19 +03:00
Valentin Kipyatkov
0ed8eb0512 KT-5717 "Replace 'when' with 'if'" loses a comment
#KT-5717 Fixed
2016-02-13 10:20:19 +03:00
Valentin Kipyatkov
0809be59df KT-10619 Wrong completion after package name in annotation
#KT-10619 Fixed
2016-02-13 10:20:19 +03:00
Valentin Kipyatkov
17ac168b33 KT-10621 Non-top level packages shown after "@" in completion
#KT-10621 Fixed
2016-02-13 10:20:18 +03:00
Michael Bogdanov
4f0f81155a Weaken PRIVATE_CLASS_MEMBER_FROM_INLINE diagnostic 2016-02-12 17:24:30 +03:00
Michael Bogdanov
384d2ea0d1 Use bipush, sipush for byte and short constants 2016-02-12 11:55:21 +03:00
Anton Sukhonosenko
0073257841 Fix for KT-10313: ClassCastException with Generics
#KT-10313 Fixed
2016-02-12 10:53:28 +03:00
Dmitry Petrov
edf6a2142b Check local function declarations for overload conflicts.
In PSI unifier tests, disable errors for tests on local functions (as irrelevant).
2016-02-12 09:54:21 +03:00
Ilya Gorbunov
17a95384e1 Change default buffer size to be 8K (same default as in java BufferedReader).
Rename internal constants.
2016-02-12 05:07:10 +03:00
Nikolay Krasko
faba229b11 Use single constant for doNotAnalyze message 2016-02-11 17:39:51 +03:00
Nikolay Krasko
ca0346bdae Fix forgotten test data for 10648f44ac (KT-10212) 2016-02-11 16:24:38 +03:00
Nikolay Krasko
85436de2b3 Minor: Add new lines to make failure message more readable 2016-02-11 16:20:30 +03:00
Nikolay Krasko
ae36e9c4c4 Don't show message if there were no messages
Otherwise "Notification should have content" error is logged.
2016-02-11 16:05:18 +03:00
Nikolay Krasko
e1d12af2fd Check element is valid if canRefactor() 2016-02-11 15:36:16 +03:00
Nikolay Krasko
9b44b0b1c0 Check element is valid before requesting type (EA-74737) 2016-02-11 15:36:15 +03:00
Alexey Sedunov
eabe675dbf Create from Usage: Add delegation call to secondary constructor declaration 2016-02-11 14:25:26 +03:00
Alexey Sedunov
6696d2b70a Create from Usage: Do not generate secondary constructor body by default 2016-02-11 14:25:24 +03:00
Alexey Sedunov
cc2a65e874 Create from Usage: Always insert parentheses around secondary constructor parameter list
#KT-10912 Fixed
2016-02-11 14:25:23 +03:00
Alexey Sedunov
8e81d0ce5f Change Signature: Skip implicit receiver references if extension receiver is dropped 2016-02-11 14:25:22 +03:00
Alexey Sedunov
a9ddc4da1a Change Signature: Warn about safe call receiver being transformed to value argument
#KT-8744 Fixed
2016-02-11 14:25:16 +03:00
Alexey Sedunov
b3801ffac7 Change Signature: Fix implicit receiver ->argument convertion in recusrive calls
#KT-8744 In Progress
2016-02-11 14:25:04 +03:00
Alexey Sedunov
d8c0671d94 Minor: Remove unused property 2016-02-11 14:25:02 +03:00
Pavel V. Talanov
7d98103c0c overriddenDescriptors is empty for java static property and function declarations
Fake overrides are still created for java static with non-empty overriddenDescriptors

Add tests for inheriting visibility for java static members
Add test: check that java static declarations that shadow deprecated declarations should not be deprecated
Add test for corner case where "overriding" java static constant led to incorrect type in inheritor

Fix test data for existing tests
2016-02-11 14:08:14 +03:00
Pavel V. Talanov
7e78e8d8ab Refactor: Move and rename OverridingUtil.DescriptorSink -> OverridingStrategy 2016-02-11 14:08:13 +03:00
Valentin Kipyatkov
c9bb020d6e KT-9738 Code completion of "emptyList()" after elvis operator inserts explicit type arguments
#KT-9738 Fixed
2016-02-11 12:26:23 +03:00
Valentin Kipyatkov
8da01e7952 Minor 2016-02-11 12:26:22 +03:00
Valentin Kipyatkov
377f4af369 Fixed EA-74848 + conversion was incorrect! 2016-02-11 12:26:22 +03:00
Valentin Kipyatkov
2ce06f250b Fixed EA-74166 2016-02-11 12:26:22 +03:00
Valentin Kipyatkov
8056c5182a Fixed EA-73613 2016-02-11 12:26:22 +03:00
Dmitry Petrov
aed2f2b993 Property vs classifier conflict.
TODO get rid of duplicate diagnostics
(looks like OverloadResolver and DeclarationResolver are partially redundant; refactor them).
2016-02-11 10:32:46 +03:00
Dmitry Petrov
b2eb4200af OverloadResolver.kt: convert to Kotlin & cleanup 2016-02-11 10:32:45 +03:00
Dmitry Petrov
6278459cc4 OverloadResolver.java --> .kt 2016-02-11 10:32:45 +03:00
Nikolay Krasko
d8ba52e582 Print kotlin compiler version in build script 2016-02-11 02:52:01 +03:00
Nikolay Krasko
6fe416cc4a Null name in library fix (EA-78733) 2016-02-11 02:52:00 +03:00
Nikolay Krasko
3f5f892e1b Add html escaping for declaration names in calls (KT-10763)
#KT-10763 Fixed
2016-02-11 02:49:00 +03:00
Zalim Bashorov
45f21bc7fd Minor: drop content from touch files 2016-02-10 22:56:10 +03:00
Zalim Bashorov
ced23c02bd New IC: add processing changes for constants 2016-02-10 22:56:09 +03:00
Zalim Bashorov
e33e31ad16 KotlinBuilder: don't request additional round when it's unnecessary & fix warnings 2016-02-10 21:37:12 +03:00
Zalim Bashorov
88c8f24887 Caching results of JpsUtils#isJsKotlinModule
#KT-9636 Fixed
2016-02-10 21:30:25 +03:00
Denis Zharkov
12552d2fc1 Refine special bridges generation
#KT-10958 Fixed
2016-02-10 20:18:46 +03:00
Denis Zharkov
6d98909c7a Minor. Add not-nullable upper bound 2016-02-10 20:18:46 +03:00
Denis Zharkov
45bf300144 Minor. Rename variables 2016-02-10 20:18:46 +03:00
Denis Zharkov
0fb565851f Minor. Extract function 2016-02-10 20:18:46 +03:00
Denis Zharkov
8592a57be4 Drop unnecessary check and corresponding parameter 2016-02-10 20:18:46 +03:00
Denis Zharkov
0b37d032c8 Minor. Split complicated conditions 2016-02-10 20:18:46 +03:00
Natalia Ukhorskaya
9070eff6ad KotlinPositionManager: add progress when computing classnames for inline function 2016-02-10 18:30:29 +03:00
Denis Zharkov
9ac2da8c96 Optimize 'setResultingSubstitutor'
Replace Map with plain List, use parameter's index as a key
2016-02-10 16:18:59 +03:00
Denis Zharkov
b9e677fef4 Get rid of redundant Map copy 2016-02-10 16:18:59 +03:00
Denis Zharkov
de3f507744 Add minor memory optimization
Get rid of 'unsubstitutedValueArguments' in resolved call
2016-02-10 16:18:59 +03:00
Mikhail Glukhikh
a08b8f43b2 Control flow graph for safe calls corrected #KT-10913 Fixed
Also #KT-10186 Fixed
Also #KT-5198 Fixed
2016-02-10 12:29:45 +03:00
Natalia Ukhorskaya
5ae394fec0 Optimize reference search for convention functions 2016-02-10 11:36:30 +03:00
Natalia Ukhorskaya
1f6894cdd4 EA-77626 - KNPE: AnonymousFunctionToLambdaIntention.applicabilityRange 2016-02-10 11:36:30 +03:00
Nikolay Krasko
5c6c1173a6 Aggregate configuration messages into one notification (KT-10489)
#KT-10489 Fixed
2016-02-10 01:31:38 +03:00
Nikolay Krasko
e2f1a5c092 Minor: refactoring 2016-02-10 01:31:37 +03:00
Zalim Bashorov
cf173d6963 Improve test multifilePackagePartMethodAdded: add file which should not be affected 2016-02-09 23:27:26 +03:00
Zalim Bashorov
f6e7f8c3c0 Introduce TestingContext to pass data between tests and KotlinBuilder; introduce BuildLogger to log build events (build finished, files marked as dirty) in KotlinBuilder 2016-02-09 23:27:25 +03:00
Zalim Bashorov
4ec3865830 Log final exit code instead of intermediate; change log level for build result to INFO 2016-02-09 23:27:24 +03:00
Ilya Gorbunov
1fca1cc607 Use foreach loop instead of directly taking iterator in sum and average.
Use indexed loop for arrays in reduce and reduceIndexed.
#KT-10579 Fixed
2016-02-09 22:51:39 +03:00
Ilya Gorbunov
6c7cefaae3 Use HALF_EVEN rounding mode by default for BigDecimal division operator.
#KT-10462 Fixed
2016-02-09 22:51:02 +03:00
Dmitry Jemerov
8b5e9d1685 code review; add one more missing description 2016-02-09 19:23:00 +01:00
Dmitry Jemerov
6e1705dd16 port IDEA's InspectionDescriptionTest into Kotlin
#KT-10345 Fixed
2016-02-09 19:23:00 +01:00
Dmitry Jemerov
daf26f4db3 more consistent inspection display names; add missing inspection descriptions
#KT-10908 Fixed
2016-02-09 19:22:59 +01:00
Alexey Sedunov
bb2a5b00b7 Change Signature: Fix reference substitution when default value is a single simple name reference
#KT-10954 Fixed
2016-02-09 19:18:50 +03:00
Alexey Sedunov
792d9c1ae2 Introduce Variable: Skip type in template if no resolvable/non-error types are available in the current context
#KT-10808 Fixed
2016-02-09 19:18:45 +03:00
Zalim Bashorov
eacd50c4dc FIx possible NPEs when try to use TestModuleProperties in IDEA 144.x
#EA-78931 Fixed
2016-02-09 15:55:16 +03:00
Michael Bogdanov
0f90dc1649 Code clean and some refactorings in 'getLambdaIfExistsAndMarkInstructions' 2016-02-09 10:19:16 +03:00
Michael Bogdanov
c75b514551 Get rid of InstructionsAndFrames.kt 2016-02-09 10:19:15 +03:00
Michael Bogdanov
b8ee2ecdac Support extension lambda inlining in complex stack cases (nullable receiver) 2016-02-09 10:19:15 +03:00
Ilya Gorbunov
78b7fb15f3 J2K, expected errors: for each argument of removed overloads 2016-02-09 02:58:09 +03:00
Ilya Gorbunov
b4ebaad8f5 Drop previously deprecated API. 2016-02-09 02:58:07 +03:00
Stanislav Erokhin
434bd0707d Correcting rewrite type info after compete call.
#KT-10934 Fixed
#KT-10896 Fixed
2016-02-08 20:49:31 +03:00
Zalim Bashorov
74b2c8cd31 Minor: fix method name 2016-02-08 19:31:17 +03:00
Ilya Gorbunov
17ebb36128 Test Throwable properties in JS, don't work as expected, commiting as ignored.
#KT-10911
2016-02-08 18:10:46 +03:00
Ilya Gorbunov
5361f6e941 Make Throwable properties message and cause open.
#KT-5587 Fixed
2016-02-08 18:10:46 +03:00
Pavel V. Talanov
f12c653aed KtLightClassForFacade is not valid if any of the files it was built for doesn't have top level callables
#KT-9434 Fixed
2016-02-08 16:45:47 +03:00
Pavel V. Talanov
f59a4c537e Minor: remove some dead code 2016-02-08 16:45:46 +03:00
Nikolay Krasko
909ced5fa2 Use non-local functions to avoid creating lambdas in heap 2016-02-08 16:43:55 +03:00
Nikolay Krasko
99a693a14b Too many empty ArrayList stored for arguments 2016-02-08 16:43:54 +03:00
Nikolay Krasko
ff2029035e Don't generate new empty list with TypeParameterDescriptor 2016-02-08 16:43:54 +03:00
Denis Zharkov
cd3f7df28c Create deep descriptors copy for Change signature
It's needed to prevent accesses to invalid PSI
after changes has been applied
2016-02-08 16:40:47 +03:00
Denis Zharkov
c879f83037 Fix primitive types mapping
Use boxed version if type was enhaced to not-nullable
2016-02-08 16:40:47 +03:00
Denis Zharkov
68110f5859 Add minor optimization
Do not copy overrides while creating FAKE_OVERRIDE
2016-02-08 16:40:47 +03:00
Denis Zharkov
18e7272a1e Do not force overridden descriptors computation
Currently 'overriddenDescriptors' of substituted function is lazy
and in most cases it's unnecessary to compute it
(it's enough to use the same field from 'original')
2016-02-08 16:40:47 +03:00
Denis Zharkov
9e3d381eb3 Perform computation of overridden descriptors lazy
It's makes sense in cases when descriptors are being substituted, because
in many cases their overridden are not needed.
2016-02-08 16:40:47 +03:00
Denis Zharkov
fae6de9acd Replace 'addOverriddenDescriptor' with 'setOverriddenDescriptors'
It helps to get rid of redundant SmartSets (e.g. for top-level functions)
2016-02-08 16:40:47 +03:00
Denis Zharkov
c1f57b743b Do not build enhanced descriptors if they are unchanged 2016-02-08 16:40:47 +03:00
Denis Zharkov
924d706e79 Release original Java descriptors while enhancing
It's both more correct and helps to release memory retained by
descriptor before enhancement
2016-02-08 16:40:47 +03:00
Denis Zharkov
beea2d5d10 Use source elements instead of descriptors
It's needed because resulting descriptors are different
(because they are enhanced) from ones on which load error is reported.
See where latter happens

Currently we suppose that source elements should be stable
2016-02-08 16:40:47 +03:00
Michael Bogdanov
848549dd5d Rollback "Fix for KT-10659: Debugger: Evaluate Expression and Watches fail for inline function parameter passed by reference" 2016-02-08 16:43:22 +03:00
Pavel V. Talanov
9e5c387d6c PropertyCodegen: Diagnose descriptor not found for property 2016-02-08 16:18:36 +03:00
Natalia Ukhorskaya
25b8e4f1b2 Do not compute classnames during stepping
#KT-10827 Fixed
2016-02-08 15:49:11 +03:00
Natalia Ukhorskaya
d238df8525 Debugger: add test for line breakpoint variants with inline function call. Fix testData for muted test 2016-02-08 15:49:11 +03:00
Zalim Bashorov
3c4cb54573 Allow to use internal declarations from special modules in compiler (JPS)
(e.g. IDEA 16 gradle tests loaded in separate module)

 #KT-10595 Fixed
2016-02-08 15:42:49 +03:00
Zalim Bashorov
e328c24857 J2K KotlinBuilderModuleScriptGenerator: cleanup 2016-02-08 15:42:48 +03:00
Zalim Bashorov
21e69a0a4c J2K KotlinBuilderModuleScriptGenerator: convert 2016-02-08 15:42:48 +03:00
Zalim Bashorov
d5030335b6 J2K KotlinBuilderModuleScriptGenerator: .java -> .kt 2016-02-08 15:42:48 +03:00
Zalim Bashorov
2c1d1e84a6 Allow to use internal declarations from special modules in IDEA
(e.g. IDEA 16 gradle tests loaded in separate module)

 #KT-10595 Fixed
2016-02-08 15:42:47 +03:00
Dmitry Petrov
5968ce96df KT-10939 CANNOT_COMPLETE_RESOLVE for inherited generic interface method
'original' for value parameters of fake override is not a value parameter of unsubstituted fake override.
Match value parameters by index.
2016-02-08 10:08:35 +03:00
Alexander Udalov
9f786c00a7 Fix test data after removing old annotation classes 2016-02-07 10:03:19 +05:30
Nikolay Krasko
938a435346 Allow to process return statements without parent KtDeclaration (EA-70883) 2016-02-06 17:50:17 +03:00
Nikolay Krasko
1e50847985 SOE on setEnabled(). setEnabled() changes were propagated back to action group with the request to update state (EA-71014) 2016-02-06 17:50:16 +03:00
Alexander Udalov
e82d549853 Delete old metadata annotation classes 2016-02-06 15:53:55 +05:30
Alexander Udalov
8800782c83 Move constants from JvmAnnotationNames closer to usages 2016-02-06 15:53:55 +05:30
Alexander Udalov
2f5a6ac465 Minor, add extra constant to JvmAnnotationNames, drop unneeded utility 2016-02-06 15:53:55 +05:30
Alexander Udalov
5de1cf3bb4 Do not write old metadata annotations to bytecode 2016-02-06 15:53:55 +05:30
Alexander Udalov
ba80e8ba81 Use kotlin.Metadata instead of old annotations in IDE, reflection and tests 2016-02-06 15:53:55 +05:30
Mikhail Glukhikh
7da981e12c Regression tests #KT-8168 Obsolete 2016-02-05 18:29:40 +03:00
Denis Zharkov
0efe28a12a Do not inline non-const vals
#KT-10425 Fixed
2016-02-05 17:43:55 +03:00
Yan Zhulanow
f2edcd99a8 Illegal Dalvik identifier inspection 2016-02-05 17:28:50 +03:00
Denis Zharkov
8d87800a05 Fix JVM crash
Replace inlined 'let' containing complicated control flow with common `if`
2016-02-05 17:26:10 +03:00
Valentin Kipyatkov
affbefdfbe Better diagnostic for EA-70945 2016-02-05 16:29:58 +03:00
Valentin Kipyatkov
ce8e2d7a65 Added better diagnostic for EA-75805 2016-02-05 16:29:58 +03:00
Valentin Kipyatkov
3fe6f9cad2 More correct convertation to string template when number literals involved 2016-02-05 16:29:57 +03:00
Valentin Kipyatkov
9c426e70e1 Fixed EA-75114 2016-02-05 16:29:57 +03:00
Valentin Kipyatkov
c914ca0626 Fixed EA-75251 2016-02-05 16:29:57 +03:00
Valentin Kipyatkov
eca581ef43 Fixed EA-75979 2016-02-05 16:29:56 +03:00
Valentin Kipyatkov
8b6338ce62 Fixed EA-76497 2016-02-05 16:29:56 +03:00
Michael Bogdanov
bc2077bfaf More wise lambda search during inlining 2016-02-05 15:42:46 +03:00
Denis Zharkov
16f412f993 Generate multi-files facade even if it's empty
It still contains useful information about it's parts,
that may be used while building stubs for multi-file group
containing only InlineOnly functions
2016-02-05 15:02:24 +03:00
Denis Zharkov
889b136a68 Refine multi-file facades generation
Do not generate delegation from multi-file facade to inline-only functions
because they are effectively private in bytecode

 #KT-10858 Fixed
2016-02-05 15:02:24 +03:00
Dmitry Petrov
e4583fd275 Do not report IMPLICIT_CAST_TO_ANY on last statement of lambda with Unit(?) in at least one branch. 2016-02-05 10:44:50 +03:00
Dmitry Jemerov
fa8706b46a a bit more diagnostics to track down "Cannot find package fragment for file" 2016-02-04 15:50:25 +01:00
Ilya Gorbunov
6038bde3c1 Inline-only Lazy.getValue extension 2016-02-04 17:30:12 +03:00
Yan Zhulanow
8c17c5f40b Pack actual Kotlin Android compiler plugin sources into kotlin-android-extensions-ver-sources.jar 2016-02-04 17:24:44 +03:00
Pavel V. Talanov
c600fe1dc3 Fix "Select in project view" and "autoscroll from source" not working in some cases
#KT-9278 Fixed
  #KT-8356 Fixed
2016-02-04 17:13:21 +03:00
Stanislav Erokhin
9c72a388b2 Random code change to prevent JVM crash on windows (JRE version: 6.0_45-b06)
JVM crash log:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x06b1e0ae, pid=2908, tid=1656
#
# JRE version: 6.0_45-b06
# Java VM: Java HotSpot(TM) Client VM (20.45-b01 mixed mode windows-x86 )
# Problematic frame:
# J  org.jetbrains.kotlin.idea.formatter.KotlinPreFormatProcessor$Visitor.visitNamedDeclaration(Lorg/jetbrains/kotlin/psi/KtNamedDeclaration;)V
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x5f0bb800):  JavaThread "AWT-EventQueue-1 IDEA 15.0.4#IC-143.SNAPSHOT IDEA, eap:true, os:Windows Server 2008 R2 6.1, java-version:Sun Microsystems Inc. 1.6.0_45-b06 IDEA 15.0.4#IC-143.SNAPSHOT IDEA, eap:true, os:Windows Server 2008 R2 6.1, java-version:Sun Microsystems Inc. 1.6.0_45-b06" [_thread_in_Java, id=1656, stack(0x60520000,0x60570000)]

siginfo: ExceptionCode=0xc0000005, writing address 0x8b8721bf

Registers:
EAX=0x0b8721c0, EBX=0x0b655c10, ECX=0x00000000, EDX=0x4789df50
ESP=0x6056d620, EBP=0x6056df7c, ESI=0x0b0b3618, EDI=0x0b8721d0
EIP=0x06b1e0ae, EFLAGS=0x00010246

Top of Stack: (sp=0x6056d620)
0x6056d620:   00000006 0b86d8b8 0afd5c68 026112bb
0x6056d630:   0b86f1a6 0b86f1dc 6056e088 05632944
0x6056d640:   00000004 00000000 6056e088 0b86f214
0x6056d650:   00000086 6056d668 6dae8209 0b86f214
0x6056d660:   0b86f074 00000086 6056d8b0 049aec30
0x6056d670:   0b872170 0b655c10 0b871c80 0b0b5210
0x6056d680:   0b0b4df8 0b8721c0 00000005 0b8705c0
0x6056d690:   0afd5c68 0b86eef8 0afd5c68 0b86d8b8

Instructions: (pc=0x06b1e0ae)
0x06b1e08e:   b9 0e 00 00 89 79 34 8b 4a 68 89 08 89 50 04 33
0x06b1e09e:   c9 89 48 08 89 48 0c 89 44 24 64 b9 00 00 00 00
0x06b1e0ae:   89 88 ff ff ff 7f f0 83 04 24 00 83 fb 00 0f 84
0x06b1e0be:   12 00 00 00 81 7b 04 60 06 0d 45 0f 85 05 00 00

Register to memory mapping:

EAX=
[error occurred during error reporting (printing register info), id 0xc0000005]

Stack: [0x60520000,0x60570000],  sp=0x6056d620,  free space=309k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
J  org.jetbrains.kotlin.idea.formatter.KotlinPreFormatProcessor$Visitor.visitNamedDeclaration(Lorg/jetbrains/kotlin/psi/KtNamedDeclaration;)V
J  com.intellij.psi.impl.source.PostprocessReformattingAspect.doPostponedFormattingInner(Lcom/intellij/psi/FileViewProvider;)V
2016-02-04 15:48:18 +03:00
Nikolay Krasko
63a50ca3a9 Can't get file when event is invalid (EA-77748) 2016-02-04 15:12:02 +03:00
Pavel V. Talanov
7c84225cc4 Fix typechecker when initializer of destructuring declaration is unresolved or missing 2016-02-04 15:08:39 +03:00
Pavel V. Talanov
a4e3dd7030 Minor: refactor DestructuringDeclarationResolver 2016-02-04 15:08:39 +03:00
Zalim Bashorov
ba6c738cb5 Minor: don't init AnsiConsole when coloring is disabled 2016-02-04 14:36:31 +03:00
Dmitry Jemerov
bcc3102e05 highlight usages for parameter doesn't look at base declarations
#KT-10204 Fixed
2016-02-04 11:35:22 +01:00
Dmitry Jemerov
37976e516c postpone isJsProject() check
#KT-9026 Fixed
2016-02-04 11:31:46 +01:00
Pavel V. Talanov
abcdae8e69 Prevent recursion when computing parameter list of KtLightMethod (part 2)
Use ClsWrapperStubPsiFactory when building light classes for decompiled kotlin classes
2016-02-04 12:55:19 +03:00
Alexey Sedunov
5f037d372d Intentions: Move member of companion object to corresponding class
#KT-9697 Fixed
2016-02-04 12:26:19 +03:00
Alexey Sedunov
d13ac6b5a4 Intentions: Move class member to companion object
#KT-9697 In Progress
2016-02-04 12:26:18 +03:00
Alexey Sedunov
fe8a0ec2bc Move: Additional test for KT-10553 (private top-level property with default accessors) 2016-02-04 12:26:17 +03:00
Alexey Sedunov
48b538cebf Light Classes: Provide backing fields (if any) as one of property's light elements 2016-02-04 12:26:15 +03:00
Dmitry Petrov
b5145ea68b Use implementation part class for SMAP generation when inlining function both from binaries and sources. 2016-02-04 10:17:30 +03:00
Dmitry Jemerov
0a46033d40 ensure Kotlin's move handlers run before Java's
#KT-10703 Fixed
2016-02-03 17:44:29 +01:00
Alexey Andreev
e9d5d8f0fe [KT-7683] Implement translation of 'when .. in' clause to JS 2016-02-03 19:08:58 +03:00
Natalia Ukhorskaya
6ee4071462 Debugger: use top elements to cache classnames to minimize cache size 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
2fa00f87e0 Minor: add some clarifications 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
9b978377d0 Debugger: merge KotlinPositionManagerCache into KotlinDebuggerCaches 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
b5b2bbc9ab Minor: rename KotlinEvaluateExpressionCache 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
ccd22cd5ca KotlinPositionManager: use cache for classNames where possible 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
f28f7eaa3b ExtraSteppingFilter: do not compute classNames for inline 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
876e458c04 Add cache for library files 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
e89638f937 Move typeMappers cache to KotlinPositionManagerCache 2016-02-03 18:53:50 +03:00
Natalia Ukhorskaya
c808f4ec2a KotlinPositionManager: add cache for classNames by psiElement 2016-02-03 18:53:50 +03:00
Mikhail Glukhikh
60d56b30bf Safe call arguments are now handled as nullable in generic resolver #KT-9985 Fixed 2016-02-03 18:34:10 +03:00
Dmitry Jemerov
187694d1b0 don't veto rename of constructors
#KT-9693 Fixed
2016-02-03 15:58:05 +01:00
Stanislav Erokhin
34d8dd9127 Add optimization for fake overrides creation. 2016-02-03 17:47:40 +03:00
Stanislav Erokhin
ec991b4ced Minor. Update run configuration. 2016-02-03 17:47:39 +03:00
Zalim Bashorov
030c55ebb2 Minor: fix testdata 2016-02-03 17:35:14 +03:00
Ilya Gorbunov
805410bb19 J2K: Remove special conversion for String.format. 2016-02-03 17:14:02 +03:00
Ilya Gorbunov
c243a2bdd5 In addition to extension String.format introduce String.Companion.format(format, args) to be used like in java. 2016-02-03 17:14:01 +03:00
Ilya Gorbunov
7105c7c182 Documentation stubs for new packages. 2016-02-03 17:04:28 +03:00
Mikhail Glukhikh
0c32fab690 Type comparison: first check for star projections, then obtain constructor parameters #KT-10893 Fixed
Also #EA-78405 Fixed
2016-02-03 16:26:39 +03:00
Pavel V. Talanov
c5be8ce1d3 Prevent recursion when computing parameter list of KtLightMethod
#KT-10890 Fixed
 #KT-10851 Fixed
2016-02-03 16:08:05 +03:00
Dmitry Petrov
4afe98a0f6 Better diagnostics for conflicting overloads.
Skip declarations without sources in reporting, not when determining redeclaration groups:
this allows emitting informative diagnostics for incremental compilation.
Provide containing declaration with "kind", e.g., "package '<root>'", "class A", and so on.
2016-02-03 15:53:07 +03:00
Zalim Bashorov
130301aa27 Minor: log the content of module.xml when a source root not found on FS
Related issues: #KT-9587 #KT-10394
2016-02-03 15:28:20 +03:00
Dmitry Jemerov
e227f6fc74 use more deterministic check to determine that "Configure Kotlin in project" notification should be displayed
#KT-10898 Fixed
2016-02-03 13:18:54 +01:00
Michael Bogdanov
394221fefb Updated test data 2016-02-03 10:35:32 +03:00
Michael Bogdanov
6ae6f72156 Fix for crashed build 2016-02-03 10:35:31 +03:00
Michael Bogdanov
4b203de608 INVISIBLE_MEMBER_FROM_INLINE renamed to NON_PUBLIC_CALL_FROM_PUBLIC_INLINE 2016-02-03 10:35:29 +03:00
Michael Bogdanov
d1db404959 Error diagnostic for private classes in inline functions; Fix for KT-7545: IllegalAccessError when accessing private nested class through inlined function from different package
#KT-7545 Fixed
2016-02-03 10:32:41 +03:00
Michael Bogdanov
71c2a6e792 Generate package private visibility in bytecode for private classes 2016-02-03 10:32:41 +03:00
Ilya Gorbunov
751ac3912d IDEA version for bootstrapping (use IDEA built with kotlin rc branch) 2016-02-03 00:23:10 +03:00
Ilya Gorbunov
f19ef6e3d5 SAM-constructors for Iterable and Sequence interfaces. 2016-02-03 00:13:17 +03:00
Ilya Gorbunov
947fd84f1e Minor: reorder primitive specializations in generated code (according to the order they defined in java). 2016-02-02 22:06:34 +03:00
Ilya Gorbunov
7a50562a4e Minor: reorder families in generated code. 2016-02-02 22:06:34 +03:00
Ilya Gorbunov
477b57cdfd Rearrange stdlib, part 2: rename files to better represent their content. 2016-02-02 22:06:33 +03:00
Ilya Gorbunov
57cfa54957 Rearrange stdlib between files and folders, rename files to better represent their content.
Fix package part name in testData
2016-02-02 22:06:32 +03:00
Dmitry Jemerov
c881cd1070 use new API for excluding Kotlin plugin from update checks 2016-02-02 16:19:29 +01:00
Dmitry Jemerov
45a387668b don't show two "Rename variables" checkboxes for a Kotlin class
#KT-8509 Fixed
2016-02-02 15:55:54 +01:00
Dmitry Jemerov
db5191041f better place for J2K options
#KT-10513 Fixed
2016-02-02 14:43:26 +01:00
Mikhail Glukhikh
45298e0bad Delegated properties now cannot be used before initialization #KT-10869 Fixed 2016-02-02 16:27:20 +03:00
Dmitry Petrov
65f754ffca Fix KT-10764 IDEA doesn't show overload conflict between constructor and function...
When checking for overloads in package, consider functions and top-level class constructors as possibly conflicting between each other. NB OverloadUtil uses containing package scope from module descriptor.

Change diagnostic message for CONFLICTING_OVERLOAD: it's misleading in case of fun vs constructor conflict.

Add custom multifile test for diagnostics in IDE (probably not the best; should preprocess file content if it's required to check highlighting in multiple files, not only in the first file).

Add test for KT-10765 Incremental compilation misses overload conflict between constructor and function ...
2016-02-02 16:21:26 +03:00
Nikolay Krasko
7dd725f0a4 Failed build is good enough for version increment 2016-02-02 16:10:54 +03:00
Dmitry Jemerov
4a1d282de6 don't try to parse empty text as XML 2016-02-02 13:40:23 +01:00
Denis Zharkov
8df05c6c4c Refine 'isMoreSpecific' calculation
Choose member with better visibility, it's needed for proper calculation
of types intersection member scope

 #KT-10481 Fixed
2016-02-02 15:26:49 +03:00
Ilya Gorbunov
148b53fc62 Add UTF_32 charsets to Charsets object as lazy initialized properties.
#KT-10379 Fixed
2016-02-02 15:23:22 +03:00
Natalia Ukhorskaya
f29efc2ca2 Evaluate expression shouldn't be applicable for class name of Java class in static call
#KT-7261 Fixed
2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
893c2495fe Minor: regenerate tests 2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
51ea804d88 Debugger: do not write exception to log in some valid cases 2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
45f96f8f32 Evaluate expression shouldn't be applicable for name of named parameter in function call
#KT-7266 Fixed
2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
4f76207a27 Fix breakpoints in inline function with generic crossinline argument
#KT-10673 Fixed
2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
b19d32e4f2 Public members should have bigger priority in debugContext
#KT-10634 Fixed
2016-02-02 15:16:14 +03:00
Natalia Ukhorskaya
d60a5e65c1 Debugger: skip visibility check 2016-02-02 15:16:14 +03:00
Dmitry Petrov
bad8320038 Fix for KT-10881 Declaring constant in a mutlifile class causes an IllegalAccessError on its usage.
Generate fields for 'const' properties in facade class.

NB reading annotations for 'const' vals in multifile class doesn't work, KT-10892.
2016-02-02 15:06:21 +03:00
Dmitry Jemerov
970d6f6834 generate local variables table for @JvmOverloads-generated methods
#KT-7319 Fixed
2016-02-02 12:11:51 +01:00
Yan Zhulanow
da7acd5e73 Check annotations on default property getter/setter 2016-02-02 13:14:56 +03:00
Mikhail Glukhikh
7e528da00a Regression codegen test #KT-8344 Obsolete 2016-02-02 12:43:52 +03:00
Denis Zharkov
816c66063b Report special diagnostic when fake-call receiver is nullable
#KT-3602 Fixed
2016-02-02 08:17:49 +03:00
Denis Zharkov
829a5639f1 Rework error reporting for fake call resolution
Move diagnostic creation to one place
2016-02-02 08:17:48 +03:00
Denis Zharkov
9b3f557337 Report MEMBER_PROJECTED_OUT on calls with smart cast receiver
#KT-10856 Fixed
2016-02-02 08:17:48 +03:00
Ilya Gorbunov
05192547da Make DEFAULT_BUFFER_SIZE a constant. 2016-02-01 22:20:31 +03:00
Ilya Gorbunov
801a26a544 Fix testData 2016-02-01 22:20:30 +03:00
Ilya Gorbunov
a192915c82 Do not inline Regex.replace 2016-02-01 22:20:28 +03:00
Ilya Gorbunov
dccae6c3ff Introduce annotation InlineExposed to indicate internal members effectively public due to usage in inlined functions.
Currently, doesn't affect anything.

Make collectionSizeOrDefault and collectionSizeOrNull internal, but expose them via inlining together with mapCapacity.

Make Regex(Pattern) constructor exposed by inlined Pattern.toRegex
2016-02-01 22:20:27 +03:00
Ilya Gorbunov
dacf25fdec Make all assert inline. Field _Assertions.ENABLED instead of property ASSERTIONS_ENABLED 2016-02-01 22:09:19 +03:00
Ilya Gorbunov
c763b592a5 IDEA version for bootstrapping
Build markdown every time (again).
2016-02-01 22:09:18 +03:00
Ilya Gorbunov
1cef327880 Throw assertion when inline-only is applied without inline 2016-02-01 22:09:17 +03:00
Ilya Gorbunov
a12fe2c18a Do not use inline-only in java 2016-02-01 22:09:17 +03:00
Ilya Gorbunov
8a00db5661 Include internal annotatations in mock runtime 2016-02-01 22:09:16 +03:00
Ilya Gorbunov
fc3f98dae2 Deprecate currentThread property 2016-02-01 22:09:15 +03:00
Ilya Gorbunov
42bd8df2ca Drop CharSequence.get extension 2016-02-01 22:09:14 +03:00
Ilya Gorbunov
1eee1fa803 Swap parameters in File.forEachBlock 2016-02-01 22:09:13 +03:00
Ilya Gorbunov
abe927056b Inline-only in kotlin.comparisons 2016-02-01 22:09:13 +03:00
Ilya Gorbunov
54977ee09a Inline-only in kotlin.io 2016-02-01 22:09:12 +03:00
Ilya Gorbunov
47d580cbc5 Inline-only in kotlin.text 2016-02-01 22:09:11 +03:00
Ilya Gorbunov
56c5758db1 Inline-only in kotlin and kotlin.system packages, split Float/Double extension implementations for JVM and JS to make them inline-only in JVM. 2016-02-01 22:09:10 +03:00
Ilya Gorbunov
40fae0463f Inline-only in kotlin.concurrent, make all timer utilities inline. 2016-02-01 22:09:09 +03:00
Ilya Gorbunov
ce5fd3ee77 Inline-only in kotlin.collections 2016-02-01 22:09:08 +03:00
Ilya Gorbunov
c7bd70732c Inline-only in generated code 2016-02-01 22:09:07 +03:00
Ilya Gorbunov
8c0008aa2e StdLib Generators: support three flavors of inline 2016-02-01 22:09:07 +03:00
Dmitry Jemerov
38b58db4f9 don't apply StandardScriptDefinition in REPL 2016-02-01 19:16:31 +01:00
Dmitry Jemerov
84f9cb9bfd correctly separate stdout and stderr when parsing REPL output 2016-02-01 19:06:17 +01:00
Ilya Gorbunov
3ae4c033b6 Wrap exceptions thrown by class builders and add details about class file being generated. 2016-02-01 19:59:06 +03:00
Michael Bogdanov
5f38c1d571 Fix for KT-10729: Accessing private const field in companion object from a function in the same companion generates run-time error 2016-02-01 18:42:19 +03:00
Michael Bogdanov
9790afb1bd Idea dependency updated to 143.2072 2016-02-01 18:32:13 +03:00
Michael Bogdanov
328b9bfeda Removed old default generation 2016-02-01 18:32:12 +03:00
Pavel V. Talanov
a90f8122bd Fix NPE on trying to compile script files
(There is still no design)
2016-02-01 17:33:46 +03:00
Mikhail Glukhikh
d194af5c4e Correct report of NO_VALUE_FOR_PARAMETER when function call contains no brackets and lambda at the end #KT-7813 Fixed 2016-02-01 17:11:54 +03:00
Mikhail Glukhikh
84100abd9e Annotations on object literals are now correctly resolved #KT-9320 Fixed 2016-02-01 16:24:57 +03:00
Yan Zhulanow
a041414f35 Kapt: compile kotlinAfterJava without Jdk as well in Android projects (KT-10854) 2016-02-01 14:33:02 +03:00
Denis Zharkov
e5f644a64a Temporary disable warning about unchecked reified argument
#KT-10847 Fixed
 #KT-6484 Reopened
2016-02-01 13:36:38 +03:00
Alexey Sedunov
b0c808082f Pull Members Up: Skip visibility checking between members to move 2016-02-01 13:18:47 +03:00
Alexey Sedunov
f9632c1ad6 Pull Members Up: Use light field if property doesnt't have light methods
#KT-10552 Fixed
2016-02-01 13:18:46 +03:00
Alexey Sedunov
e386a6b0e9 Go to Test Action: Make available in the entire class text range
#KT-10757 Fixed
2016-02-01 13:18:45 +03:00
Alexey Sedunov
3e2036b6ec Convert Member to Extension Intention: Drop open/final modifiers, add imports when necessary, transform Java-site calls
#KT-8876 Fixed
2016-02-01 13:18:44 +03:00
Alexey Sedunov
99e4c8c06d Create from Usage: Add commas after enum entries
#KT-10800 Fixed
2016-02-01 13:18:43 +03:00
Alexey Sedunov
26c47cda47 Convert Object Literal to Lambda Intention: Move lambda out of parentheses when possible. Fix after-template
#KT-10778 Fixed
2016-02-01 13:18:41 +03:00
Alexey Sedunov
1c65797950 Intentions: Fix contentRange() on empty KtBlockExpression
#KT-10776 Fixed
2016-02-01 13:18:40 +03:00
Alexey Sedunov
c5b1d205a2 Initialize Property with Constructor Parameter Quick-Fix: Skip secondary constructors with this-delegation. Use containing class as a Change Signature context
#KT-10818 Fixed
2016-02-01 13:18:39 +03:00
Alexey Sedunov
fcbb18d876 Generate equals()/hashCode(): Forbid in interfaces
#KT-10815 Fixed
2016-02-01 13:18:38 +03:00
Alexey Sedunov
58963f7053 Move: Improved file chooser with search
#KT-9752 Fixed
2016-02-01 13:18:37 +03:00
Alexey Sedunov
625bfe12eb Move: Do not create target directory outside of write-action 2016-02-01 13:18:36 +03:00
Alexey Sedunov
222dfd265b Move: Forbid target annotation classes in class chooser 2016-02-01 13:18:35 +03:00
Alexey Sedunov
8e18bf647e Move: Fix refactoring command name 2016-02-01 13:18:34 +03:00
Alexey Sedunov
a05a16c1e6 Move: Fix name lengthening when moving from default package
#KT-10696 Fixed
2016-02-01 13:18:33 +03:00
Alexey Sedunov
d92bfd20d7 Move Class To Upper Level: Fix file name validation 2016-02-01 13:18:31 +03:00
Ilya Gorbunov
4f1418bb72 Verify index expectations for reduceIndexed/reduceRightIndexed 2016-01-31 02:45:05 +03:00
Ilya Gorbunov
1357c77d0b Minor: verify exception type of failed fold/reduce 2016-01-31 02:45:04 +03:00
Gabriel Borges
d58efff974 Add foldIndexed and reduceIndexed groups of functions
- foldIndexed, foldRightIndexed, reduceIndexed and reduceRightIndexed have been added, in line with filterIndexed etc.;
- Test cases added appropriately for the new functions.
2016-01-31 02:45:02 +03:00
Dmitry Petrov
b3f390abe5 Fix KT-10775 Empty when causes compilation exception.
Expression type for an empty 'when' is 'kotlin.Unit'.
2016-01-29 18:50:48 +03:00
Mikhail Glukhikh
dcc6262f47 Regression test #KT-7804 Obsolete 2016-01-29 17:23:40 +03:00
Denis Zharkov
505dc61611 Treat extension receiver as noinline parameter
#KT-9574 Fixed
2016-01-29 14:36:53 +03:00
Denis Zharkov
2cd88b8cbc Make crossinline and noinline incompatible 2016-01-29 14:36:53 +03:00
Denis Zharkov
87741e9b9f Minor. Get rid of redundant diagnostic parameters 2016-01-29 14:36:53 +03:00
Denis Zharkov
855a0b3493 Force type calculation for local function if it should be inferred
It helps to catch TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM errors
because they appear after return type calculation began

 #KT-6271 Fixed
 #KT-3272 Obsolete
2016-01-29 14:36:53 +03:00
Denis Zharkov
7d6310d88c Add test for obsolete issue
#KT-9571 Obsolete
2016-01-29 14:36:53 +03:00
Denis Zharkov
36f21932bb Approximate captured type before mapping
#KT-7415 Fixed
2016-01-29 14:36:53 +03:00
Denis Zharkov
5b0fdcb3fe Fix stack overflow caused star projection 2016-01-29 14:36:53 +03:00
Denis Zharkov
6b33e3fb67 Minor. Rename variables and add assertion 2016-01-29 14:36:53 +03:00
Mikhail Glukhikh
4691351e76 Fix for unprocessed lambda under not-null assertion #KT-10843 Fixed
Also #EA-76890 Fixed
2016-01-29 12:57:52 +03:00
Michael Bogdanov
e1fa6491c1 Test for obsolete KT-10044: "Don't know how to generate outer expression for class" with lambda in init block
#KT-10044 Obsolete
2016-01-29 12:42:37 +03:00
Michael Bogdanov
b9c30c739e Test for obsolete KT-7224: Redundant result boxing on ?. call on a primitive
#KT-7224 Obsolete
2016-01-29 12:13:16 +03:00
Michael Bogdanov
c9cc9c55cd Added assertion for super call with default arguments in function default impl body 2016-01-29 11:02:21 +03:00
Mikhail Glukhikh
767729ba2a Regression test #KT-9633 Obsolete 2016-01-29 10:55:22 +03:00
Dmitry Petrov
112e54b35a KT-10752: if (inferred) type for an expression refers to a Java class
non-accessible in the current context, it is a compiler error.
Otherwise we might generate a CHECKCAST instruction that causes IAE at run-time.
Here we are somewhat less permissive then Java
(see inaccessibleType.kt in diagnostics tests).
2016-01-29 10:30:00 +03:00
Dmitry Petrov
1b78d01ae6 Effective visibility issues in FileBasedKotlinClass.
Make exposed nested classes public.
2016-01-29 10:30:00 +03:00
Evgeny Gerashchenko
c242ad94fd Minor. Syntax error cosmetics. 2016-01-29 01:00:47 +03:00
Evgeny Gerashchenko
0d79c65d73 KT-8275 Unterminated multi-line comment should be compilation error
#KT-8275 fixed
2016-01-29 01:00:47 +03:00
Tim Steinbach
7cad65a1e7 Remove which dependency from startup scripts 2016-01-28 21:48:16 +03:00
Alexander Udalov
2a5b4d2c83 Fix annotations on Java elements in reflection
#KT-10840 Fixed
2016-01-28 21:48:16 +03:00
Alexander Udalov
b946d725d7 Filter out methods without return type to fix EA-73795 2016-01-28 21:48:16 +03:00
Alexander Udalov
7e17482698 Delete kotlin-jdk-annotations and kotlin-android-sdk-annotations
They were empty anyway for a long time
2016-01-28 21:48:16 +03:00
Ilya Gorbunov
911940d458 InlineOnly annotation suppresses NOTHING_TO_INLINE diagnostics. 2016-01-28 19:37:44 +03:00
Mikhail Glukhikh
0f1e6ba8be Refactoring: noTypeCheckingErrorsInExpression introduced 2016-01-28 19:30:25 +03:00
Mikhail Glukhikh
ed8ccdc15a Take into account data flow info changes for special call (if/when/elvis/!!) arguments #KT-10824 Fixed
Smart casts on complex expressions look as no more possible
2016-01-28 19:30:20 +03:00
Dmitry Jemerov
7c59592212 Quickfix for "Expression cannot be invoked as a function" with no arguments to remove parentheses
#KT-10825 Fixed
2016-01-28 17:04:44 +01:00
Dmitry Jemerov
6d7e1c69dc remove logic to filter perf output from compiler output 2016-01-28 16:12:56 +01:00
Dmitry Jemerov
6f7aed2601 report perf only if enabled in command line 2016-01-28 16:12:55 +01:00
Mikhail Glukhikh
7fd1f507e4 Additional catch for ReenteringLazyValueComputationException #KT-8448 Fixed
Also #EA-76264 Fixed
2016-01-28 17:52:33 +03:00
Mikhail Glukhikh
5062ce2804 Regression: correct smart cast from Type? to Type! 2016-01-28 17:08:15 +03:00
Mikhail Glukhikh
26a2319d7c ControlFlowBuilder.getExitPoint() now can return null if nothing was found #KT-10823 Fixed
Also #EA-73355 Fixed
2016-01-28 16:19:54 +03:00
Mikhail Glukhikh
c5d6e8edb4 More detailed error message for EA-77641 2016-01-28 16:19:49 +03:00
Mikhail Glukhikh
7c8cdf84fd ControlFlowProcessor: converted to Kotlin #EA-77380 Fixed 2016-01-28 16:19:45 +03:00
Mikhail Glukhikh
59c2a96eb5 ControlFlowProcessor.java --> ControlFlowProcessor.kt 2016-01-28 16:19:41 +03:00
Mikhail Glukhikh
42b6b41378 ControlFlowInstructionsGenerator: converted to Kotlin 2016-01-28 16:19:37 +03:00
Mikhail Glukhikh
80338ecb88 ControlFlowInstructionsGenerator.java --> ControlFlowInstructionsGenerator.kt 2016-01-28 16:19:33 +03:00
Mikhail Glukhikh
6ba171297c ControlFlowBuilderAdapter: converted to Kotlin 2016-01-28 16:19:29 +03:00
Mikhail Glukhikh
5a405f3ddb ControlFlowBuilderAdapter.java --> ControlFlowBuilderAdapter.kt 2016-01-28 16:19:24 +03:00
Mikhail Glukhikh
605da5b7b9 ControlFlowBuilder: converted to Kotlin 2016-01-28 16:19:20 +03:00
Mikhail Glukhikh
41eed948be ControlFlowBuilder.java --> ControlFlowBuilder.kt 2016-01-28 16:19:16 +03:00
Mikhail Glukhikh
171cdfe08a Unnecessary comments removed 2016-01-28 16:19:12 +03:00
Mikhail Glukhikh
1ddaf465cd PseudocodeImpl: converted to Kotlin 2016-01-28 16:19:08 +03:00
Mikhail Glukhikh
381c1c4bba PseudocodeImpl.java --> PseudocodeImpl.kt 2016-01-28 16:19:03 +03:00
Mikhail Glukhikh
1d6eadbd37 Pseudocode: converted to Kotlin 2016-01-28 16:18:59 +03:00
Mikhail Glukhikh
c54f8ebac7 Pseudocode.java --> Pseudocode.kt 2016-01-28 16:18:55 +03:00
Dmitry Jemerov
95683bbf38 remove old API usage inspection 2016-01-28 14:13:57 +01:00
Nikolay Krasko
e79ad386ef Parametrize maven deploy to allow pushing to bintray 2016-01-28 15:03:27 +03:00
Michael Bogdanov
dc2cb401ad KT-10670: Debugger: Evaluate Expression/Watches fail for inline function parameter initialized with default value
#KT-10670 Fixed
2016-01-28 14:23:24 +03:00
Michael Bogdanov
d4df7aaabc Fix for KT-10659: Debugger: Evaluate Expression and Watches fail for inline function parameter passed by reference
#KT-10659 Fixed
2016-01-28 14:23:24 +03:00
Mikhail Glukhikh
069282cb6e Regression test #KT-8277 Can't Reproduce 2016-01-28 13:33:29 +03:00
Mikhail Glukhikh
12b100c541 Regression test #KT-9529 Obsolete 2016-01-28 12:56:12 +03:00
Ilya Gorbunov
6ac52d19ac Move IndexedValue to kotlin.collections. 2016-01-28 12:41:36 +03:00
Natalia Ukhorskaya
54fa9eff61 Debugger: do not compute classnames for inline functions during stepping 2016-01-28 11:16:44 +03:00
Denis Zharkov
e69b115d9a Remove wrong assertion 2016-01-28 08:36:24 +03:00
Denis Zharkov
29c24267fa Fix project compilation
First parameters of `DiagnosticFactory.on` methods are annotated as 'NotNull'
2016-01-28 08:36:24 +03:00
Denis Zharkov
11a96ee8c8 Introduce not null type parameter capability
Java nullability annotations may generate types that currently are not denotable in Kotlin:
class Java {
  void <F> foo(@NotNull F f) {}
}

Type of given value parameter should be not nullable under any substitution:
String/String?/String! because of annotation contract.

NB: Currently there is no full analogues for such types in pure kotlin
2016-01-28 08:36:23 +03:00
Denis Zharkov
08dd675fcd Minor. Drop unused property 2016-01-28 08:36:23 +03:00
Denis Zharkov
8e3bdd6a0f Minor. Rename parameter and get rid of labels 2016-01-28 08:36:22 +03:00
Denis Zharkov
c26ca5e7ef Turn on inference when resolving constructor super-calls
It's only needed when one of candidates has it's own type parameters
Otherwise it does not make sense as arguments are already specified
2016-01-28 08:35:18 +03:00
Denis Zharkov
6542d091ee Support generic constructors defined in Java
#KT-10686 Fixed
 #KT-10410 Fixed
2016-01-28 08:35:18 +03:00
Alexander Udalov
a02d1b75b8 Mark array constructors with 'inline'
To allow non-local returns from lambdas passed to them
2016-01-28 03:10:40 +03:00
Alexander Udalov
70e847b794 Reimplement generation of intrinsic array constructors
Instead of relying on a class from the runtime (which thus cannot be deleted
from the runtime ever), rely on a class from the compiler instead. This has a
minor downside: that class is compiled by the bootstrap compiler, so if codegen
of 'for'-loops or something else used in that class changes, it won't
immediately have an effect on a local working copy (on the build server
everything will be fine because of a 2-step building process).

In the future it may make sense to just manually create all the bytecode
instructions and dump them into a MethodNode. Currently the amount of work
needed for that seems rather significant
2016-01-28 03:10:39 +03:00
Alexander Udalov
0e11aa098f Minor, prettify Kotlin code in source maps 2016-01-28 03:10:39 +03:00
Alexander Udalov
7d880f10ec Optimize getFqName calls in KotlinBuiltIns
Check the simple name first, and only then construct the full FqName, in all
'is*' methods
2016-01-28 03:10:38 +03:00
Alexander Udalov
04026dbe84 Make Array<T>(size, init) a constructor of Array
It's not marked as inline, this is why 'crossinline' was added in
jaggedArray.kt/jaggedDeep.kt. Will be fixed in the following commits
2016-01-28 03:10:37 +03:00
Alexander Udalov
18238bd6f3 Minor, drop DescriptorRendererOptions#prettyFunctionTypes 2016-01-28 03:10:19 +03:00
Alexander Udalov
9e8b6571f4 Make primitive array factory functions constructors 2016-01-28 03:10:19 +03:00
Alexander Udalov
4b03adaa57 Minor, improve AbstractLazyType#toString for debug 2016-01-28 03:10:19 +03:00
Alexander Udalov
0e481a4340 Minor, fix Array kdoc 2016-01-28 03:10:19 +03:00
Ilya Gorbunov
3d468aaab9 Allow call assertFailsWith<T> with default message. 2016-01-28 00:13:51 +03:00
Mikhail Glukhikh
7e26fa6002 One non-processed branch is now allowed for if statement #KT-10805 Fixed
Also #EA-64033 Fixed
2016-01-27 22:44:52 +03:00
Yan Zhulanow
43b176de7e Minor: fix typo 2016-01-27 19:31:45 +03:00
Yan Zhulanow
c6e6547559 Kapt: add Java task classpath to processorpath 2016-01-27 19:31:45 +03:00
Yan Zhulanow
203d9e150b Kapt: Add kapt.kotlin.generated to the supported options list 2016-01-27 19:31:45 +03:00
Yan Zhulanow
bfae2afdb5 Android Extensions: Remove deprecated k.a.s.<layout> convention 2016-01-27 19:31:45 +03:00
Ilya Gorbunov
d49f5b95b0 Fix deprecations in testData 2016-01-27 19:05:19 +03:00
Ilya Gorbunov
eabac9dcf6 Rename measureTimeNano to measureNanoTime 2016-01-27 18:34:33 +03:00
Ilya Gorbunov
d46501e11b Make all remaining deprecations to be errors. 2016-01-27 18:34:32 +03:00
Ilya Gorbunov
263e1b4b5d Drop deprecated mapIndexedTo on Maps. 2016-01-27 18:34:31 +03:00
Ilya Gorbunov
744a7a83f7 Cleanup RC deprecations in compiler and plugin. 2016-01-27 18:34:30 +03:00
Yan Zhulanow
c7a0375c25 Fix AndroidSubplugin applicability check (plain Java Gradle project) 2016-01-27 17:17:47 +03:00
Yan Zhulanow
16958d7a66 Android Extensions: Clear findViewById cache just before RETURN (KT-10720) 2016-01-27 17:17:47 +03:00
Yan Zhulanow
ec4f1b16de Remove obsolete Android Extensions plugin 2016-01-27 17:17:47 +03:00
Yan Zhulanow
32037fdd2e Do not remove all imports if "Optimize Imports" is executed on a file outside source dirs #KT-9925 2016-01-27 17:17:47 +03:00
Yan Zhulanow
4e82fabc7d kapt: Pass Kotlin annotations to process() 2016-01-27 17:17:47 +03:00
Dmitry Petrov
c5fd496cc9 Fix KT-10805 for 'when'. 2016-01-27 17:07:20 +03:00
Dmitry Petrov
9db3440e72 Fix type inference issues for 'if' and 'when'.
Use 'expectedType' (when present) as an explicit type argument for a special construct call.
Unfortunately, this approach can't be used for elvis due to other elvis-related inference hacks.
Fixes KT-10807, KT-10811.
This also affects KT-6189: now we can infer proper type for 'if'.

If type inference for special call failed, and we found no type errors in sub-expressions,
report TYPE_INFERENCE_FAILED_ON_SPECIAL_CONSTRUCT error.
This (and the hack above) fixes KT-10809: code no longer compiles.
2016-01-27 17:07:20 +03:00
Dmitry Jemerov
e3e463ef70 nicer UI for choosing a configurator when multiple options are available 2016-01-27 13:49:45 +01:00
Nikolay Krasko
7c8a5b0b83 Make change signature fix non-applicable for constructors (EA-76554) 2016-01-27 14:00:16 +03:00
Alexey Tsvetkov
8331442661 Fix clause that causes removing deleted files from LookupStorage 2016-01-27 12:31:14 +03:00
Alexey Tsvetkov
0a48d83176 Make LookupStorage thread safe
#KT-10792: Fixed
2016-01-27 12:31:14 +03:00
Alexey Tsvetkov
44b3159867 Move InlineFunctionsMap to IncrementalCacheImpl 2016-01-27 12:28:44 +03:00
Alexey Tsvetkov
2abc422577 Fix updating java mappings for multifile facade 2016-01-27 12:28:44 +03:00
Alexey Tsvetkov
56942930c9 Minor: remove unreachable code 2016-01-27 12:28:44 +03:00
Alexey Tsvetkov
cfc45aa763 Update incremental cache version 2016-01-27 12:28:44 +03:00
Alexey Tsvetkov
a474165a8f Recompile subtypes when class member is changed 2016-01-27 12:28:44 +03:00
Ilya Gorbunov
4296b7f882 Breaking: make copyTo return target file instead of its size. 2016-01-27 00:29:09 +03:00
Ilya Gorbunov
8d02467e6d Introduce plusElement and minusElement to disambiguate situations like List<List<T>> + List<T>
#KT-9992 Fixed
2016-01-27 00:00:01 +03:00
Zalim Bashorov
fb21ef2e1d Use interner in LookupTracker implementations to reduce memory consuming 2016-01-26 23:14:20 +03:00
Dmitry Jemerov
c83b4b3842 clean ZipHandler cache after disposing CoreApplicationEnvironment to avoid storing stale ZipHandlers referring to disposed CoreJarFileSystem instance in ZipHandler.ourFileAccessorCache 2016-01-26 19:51:59 +01:00
Yan Zhulanow
26ed1c3756 Move Android Extensions subplugin to the main kotlin-gradle-plugin artifact 2016-01-26 21:13:37 +03:00
Mikhail Glukhikh
d94930149b Warning for open members in objects 2016-01-26 19:04:17 +03:00
Mikhail Glukhikh
1b8f938260 Report EXPOSED_PROPERTY_TYPE on a property name only #KT-10760 Fixed 2016-01-26 19:04:13 +03:00
Mikhail Glukhikh
b1e3e1c32d A few forgotten checks added for objects (function members effective visibility, multiple varargs) #KT-10753 Fixed 2016-01-26 19:04:08 +03:00
Mikhail Glukhikh
0368631aa3 Source code fix: exposed visibility in object members 2016-01-26 19:04:04 +03:00
Mikhail Glukhikh
22c0ddaa48 Destructuring declaration initializer now cannot use extension componentX() on nullable #KT-7794 Fixed 2016-01-26 19:03:28 +03:00
Mikhail Glukhikh
850dc89b38 For-loop now cannot use extension iterator on a nullable #KT-7428 Fixed 2016-01-26 19:03:23 +03:00
Alexey Sedunov
218dd41a08 Move: More accurate visibility analysis
#KT-10553 Fixed
2016-01-26 18:19:20 +03:00
Alexey Sedunov
64f6c62d4f Move: Implement "Move nested class to another class" UI
#KT-9027 Fixed
2016-01-26 18:19:16 +03:00
Alexey Sedunov
e943508d87 Move: Implement "Move nested class to upper level" UI
#KT-9027 In Progress
2016-01-26 18:19:13 +03:00
Alexey Sedunov
d662b02e95 Move: Nested classes support
#KT-9027 In Progress
2016-01-26 18:19:09 +03:00
Yan Zhulanow
0304bd1dc1 More precise diagnostic messages about "operator modifier is not applicable" 2016-01-26 17:21:44 +03:00
Yan Zhulanow
3fa506fd45 "Inapplicable operator modifier" and "Inapplicable infix modifier" are now errors 2016-01-26 17:21:44 +03:00
Denis Zharkov
f560799bb7 Support top level wildcard types
#EA-73650 Fixed
2016-01-26 16:41:29 +03:00
Nikolay Krasko
5b6f7486ce KotlinSetupEnvironmentNotificationProvider now uses indecies so it not DumbAware anymore (EA-78406) 2016-01-26 16:29:56 +03:00
Nikolay Krasko
d5768dc4ff Fix PsiInvalidElementAccessException in suppression check (EA-71132) 2016-01-26 16:29:55 +03:00
Nikolay Krasko
e7685735bb KtUnaryExpression.baseExpression may be null (EA-78379) 2016-01-26 16:29:53 +03:00
Nikolay Krasko
06939b11e4 Fix NPE in GotoSuperActionHandler.java (EA-77295) 2016-01-26 14:58:44 +03:00
Zalim Bashorov
aebf681809 Rename module "build" -> "build-common" 2016-01-26 14:32:21 +03:00
Denis Zharkov
8ec63bd4dd Use type arguments from supertype when resolving constructor delegation call
#KT-3357 Fixed
2016-01-26 13:53:45 +03:00
Denis Zharkov
8b828f1d9a Use known type substitutor if it exists 2016-01-26 13:53:45 +03:00
Natalia Ukhorskaya
b442cf9fec Debugger: check that virtual machine allows to get bytecodes 2016-01-26 13:36:39 +03:00
Ilya Gorbunov
23080f78f7 Map.getOrPut: treat nulls as missing values. 2016-01-26 11:49:18 +03:00
Ilya Gorbunov
a49db730a9 Map.getOrElse: treat nulls as missing values. 2016-01-26 11:49:17 +03:00
Ilya Gorbunov
90a239e74c Provide toMutableList as a replacement for toArrayList. 2016-01-26 11:49:15 +03:00
Ilya Gorbunov
a709ba4a6e Provide toMap with the destination mutable map to populate.
Tune type projections of map mutating operations.
2016-01-26 11:49:13 +03:00
Ilya Gorbunov
564155734b Introduce associateTo and associateByTo with the destination MutableMap to fill. 2016-01-26 11:49:12 +03:00
Ilya Gorbunov
e41bf687d9 Deprecate toLinkedMap 2016-01-26 11:49:10 +03:00
Ilya Gorbunov
8224a4e186 Rename toMap and toMapBy to associate and associateBy 2016-01-26 11:49:03 +03:00
Ilya Gorbunov
45c9cc4add Breaking: Change File.copyTo contract to be similar to Files.copy from JDK8. 2016-01-26 11:49:02 +03:00
Ilya Gorbunov
67663c43ae Introduce overwrite parameter to File.copyRecursively.
#KT-8924 Fixed
2016-01-26 02:26:33 +03:00
Ilya Gorbunov
d03c174650 Deprecate assertFailsWith with java Class<T> parameter.
#KT-10377
2016-01-26 02:26:33 +03:00
Ilya Gorbunov
28ab9eebbc minor: manual cleanup 2016-01-26 02:26:33 +03:00
Alexander Udalov
36e41554e1 Do not load old metadata annotation in check-library-abi-version.kts
Also do not force recompiling markdown since we've moved to 1.1.0 now
2016-01-25 22:41:45 +03:00
Stanislav Erokhin
e53e152f83 Removed hacks for code migration from ConstraintSystemImpl. 2016-01-25 21:53:09 +03:00
Ilya Gorbunov
7703252239 Provide groupBy and groupByTo with keySelector and valueTransform.
Rename parameters of groupBy, add type parameter for MutableMap to groupByTo.
2016-01-25 21:15:56 +03:00
Ilya Gorbunov
0eaaee8202 StdLib Generators: parse generic function parameters into primitive model 2016-01-25 21:15:19 +03:00
Stanislav Erokhin
210c9ab3db Minor. Added regression tests for: KT-3927, KT-9522, KT-10036, KT-7440, KT-9682, KT-9808, KT-9517, KT-9810, KT-9345. 2016-01-25 19:13:32 +03:00
Stanislav Erokhin
298a075381 Minor. removed functions which declared in Standard.kt from diagnostic testdata.
Removed declaration for functions: TODO, run, with, apply, let.
2016-01-25 19:13:31 +03:00
Stanislav Erokhin
d7438d9f2b Add mock runtime to diagnostic tests.
Mock runtime contains function from file Standard.kt
2016-01-25 19:13:30 +03:00
Nikolay Krasko
6ac73eb760 Remove blocking cache in Kotlin JavaElementFinder (KT-9811)
Attempt to remove cache completely. There's now cache in JavaPsiFacadeImpl.findClass() that probably solves the original problem.
2016-01-25 17:08:22 +03:00
Michael Bogdanov
874560df9d Fix for KT-10715: Verify error on incrementing backing field from accessor 2016-01-25 16:56:57 +03:00
Michael Bogdanov
cf09949354 Fix for KT-10590: IllegalAccessError when protected getter of Java base class is accessed from lambda using property access syntax 2016-01-25 16:56:56 +03:00
Natalia Ukhorskaya
9d66852ae2 J2K: convert method references according to special methods 2016-01-25 15:02:48 +03:00
Natalia Ukhorskaya
25b64b198c Minor: fix NPE 2016-01-25 12:47:45 +03:00
Natalia Ukhorskaya
ba323098ea Debugger: fix EE for localvariables inside inline function call
#KT-10674 Fixed
2016-01-25 12:47:45 +03:00
Natalia Ukhorskaya
203cab8d1b Debugger: fix step over for if with inline function call without lambda arguments 2016-01-25 12:47:45 +03:00
Nikolay Krasko
dbc2299cf2 Update test jar during runtime library update (KT-10773)
#KT-10773 Fixed
2016-01-25 11:37:56 +03:00
Stanislav Erokhin
aca19ed27a KT-10772 Problem with daemon on Idea 15.0.3 & 1-dev-25
# KT-10772 Fixed
2016-01-24 12:29:23 +03:00
Ilya Gorbunov
a78b08d9c7 Use generic coerceIn for nullable primitives, provide specialization for non-nullable ones.
Fix docs for coerceAtMost.
2016-01-24 06:44:13 +03:00
Alexander Udalov
7981e5aa3a Increase metadata version to 1.1, hardcode incompatibility with 1.0
Add a temporary option to suppress incompatibility errors when compiling Kotlin
against current IDEA libraries until they are migrated
2016-01-23 10:00:19 +03:00
Ilya Gorbunov
13b1e91eb5 StdLib Generators: fix type projections, do not use concat. 2016-01-23 05:13:26 +03:00
Alexander Udalov
714df7b433 Add temporary compiler option to suppress incompatibility errors
To compile Kotlin against current IDEA libraries until they are migrated to 1.1
2016-01-22 23:53:47 +03:00
Stanislav Erokhin
f688b1b786 Relax rules for type parameters in property receivers 2016-01-22 22:18:57 +03:00
Stanislav Erokhin
30bb8d4828 Minor. Optimized enhanceSignature method 2016-01-22 22:09:33 +03:00
Stanislav Erokhin
f710ba88f8 Minor. Removed TypeParameterDescriptor#getLowerBounds 2016-01-22 22:09:33 +03:00
Ilya Gorbunov
9a41e07ac0 Use IDEA 143.1960 built with master kotlin branch.
Remove tweaks required to bootstrap packages.
Restore non-star imports of kotlin.text.Charsets.
2016-01-22 22:06:22 +03:00
Alexey Tsvetkov
cfc410261b Minor: fix test data 2016-01-22 21:04:46 +03:00
Mikhail Glukhikh
0ff07af3ef DelegatingDataFlowInfo: potential concurrent modification in multi map fixed 2016-01-22 20:44:58 +03:00
Denis Zharkov
982dfa9183 Minor. Specify variables type explicitly
It's needed because 'assertEquals' has 'OnlyInputType' annotation
on type parameter, and type of 're.exec(string)!!' is 'Array<String?>',
while 'arrayOf("A5D5", "A5", "D5")' is 'Array<String>'
2016-01-22 19:17:22 +03:00
Denis Zharkov
6c0cd70a22 Introduce PureReifiable annotation
It prevents reporting unsafe substitution warning on expressions
like 'arrayOf(arrayOf(""))'
2016-01-22 19:17:22 +03:00
Denis Zharkov
32755a269c Support annotations on type parameters in stub builder 2016-01-22 19:17:22 +03:00
Denis Zharkov
d7e035fd9b Serialize annotations on type parameters in builtins 2016-01-22 19:17:22 +03:00
Denis Zharkov
4cf1393e81 Minor. Render annotations on type parameters 2016-01-22 19:17:22 +03:00
Denis Zharkov
70dc5b5403 Prohibit use of captured type as argument for reified parameter
#KT-8093 Fixed
2016-01-22 19:17:22 +03:00
Denis Zharkov
751f66c656 Report warning on generic type as argument for reified parameter
#KT-6484 Fixed
2016-01-22 19:17:22 +03:00
Denis Zharkov
ae6c62ddff Minor. Report reified-related diagnostics on arguments if possible 2016-01-22 19:17:22 +03:00
Denis Zharkov
5baa0ed4bb Minor. Rename TypeUtils.containsSpecialType -> contains 2016-01-22 19:17:22 +03:00
Denis Zharkov
a5c13ce8cf Approximate projections in SAM type when creating SAM adapter
Use the same approach as Java 8 applies to function types
(see non-wildcard parametrization in §9.9 of JLS)

 #KT-6918 Fixed
2016-01-22 19:17:22 +03:00
Denis Zharkov
d87b13931d Create special type for missing dependencies when resolving annotations
#KT-10748 Fixed
2016-01-22 19:17:22 +03:00
Nikolay Krasko
76f60294a8 Temporary revert old system of source roots for idea-full and intellij-core 2016-01-22 19:01:39 +03:00
Dmitry Jemerov
4846776242 don't show "Kotlin not configured" notification for files outside a source root 2016-01-22 16:42:58 +01:00
Mikhail Glukhikh
e9af4d25d0 Handling of try / catch / finally with 'Nothing' in all catch blocks #KT-10735 Fixed 2016-01-22 16:37:22 +03:00
Mikhail Glukhikh
60f5d9ef8b DelegatingDataFlowInfo: do not create redundant instances 2016-01-22 16:37:19 +03:00
Mikhail Glukhikh
2ee9f22242 DelegatingDataFlowInfo: never store original type or its supertypes #KT-10666 Fixed 2016-01-22 16:37:16 +03:00
Mikhail Glukhikh
e04338f4fa Minor refactoring: DelegatingDataFlowInfo.create() 2016-01-22 16:37:13 +03:00
Mikhail Glukhikh
366ab508e1 Data flow analysis: assignment of null makes variable effectively of type 'Nothing?' 2016-01-22 16:37:10 +03:00
Mikhail Glukhikh
859059d714 Bug fix: jump out of a loop inside if condition 2016-01-22 16:37:07 +03:00
Mikhail Glukhikh
b3c5760eb5 Type intersection fix: T & (final A) is no more calculated as just A #KT-7801 Fixed 2016-01-22 16:37:04 +03:00
Mikhail Glukhikh
3106a8508a Front-end and back-end test for KT-7801 2016-01-22 16:37:00 +03:00
Mikhail Glukhikh
7ac55cefcb Extra test with smart cast to 'T' 2016-01-22 16:36:57 +03:00
Mikhail Glukhikh
d5ffa0bbca DelegatingDataFlowInfo: default constructor 2016-01-22 16:36:54 +03:00
Mikhail Glukhikh
7870ad2445 DataFlowInfo converted to Kotlin, DataFlowInfoFactory introduced 2016-01-22 16:36:51 +03:00
Mikhail Glukhikh
9e1c2f396e DataFlowInfo.java --> DataFlowInfo.kt 2016-01-22 16:36:48 +03:00
Alexey Tsvetkov
f63a9ee556 Optimize adding lookups to lookup storage 2016-01-22 16:01:36 +03:00
Alexey Tsvetkov
f32ff42ba3 Recompile implicit type usages when class signature is changed 2016-01-22 16:01:36 +03:00
Alexey Tsvetkov
310a995bb1 Add lookup for every expression's type 2016-01-22 16:01:36 +03:00
Alexey Tsvetkov
1ef615e020 Add incremental compilation test with change of annotation class 2016-01-22 16:01:36 +03:00
Alexey Tsvetkov
5ce692a75c Improve proto comparison test with changes of annotation list 2016-01-22 16:01:35 +03:00
Alexey Tsvetkov
58a91b3d20 Add proto comparison tests with changes of class/member flags 2016-01-22 16:01:35 +03:00
Alexey Tsvetkov
a7c432ebe8 Add incremental compilation tests with changes of companion object 2016-01-22 16:01:35 +03:00
Alexey Sedunov
618f9f62f6 Code Insight: "Generate toString" action
#KT-10309 Fixed
2016-01-22 15:50:19 +03:00
Alexey Sedunov
77b637e238 Change Signature: Skip Java methods which can't be resolved from Kotlin (such as methods of local classes)
#KT-10432 Fixed
2016-01-22 15:50:17 +03:00
Alexey Sedunov
0104bfec86 Add val/var to Constructor Parameter: Fix caret position before starting template 2016-01-22 15:50:16 +03:00
Alexey Sedunov
8da986ff24 Add Initializer Quick-Fix: Place caret at the end of generated initializer
#KT-10704 Fixed
2016-01-22 15:50:15 +03:00
Alexey Sedunov
9081f5df52 Introduce Variable: Move caret to the end of declaration when replacing "statement" expression
#KT-10663 Fixed
2016-01-22 15:50:14 +03:00
Pavel V. Talanov
16ab4bec34 Try to diagnose NoDescriptorForDeclarationException in completion 2016-01-22 15:32:37 +03:00
Dmitry Petrov
55b7e4bbf0 Ignore special resolved calls for 'when' in PSI unifier. 2016-01-22 10:41:56 +03:00
Dmitry Petrov
a33c840939 Fix Kotlin build after fixing when-related type checking issues.
Filed: KT-10752, KT-10755.
2016-01-22 10:41:55 +03:00
Dmitry Petrov
f371e67ce8 PatternMatchingTypingVisitor:
rewrite type inference for 'when' using special constructs.
This fixes several type inference issues for 'when':
KT-9929, KT-9972, KT-10439, KT-10463
along with some other diagnostics-related issues.
2016-01-22 10:41:55 +03:00
Dmitry Petrov
b49e08fe04 PatternMatchingTypingVisitor:
separate condition data flow info analysis and exhaustiveness check
from type inference for "incomplete" (statement-like) 'when'.
2016-01-22 10:41:55 +03:00
Michael Bogdanov
a76d16931c Temporary generate old default method 2016-01-22 10:10:32 +03:00
Michael Bogdanov
829978a37d Added additional parameter for default methods 2016-01-22 10:10:32 +03:00
Ilya Gorbunov
875287574f Update testData for LoadBuiltinsTest and BuiltInDecompilerTest 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
4d5ec9be3f Drop identityEquals from builtins, compiler and tests. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
f5f5a2dcc1 Move progression final element test to stdlib tests.
Less values are tested for iteration not to timeout in js tests.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
2a125ca92d Drop deprecated builtins: PropertyMetadata, progression internal utils, HiddenDeclaration and Extension annotations 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
31ec7bcbea Deprecate String.concat with error severity.
Fix concat j2k conversion.
Add expected deprecation errors for Java String constructors that must be converted to special Kotlin String methods.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
2257fa36ec Drop deprecations: text and system
Fix import in testData
Fix testData: replace removed method.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
8bf638c60f Drop deprecations: FileTreeWalk deprecated API elements. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
e9c14a02d3 Make FilePathComponents internal, temporary disable tests of internal API 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
c1ad82ff8c Harden charset-as-string taking function deprecations.
Fix usages in compiler.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
6d5a65cac6 Minor: remove File?.readTextOrEmpty() 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
d728a1a6c7 Replace File.relativePath from stdlib with File.descendantRelativeTo in fileUtils.
IO utils: cleanup java usages.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
b39b29dfea Drop deprecations: io and threading functions. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
25c4453dc5 Cleanup deprecated symbol usages in testData 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
eefbd72a64 Remove AddStarProjectionsFix for removed javaClass<T> function. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
cbc3a3b595 Make IndexingIterator and IndexingIterable internal. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
9142025df6 Drop deprecations: reflection utilites. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
69f884dcd3 Drop deprecations: preconditions with non-lazy message. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
768a23f7eb Drop deprecations: functions that were converted to properties. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
2813840769 Fix testData: diagnostics changed. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
ef0d998fbc Drop deprecations: *Raw functions. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
d1a5988bfc Drop deprecations: complicated map delegates and kotlin.support.AbstractIterator. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
4f1d2252f0 Make test for replacement, which requires adding import to the package with operator, independent from stdlib. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
d7f8754282 Drop deprecated classes inheriting multifile facade classes moved out of kotlin package. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
473773723b Drop deprecations in kotlin.test 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
85a02d40c6 Drop hidden declarations provided for binary compatibility 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
264c9a0fc9 Drop deprecated toGenerator and toLinkedList (again). 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
b97e436a50 Fix deprecated Range and Progression usages in testData 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
d48ec7e296 Update testData for LoadBuiltinsTest 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
91f4cf0ebc Drop Progression<T> and its deprecated properties: start, end, increment.
Drop deprecated range extensions.
Make progression constructors private.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
6dd8470835 Drop deprecated primitive ranges and progressions: for Byte and Short 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
e8621cb738 Drop Range<T> interface and its extensions. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
face6d449b Make values in Typography constant, add dollar sign. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
6eabd1d692 Move stdlib classes between packages. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
f4822cd757 Fix testData in compiler: add collections and ranges package to fq-names. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
98e2d27c77 Resolve types from all builtin default packages in TypeUnifierTest 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
c84cbfb36a Allow to specify fq-names in expected resolve testData 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
3262a4ddc2 LoadBuiltinsTest inspects three packages: kotlin, kotlin.collections and kotlin.ranges 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
db9e458cf9 Fix imports in maven kotlin from java usage example. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
46a59b7550 Fix imports in java: temporary replace with star imports. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
0213a129ce Increment STUB_VERSION due to changed fq-names in signatures. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
26a6147a56 Minor: array constructor names formatting. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
1129cee0ff Collect nested classes from all 4 builtin packages. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
e500e4bdf4 Obtain purely implemented interface class descriptor by its fq-name. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
e485bd4909 Fix mutability-flexible types rendering. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
83ef48d0ac Refer to builtin names in HeuristicSignatures and j2k TypeVisitor 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
346291af7b Use fq-names from KotlinBuiltins.FQ_NAMES instead of hardcoded ones. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
9c0f0cad70 Packages: move collections to kotlin.collections. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
9fbbc9db98 Packages: move Ranges, Progression, ProgressionIterators to kotlin.ranges and PrimitiveIterators to kotlin.collections. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
a3efa1ea6c Temporary allow-kotlin-package for building compiler 2016-01-22 05:54:38 +03:00
Ilya Gorbunov
3176f7d06c Restore downloading IDEA from teamcity, build markdown every time (temporary) 2016-01-22 05:54:38 +03:00
Alexander Udalov
0b7d2e3a68 Do not write old callable proto flags, use only new ones 2016-01-22 05:51:14 +03:00
Ilya Gorbunov
300a4be060 Deprecate Map.minus and minusAssign operators.
Disable tests failing in JS.
2016-01-22 01:13:33 +03:00
Ilya Gorbunov
7896e58afc Rename sequence function to generateSequence 2016-01-22 01:13:31 +03:00
Ilya Gorbunov
63e8865123 Make Lazy an interface open to implementation.
#KT-9287 Fixed
2016-01-22 01:03:18 +03:00
Ilya Gorbunov
dbcad08a35 Regex: MatchResult.groupValues do not exclude zeroth group, use the same indices as in groups collection.
Provide destructured property for destructured assignment.
2016-01-22 00:59:13 +03:00
Ilya Gorbunov
3459a24b0a Regex: Introduce MatchResult.groupValues to get list of numbered group values exlcuding zeroth group with the entire match. 2016-01-22 00:56:08 +03:00
Pavel V. Talanov
1fe749c114 Refactor: get rid of LightClassUtil#getPsiClass() in favor of KtClassOrObject:toLightClass extension 2016-01-21 20:47:22 +03:00
Pavel V. Talanov
2972dbca00 Rename LightClassGenerationSupport.getPsiClass -> getLightClass and make it return KtLightClass 2016-01-21 20:47:21 +03:00
Pavel V. Talanov
06215ca932 Correctly avoid calculation of autogenerated parameter name in ClsParameterImpl.calcName() 2016-01-21 20:47:21 +03:00
Pavel V. Talanov
36d5798a2e Regression test for old issue
#KT-7656 Fixed
2016-01-21 20:47:20 +03:00
Zalim Bashorov
1e6b3c5ae1 Add own PathStringDescriptor to compare paths properly on case-insensitive filesystems 2016-01-21 19:47:10 +03:00
Ilya Chernikov
c585d91e79 Adding generation states destroying to module-based compilation, to fix kapt usage with this compilation path 2016-01-21 19:47:09 +03:00
Ilya Chernikov
3615ca5b02 build.xml: add kotlin-build target 2016-01-21 19:47:08 +03:00
Ilya Chernikov
a61e5a6736 build.xml: add manifest to kotlin-daemon-client.jar 2016-01-21 19:47:07 +03:00
Ilya Chernikov
6198d0abbc Move compiler running utils to common module 2016-01-21 19:47:06 +03:00
Ilya Chernikov
a36e6a2e07 J2K KotlinModuleXmlBuilder: convert 2016-01-21 19:47:05 +03:00
Ilya Chernikov
60892f2b9c J2K KotlinModuleXmlBuilder: rename file 2016-01-21 19:47:04 +03:00
Zalim Bashorov
cc1c5b7e10 Move back classes which used only in JPS 2016-01-21 19:47:04 +03:00
Zalim Bashorov
e2e0167880 Minor: don't override clean in SourceToClassesMap 2016-01-21 19:47:03 +03:00
Ilya Chernikov
5ead2edaa0 Creating shared module "build", copying lookup storage, tracker and incremental cache related files into it from jps plugin 2016-01-21 19:47:02 +03:00
Valentin Kipyatkov
84e530bc1a KT-6079 Show "parameter information" popup for type arguments
#KT-6079 Fixed
2016-01-21 19:07:39 +03:00
Michael Bogdanov
bf16783fb7 Fix for KT-9591: Exception on inlining
#KT-9591 Fixed
2016-01-21 18:44:05 +03:00
Valentin Kipyatkov
53fe1568c9 KT-8529 Code completion for parameter name and type together replaces wrong range on Tab
#KT-8529 Fixed
2016-01-21 18:30:09 +03:00
Valentin Kipyatkov
bc8095ce33 KT-9424 "Exclude from import and completion" with "Project" scope
#KT-9424 Fixed
2016-01-21 18:30:08 +03:00
Alexey Tsvetkov
9bb876e6da Test incremental facade to class conversion and vice versa 2016-01-21 18:16:01 +03:00
Alexey Tsvetkov
94d4dae1fe Recompile all class usages when constructor is changed 2016-01-21 18:14:56 +03:00
Nikolay Krasko
5fcb9ca2bd Add speed to perfomance output 2016-01-21 17:45:51 +03:00
Nikolay Krasko
10648f44ac Do not auto-import convention methods without 'operator' modifier (KT-10212)
#KT-10212 Fixed
2016-01-21 17:45:51 +03:00
Dmitry Jemerov
84d507b770 code review 2016-01-21 15:30:13 +01:00
Dmitry Jemerov
4910b06f2c show "kotlin not configured" editor notification 2016-01-21 15:30:11 +01:00
Dmitry Jemerov
170ba98b20 show unsupported ABI notification only when current module or its dependencies have libraries with bad ABI 2016-01-21 15:30:11 +01:00
Dmitry Jemerov
6f80f36f2e UnsupportedAbiVersionNotificationPanelProvider: fix compilation and cleanup after J2K 2016-01-21 15:30:10 +01:00
Dmitry Jemerov
b1c5d3644e UnsupportedAbiVersionNotificationPanelProvider: J2K 2016-01-21 15:30:10 +01:00
Dmitry Jemerov
e20fdac9df UnsupportedAbiVersionNotificationPanelProvider: rename to .kt 2016-01-21 15:30:09 +01:00
Dmitry Jemerov
2379fd80fc don't show "kotlin not configured" notification for modules where the runtime is outdated 2016-01-21 15:30:08 +01:00
Dmitry Jemerov
85ea295e92 OutdatedKotlinRuntimeNotification: J2K and cleanup 2016-01-21 15:30:08 +01:00
Dmitry Jemerov
ca9979f9fb OutdatedKotlinRuntimeNotification.java: rename to .kt 2016-01-21 15:30:07 +01:00
Dmitry Jemerov
2272516d09 KotlinRuntimeLibraryUtil: J2K 2016-01-21 15:30:07 +01:00
Dmitry Jemerov
f588ef2912 KotlinRuntimeLibraryUtil: rename to .kt 2016-01-21 15:30:06 +01:00
Dmitry Jemerov
6c2a2b91b4 offer "All modules" choice in "Configure Kotlin in project" dialog, allow to invoke the action when there are no Kotlin files in the project
#KT-7979 Fixed
2016-01-21 15:30:05 +01:00
Dmitry Jemerov
4ffac80710 ConfigureKotlinInProjectUtils: convert to Kotlin, cleanup 2016-01-21 15:30:05 +01:00
Dmitry Jemerov
cff06cccf7 ConfigureKotlinInProjectUtils.kt: rename 2016-01-21 15:30:04 +01:00
Dmitry Jemerov
3b4a6afe01 Kotlin-produced test run configurations replace Java-produced ones (to avoid duplicate run configuration suggestions appearing since KtFile.getClasses() was implemented) 2016-01-21 14:46:26 +01:00
Dmitry Jemerov
51799ef70e fix tests on Windows agents: report canonical paths to conflicting Kotlin runtimes 2016-01-21 11:33:32 +01:00
Denis Zharkov
ad24092fd1 Move InlineOnly to kotlin.internal package 2016-01-21 11:26:01 +03:00
Denis Zharkov
ba506170e9 Use 'mapToCallableMethod' for delegateTo signature calculation
#KT-9707 Fixed
2016-01-21 11:24:23 +03:00
Valentin Kipyatkov
3a7ed33de1 KT-10747 "Incompatible stack heights" when compiling call to Java setter with non-void return type using property syntax
#KT-10747 Fixed
2016-01-21 10:48:47 +03:00
Alexander Udalov
d2d0f399db Minor, save parameters to field in ValueArgumentsToParametersMapper 2016-01-21 00:36:35 +03:00
Alexander Udalov
8fe964f269 Resolve array access RHS always as the last argument of the call
Also do not attempt to match any of the arguments in the brackets with the last
parameter of the 'set' method

 #KT-10633 Fixed
2016-01-21 00:36:35 +03:00
Dmitry Jemerov
ccef1ad49e report presence of multiple different versions of kotlin-runtime on the classpath as compilation error if other compilation errors have occurred 2016-01-20 21:02:44 +01:00
Dmitry Jemerov
4f5b2ec4b4 AnalyzerWithCompilerReport: some more cleanup after J2K 2016-01-20 21:00:24 +01:00
Dmitry Jemerov
bf5cdcb6b4 AnalyzerWithCompilerReport: J2K 2016-01-20 21:00:24 +01:00
Dmitry Jemerov
ae1e680319 AnalyzerWithCompilerReport: rename to .kt 2016-01-20 21:00:23 +01:00
Pavel V. Talanov
b34a91eeaa Changes inside init blocks should be considered out of block modifications 2016-01-20 19:02:53 +03:00
Pavel V. Talanov
d72bc78550 Resolve annotations on parameters of function type 2016-01-20 18:06:23 +03:00
Pavel V. Talanov
7d72875227 Create descriptors for parameters inside parameter list of KtFunctionType
Do not throw when trying to resolveToDescriptor those parameters
2016-01-20 18:06:19 +03:00
Michael Bogdanov
23480a5698 Supported inline of array convention simple cases; Fix for KT-9211: M13 an extension function that is inline, and for get(v) causes an exception when called using brackets
#KT-9211 Fixed
2016-01-20 17:33:50 +03:00
Michael Bogdanov
84dbdf2ccb Get rid of ValueParameterDescriptor in 'afterParameterPut' fun 2016-01-20 17:33:49 +03:00
Dmitry Jemerov
aacf2ad68c proguard: keep all JNA methods (some of them are accessed from native code) 2016-01-20 14:34:50 +01:00
Dmitry Jemerov
f88f38f7d2 Android Studio adds Android-Gradle facet to all modules, so we need to check for Android facet and Gradle module instead
#KT-9600 Fixed
2016-01-20 14:32:10 +01:00
Dmitry Jemerov
4ab6436f93 avoid index access in KtFile.getClasses() when the file isn't part of a multi-file class (helps with KT-10684) 2016-01-20 13:45:42 +01:00
Denis Zharkov
ede4b61980 Add tests for obsolete issue
#KT-7412 Obsolete
2016-01-20 14:27:53 +03:00
Denis Zharkov
06fbc9bdd3 Support reification of arrays containing reified parameters
#KT-10555 Fixed
2016-01-20 14:27:53 +03:00
Valentin Kipyatkov
28331bca9f KT-9418 Suggest name for new declaration basing on unresolved names in code
#KT-9418 Fixed
2016-01-20 13:55:56 +03:00
Valentin Kipyatkov
83ca4b84f9 Minor optimization 2016-01-20 13:55:55 +03:00
Alexander Udalov
17e8eafe33 Pass -Xallow-kotlin-package to compiler in project
To compile the 'builtins' module
2016-01-20 00:55:43 +03:00
Valentin Kipyatkov
59fb90a5ee Dropped KtTypedef 2016-01-19 19:31:44 +03:00
Valentin Kipyatkov
808c7453a4 Added test for 'typealias' being keyword 2016-01-19 19:31:44 +03:00
Valentin Kipyatkov
68853fecc3 Removed support for "typealias" declarations from the parser
#KT-10683 Fixed
2016-01-19 19:31:44 +03:00
Valentin Kipyatkov
38d374d4b9 Added test for nested class 2016-01-19 19:30:19 +03:00
Valentin Kipyatkov
2791d99f9d Direct implementation of ImportingScope 2016-01-19 19:30:19 +03:00
Valentin Kipyatkov
d337dff5fa Minor 2016-01-19 19:30:18 +03:00
Valentin Kipyatkov
d749f85a60 Inaccessible classes from the current package to not conflict with visible classes from somewhere else 2016-01-19 19:30:18 +03:00
Valentin Kipyatkov
bfe728526a Alias imports to hide symbols by original name from the current package too 2016-01-19 19:30:18 +03:00
Valentin Kipyatkov
e83bd759e6 Minor 2016-01-19 19:30:18 +03:00
Alexander Udalov
e2f49536f5 Move OldPackageFacadeClassUtils to module light-classes 2016-01-19 18:54:08 +03:00
Alexander Udalov
c78bf6c807 Set bytecode version to 1.0.0
It was 1.0.2 only because it was introduced as a clone of the metadata version,
which is 1.0.2 at the moment
2016-01-19 18:43:07 +03:00
Alexander Udalov
27dbfc7aef Rethrow InvalidProtocolBufferException with class file location info 2016-01-19 18:39:59 +03:00
Alexander Udalov
4d93d18af7 J2K DeserializedDescriptorResolver: prettify 2016-01-19 18:39:59 +03:00
Alexander Udalov
3efa51af40 J2K DeserializedDescriptorResolver: convert 2016-01-19 18:39:59 +03:00
Alexander Udalov
432d458c02 J2K DeserializedDescriptorResolver: rename .java -> .kt 2016-01-19 18:39:59 +03:00
Alexander Udalov
b216ed99b4 Simplify UTF-8 decoding, just trivially convert bytes to 16-bit Unicode
ASM will do the rest (see ByteVector#encodeUTF8)
2016-01-19 18:39:59 +03:00
Alexander Udalov
9620893fa4 Drop synthetic class kind Function, drop Metadata#xi 2016-01-19 18:39:59 +03:00
Alexander Udalov
aef6d49b48 Drop isLocalClass, do not write KotlinLocalClass 2016-01-19 18:39:59 +03:00
Alexander Udalov
e17cd12c3c Report error on generating calls to binary incompatible classes 2016-01-19 18:39:59 +03:00
Alexander Udalov
4bd1d064bb Do not load built-ins in old format, drop class_name extension 2016-01-19 18:39:59 +03:00
Alexander Udalov
625c46d568 Delete obsolete and unused class_annotation JVM proto extension 2016-01-19 18:39:59 +03:00
Alexander Udalov
6dbd29e6a4 Support decoding of both old and new encoded metadata 2016-01-19 18:39:59 +03:00
Alexander Udalov
5585c7da7f Minor, simplify utfEncoding, add option to force using 8to7 encoding 2016-01-19 18:39:59 +03:00
Andrey Breslav
fe15984a59 Direct encoding into UTF-8 bytes, without the 8-to-7-bit conversion 2016-01-19 18:39:59 +03:00
Alexander Udalov
693a9c9453 Write new flags to proto messages for callables
This is needed to get rid of two unused bits: Flags.RESERVED_1 and
Flags.RESERVED_2. The old flags are still there temporarily because of the
bootstrap dependency on built-ins. Soon the old flags will be dropped and the
current flags will be transformed to the new format
2016-01-19 18:39:59 +03:00
Alexander Udalov
86bbc9f15b Read new Metadata annotation in check-library-abi-version.kts 2016-01-19 18:39:59 +03:00
Alexander Udalov
a4daa08e5c Write module name as proto extension instead of another annotation argument 2016-01-19 18:39:59 +03:00
Alexander Udalov
d4c4515944 Refactor BinaryVersion and subclasses, get rid of static factories 2016-01-19 18:39:59 +03:00
Alexander Udalov
e37bd4eba6 Do not write and read KotlinInterfaceDefaultImpls
This was only used in InlineTestUtil.kt and had no effect in the condition
2016-01-19 18:39:59 +03:00
Alexander Udalov
7906ac63b5 Read Metadata annotation, support option to ignore old annotations 2016-01-19 18:39:59 +03:00
Alexander Udalov
59dab0a558 Combine all metadata annotations into one kotlin/Metadata 2016-01-19 18:39:59 +03:00
Alexander Udalov
661af854fa Drop KotlinClassHeader#filePartClassNames, use 'data' instead 2016-01-19 18:39:59 +03:00
Alexander Udalov
b587d3a78d Use JvmMetadataVersion where appropriate instead of bytecode version 2016-01-19 18:39:59 +03:00
Alexander Udalov
bd47e9d47b Split JVM binary version into two: metadata and bytecode interface
Currently all code only uses the first one (JvmMetadataVersion), later the
bytecode interface version (JvmBytecodeBinaryVersion) will be used only in
codegen and reflection to avoid compiling against or calling methods with
unsupported conventions like default method naming and signature,
getters/setters naming etc.
2016-01-19 18:39:59 +03:00
Alexander Udalov
fc88a0186f Drop obsolete synthetic class kind in KotlinClassHeader 2016-01-19 18:39:59 +03:00
Alexander Udalov
9552accaec Introduce BinaryVersion.isCompatible()
To decrease the chance to mix up the receiver and the first argument when
checking version compatibility
2016-01-19 18:39:59 +03:00
Alexander Udalov
04d335db15 Move version constants to corresponding BinaryVersion subclasses 2016-01-19 18:39:59 +03:00
Alexander Udalov
2f64680b63 Add several subclasses of BinaryVersion
To simplify comparison of expected vs actual versions in the future
2016-01-19 18:39:59 +03:00
Yan Zhulanow
4cd2ff040d J2K: convert hex Java literal to hex Kotlin literal 2016-01-19 23:29:58 +09:00
Zalim Bashorov
bd9b2f9f06 Restore logging changes when process them using lookups and add assert to avoid getting parent from root FqName 2016-01-19 16:33:44 +03:00
Mikhail Glukhikh
9360bd49a6 Data flow info: correct disjunction of a type with Nothing: Type U Nothing = Type #KT-9578 Fixed 2016-01-19 16:01:10 +03:00
Mikhail Glukhikh
5d3186ac49 DelegatingDataFlowInfo: converted to Kotlin 2016-01-19 16:01:08 +03:00
Mikhail Glukhikh
4cc2450b37 DelegatingDataFlowInfo.java --> DelegatingDataFlowInfo.kt 2016-01-19 16:01:05 +03:00
Valentin Kipyatkov
a1d760fc36 KT-10631 Consider creating a synthetic property even when the setter returns 'this'
#KT-10631 Fixed
2016-01-19 15:57:20 +03:00
Dmitry Petrov
eef68e0a94 J2K: PatternMatchingTypingVisitor.kt: convert to Kotlin and cleanup 2016-01-19 15:02:45 +03:00
Dmitry Petrov
3e2d9a6a27 J2K: PatternMatchingTypingVisitor.java -> PatternMatchingTypingVisitor.kt 2016-01-19 14:24:09 +03:00
Pavel V. Talanov
ce42d47383 Resolve lambda argument types when failing to resolve call 2016-01-19 14:14:33 +03:00
Nikolay Krasko
adbf098166 Store information is file was compiled with Kotlin in attributes (KT-10312)
- Add boolean attribute for all binary files in the project
- Stop using JarUserDataManager for full file indexing
- Store full header of files compiled with Kotlin in file UserData
2016-01-19 13:33:51 +03:00
Nikolay Krasko
5431c6937f Allow to configure print accuracy and fetch temprory results from profiler 2016-01-19 13:33:51 +03:00
Nikolay Krasko
61bd0e7265 Refactoring: Remove unused class 2016-01-19 13:33:51 +03:00
Nikolay Krasko
803bd55f70 Minor: refactoring 2016-01-19 13:33:51 +03:00
Dmitry Jemerov
f85c4dd458 cleanup KotlinProjectViewProvider 2016-01-19 11:04:10 +01:00
Dmitry Jemerov
52acd34a61 fix Maven build 2016-01-19 10:54:04 +01:00
Dmitry Jemerov
b60621c428 tests fixed 2016-01-19 10:53:53 +01:00
Dmitry Jemerov
39c6e3712b add test to check that "Only the Kotlin standard library is allowed to use the 'kotlin' package" is reported in JPS builds 2016-01-19 10:53:49 +01:00
Dmitry Jemerov
39ad2b2378 return correct exit code when script execution fails 2016-01-19 10:53:48 +01:00
Dmitry Jemerov
f3faa10fcc forbid compiling code in packages with names starting with 'kotlin' unless the -Xallow-kotlin-package command line option is specified 2016-01-19 10:53:47 +01:00
Dmitry Jemerov
6b354748ba KotlinToJVMBytecodeCompiler: cleanup after J2K 2016-01-19 10:53:45 +01:00
Dmitry Jemerov
bccd64de19 KotlinToJVMBytecodeCompiler: J2K 2016-01-19 10:53:44 +01:00
Dmitry Jemerov
0d88595baf KotlinToJVMBytecodeCompiler: rename to .kt 2016-01-19 10:53:43 +01:00
Dmitry Jemerov
e4903c1a47 proguard: don't exclude native libraries when repackaging jna.jar (IDEA core code now accesses FileSystemUtil which uses JNA) 2016-01-19 10:51:21 +01:00
Mikhail Glukhikh
7f2624c9a1 Handling of annotations on delegated property in descriptor loader & stub builder 2016-01-19 11:38:58 +03:00
Mikhail Glukhikh
e4f7446bec JvmSynthetic forbidden for delegated properties (and searched for different use-site targets) 2016-01-19 11:38:53 +03:00
Mikhail Glukhikh
a2bba7c8f1 JvmField forbidden for delegated properties 2016-01-19 11:38:49 +03:00
Mikhail Glukhikh
ec909d0775 Volatile forbidden for delegated properties (and checked for other use-site targets) 2016-01-19 11:38:45 +03:00
Mikhail Glukhikh
b78d481bb1 delegate use-site targeted annotations: parser, front-end, codegen with some tests #KT-10502 Fixed 2016-01-19 11:38:41 +03:00
Mikhail Glukhikh
474076a550 Annotation use-site refactoring: field, property, getter 2016-01-19 11:38:36 +03:00
Denis Zharkov
e9693e987f Humanize type mismatch diagnostic caused by type projections
#KT-10581 Fixed
2016-01-19 11:05:41 +03:00
Dmitry Petrov
0c52960d7a KT-10706: do not report IMPLICIT_CAST_TO_ANY on expressions of type Nothing 2016-01-19 10:50:09 +03:00
Zalim Bashorov
5889ba4293 Minor: extract most of JPS (old IC) specific part from IncrementalCacheImpl 2016-01-18 22:13:29 +03:00
Dmitry Jemerov
f1b5e72b99 always add mavenCentral() as buildscript repository dependency (KT-10342)
#KT-10342 Fixed
2016-01-18 20:09:30 +01:00
Ilya Gorbunov
14f17e76e1 Deprecate dropWhileTo and takeWhileTo on CharSequences. 2016-01-18 21:46:33 +03:00
Ilya Gorbunov
5bbce7a1de Deprecate 'comparator { ... }' in favor of Comparator SAM-constructor. Provide SAM-like constructor for JS. 2016-01-18 21:46:32 +03:00
Ilya Gorbunov
67ef790abc Move comparison related functions to kotlin.comparisons, update imports in stdlib. 2016-01-18 21:46:31 +03:00
Ilya Gorbunov
c250921643 Deprecate getOrImplicitDefault to make it private later. 2016-01-18 21:46:30 +03:00
Ilya Gorbunov
aafd79078f Provide mutableSetOf and mutableMapOf
#KT-9663 Fixed
2016-01-18 21:46:29 +03:00
Ilya Gorbunov
fe8ba4d356 Provide mutableListOf.
Deprecate linkedListOf.
#KT-9663
2016-01-18 21:46:28 +03:00
Dmitry Jemerov
60ca1cbcf3 don't represent Kotlin project view nodes as light classes (KT-10703) 2016-01-18 19:07:51 +01:00
Dmitry Jemerov
8cca34a00e KotlinProjectViewProvider: J2K 2016-01-18 19:00:56 +01:00
Dmitry Jemerov
f4d4ab691b KotlinProjectViewProvider: rename to .kt 2016-01-18 18:58:52 +01:00
Stanislav Erokhin
206fecf872 Possible fix for KT-10603. 2016-01-18 19:45:34 +03:00
Valentin Kipyatkov
4c62304a1d KT-10337 Object marked as unused
#KT-10337 Fixed
2016-01-18 17:40:04 +03:00
Valentin Kipyatkov
4c2a14ff43 KT-9834 Optimizing imports with named import (kinda like static import)
#KT-9834 Fixed
2016-01-18 17:40:03 +03:00
Valentin Kipyatkov
bec16efbd7 Add/remove argument name intentions to work for super class constructor call 2016-01-18 17:40:03 +03:00
Valentin Kipyatkov
c44340a351 Corrections on code review 2016-01-18 15:34:20 +03:00
Valentin Kipyatkov
65f5dd1dd5 Got rid of special methods "applyTo" without editor parameter in intentions 2016-01-18 15:34:20 +03:00
Valentin Kipyatkov
552359ce03 KT-7443 Inspection + intention to replace assert (x != null) with "!!" or elvis
#KT-7443 Fixed
2016-01-18 15:34:20 +03:00
Mikhail Glukhikh
5ad4571ddf 'IMPLICIT_NOTHING_PROPERTY_TYPE' is now an error 2016-01-18 14:04:38 +03:00
Mikhail Glukhikh
380e2dd153 Diagnostic message fixed for 'PRIVATE_SETTER_FOR_OPEN_PROPERTY' 2016-01-18 14:04:34 +03:00
Mikhail Glukhikh
1c789f6862 minor 2016-01-18 14:04:25 +03:00
Dmitry Petrov
a073f29006 KT-10460: use unsubstituted descriptors
while comparing overloaded generic functions  for specificity.
2016-01-18 12:25:04 +03:00
Alexander Udalov
d21ce08548 Minor, remove pointless environment creation in LoadJava test 2016-01-17 22:55:55 +03:00
Alexander Udalov
f88abc5b1f Minor, cleanup InlineTestUtil.kt 2016-01-17 20:00:13 +03:00
Alexander Udalov
d50a531934 Slightly improve bytecode version check during inline
Add class name to the exception message and provide a system property to
disable the check
2016-01-17 16:28:22 +03:00
Alexander Udalov
cf7f2b762f Minor, refactor and simplify RuntimePackagePartProvider
Lazy was unnecessary because we effectively were immediately evaluating it
after creation anyway
2016-01-17 16:28:22 +03:00
Alexander Udalov
0f2befd327 Minor, fix typos in GenerateProtoBufCompare.kt 2016-01-17 16:28:22 +03:00
Alexander Udalov
f6b5c31e39 build.xml: build kotlin-test along with rest of runtime JARs 2016-01-17 16:28:22 +03:00
Alexander Udalov
8c3661c01c build.xml: add option to skip jarjar of reflect 2016-01-17 16:28:22 +03:00
Alexander Udalov
078a53e6a0 Minor, add regression test for KT-10444
#KT-10444 Obsolete
2016-01-17 16:28:22 +03:00
Alexander Udalov
4a31ad0d53 Make PropertyMetadata internal and deprecated with error
To make them inaccessible from Kotlin sources and drop them later. They're
still needed in runtime because Kotlin tests run old IDEA code (which depends
on PropertyMetadata) with our own runtime
2016-01-17 16:28:22 +03:00
Alexander Udalov
d1f2255d38 Extract JS-related LibraryUtils utilities to JsLibraryUtils 2016-01-17 16:28:22 +03:00
Alexander Udalov
f9085327e7 Minor, export kotlin-reflect in 'util'
To allow many modules which depend on 'util' not depend explicitly on
kotlin-reflect
2016-01-17 16:28:22 +03:00
Ilya Gorbunov
57dcbe0aea Cleanup in libraries and tools: use property access syntax. 2016-01-17 15:52:14 +03:00
Ilya Gorbunov
19a4f65fd1 Cleanup in libraries 2016-01-17 15:52:12 +03:00
Ilya Gorbunov
92c2d17910 Cleanup leftovers in compiler and IDE 2016-01-17 15:52:11 +03:00
Ilya Gorbunov
3d5e415c87 Annotate Iterable.forEach and Map.forEach with HidesMembers.
#KT-10538 Fixed
#KT-10479 Fixed
2016-01-16 15:33:12 +03:00
Stanislav Erokhin
133155f4cc Minor. Temporary import forEach as forEachStdLib to avoid problem with introducing HidesMembers annotation 2016-01-16 11:30:38 +03:00
Ilya Gorbunov
56ddd496c5 Hide listFiles as it's no more preferred by overload resolution over synthetic SAM invocations.
#KT-10652 Fixed
2016-01-15 23:53:44 +03:00
Stanislav Erokhin
b185316a6e Create new HidesMembers annotation 2016-01-15 23:32:34 +03:00
Dmitry Jemerov
0c995d0ae1 Merge pull request #808 from mcgee/KT-10196
KT-10196: Suggest to replace 'substring' calls by take/drop/dropLast calls when possible
2016-01-15 19:52:35 +01:00
Dmitry Jemerov
63dd0fc4ae streamlined plugin update logic 2016-01-15 19:18:26 +01:00
Dmitry Jemerov
765d58b8eb plugin autoupdate fixed: always provide plugin descriptor with new version number to plugin downloader 2016-01-15 19:18:26 +01:00
Michael Bogdanov
9cbde911ce Revert of 'Minor. workaround for KT-10679 Wrong outer after inline.' 2016-01-15 18:24:34 +03:00
Michael Bogdanov
7eec1d8e1d Skip inline lambdas in 'InlineCallSite' parameter calculation; Fix for KT-10679: Wrong outer after inline
#KT-10679 Fixed
2016-01-15 18:24:33 +03:00
Pavel V. Talanov
abf4a5cf43 Show kotlin builtIn classes in "go to symbol"
#KT-10474 Fixed
2016-01-15 18:04:59 +03:00
Pavel V. Talanov
af1e83422e Move KotlinGotoClassContributor and KotlinGotoSymbolContributor to a single Kotlin file (j2k on the fly)
Move the file to "goto" package
2016-01-15 18:04:58 +03:00
Pavel V. Talanov
db07d783a2 Member is considered deprecated if it overrides only deprecated members
Property accessor is considered deprecated when the property is
Provide IDE inspection to strikeout members overriding deprecated members (like in java)
2016-01-15 17:53:23 +03:00
Michael Bogdanov
9b3d97470f Prohibit super calls with default parameters 2016-01-15 17:50:48 +03:00
Mikhail Glukhikh
c48c3fc8ed Cleanup: DataFlowAnalyzer, ignore MethodMayBeStatic for SmartCastManager 2016-01-15 17:22:57 +03:00
Mikhail Glukhikh
6157ebe3b8 Separate UNSAFE_IMPLICIT_INVOKE_CALL diagnostics introduced (see KT-8252) 2016-01-15 17:22:54 +03:00
Mikhail Glukhikh
fe11b5a473 Minor 2016-01-15 17:22:50 +03:00
Mikhail Glukhikh
1049d4c53a Nullable function-like property call is prohibited now #KT-8252 Fixed 2016-01-15 17:22:46 +03:00
Mikhail Glukhikh
0f80df7b2e initialDataFlowInfoForArguments introduced in CallExpressionResolver methods #KT-10175 Fixed 2016-01-15 17:22:42 +03:00
Mikhail Glukhikh
16d97ab72c Get rid of MutableDataFlorInfoForArguments.setInitialDataFlowInfo 2016-01-15 17:22:38 +03:00
Mikhail Glukhikh
5ceb973ee9 Minor refactoring of getQualifiedExpressionTypeInfo 2016-01-15 17:22:35 +03:00
Alexander Udalov
bb68aacee4 Minor refactoring in TowerResolver 2016-01-15 17:15:00 +03:00
NataliaUkhorskaya
b73ce68dbd Debugger: quote package fqName properly. Fix muted tests 2016-01-15 15:57:35 +03:00
NataliaUkhorskaya
d4fcb59965 Gradle plugin: fix compatibility with android-gradle plugin 2.0.0-alpha5
#KT-10676 Fixed
2016-01-15 15:56:47 +03:00
Stanislav Erokhin
8f441a020e Minor. workaround for KT-10679 Wrong outer after inline. 2016-01-15 14:44:24 +03:00
Stanislav Erokhin
3a9ecf0bce Change resolution priority about implicit receivers and synthesized member-like descriptors.
Change resolution to consider extensions to implicit receiver before members of another implicit receiver.
Make synthesized member-like extensions resolve right after the members.

#KT-10510 Fixed
#KT-10219 Fixed
2016-01-15 13:11:38 +03:00
Stanislav Erokhin
dee040a5b5 Minor. Extract tower data creation to separate function. 2016-01-15 13:11:37 +03:00
Stanislav Erokhin
dbd6982b3a Move levels to TowerResolver 2016-01-15 13:11:36 +03:00
Denis Zharkov
a2f8ad1396 Minor. Extract constant FQ names 2016-01-15 09:46:30 +03:00
Denis Zharkov
be2f857670 Introduce inline-only functions
They have private visibility in bytecode
2016-01-15 09:46:30 +03:00
Anton Sukhonosenko
b2e98e9353 Suggest to replace 'substring' calls by take/drop/dropLast calls when possible
Code review fixes
#KT-10196 Fixed
2016-01-14 22:40:50 +03:00
Valentin Kipyatkov
15930a42b8 Fixed containingDeclaration for descriptors inside init-blocks for the case of no primary constructor
KT-10226 Wrong Imports optimization ("Unresolved reference" is being added)

 #KT-10226 Fixed
2016-01-14 21:53:41 +03:00
Denis Zharkov
f4613b8db1 Support foreign nullability annotations
#KT-10418 Fixed
 #KT-10594 Fixed
2016-01-14 19:24:10 +03:00
Denis Zharkov
fd8a718797 Get rid of duplicating annotations FQ names usages
E.g. JETBRAINS_NOT_NULL_ANNOTATION were used both in NULLABLE_ANNOTATIONS
and for ANNOTATIONS_COPIED_TO_TYPES
2016-01-14 19:24:10 +03:00
Denis Zharkov
01fd3905be Minor. Fix typo in package name: typeEnhacement -> typeEnhancement 2016-01-14 19:24:10 +03:00
Valentin Kipyatkov
7c6a33a36c KT-10664 No code completion after variable initialized with elvis
#KT-10664 Fixed
2016-01-14 19:23:01 +03:00
Valentin Kipyatkov
b41f2dcda3 KT-10655 No "in" in code completion popup after "!"
#KT-10655 Fixed
2016-01-14 19:23:01 +03:00
Valentin Kipyatkov
2f1108421e Added container information when needed 2016-01-14 19:23:01 +03:00
Denis Zharkov
23d2b87a52 Ignore redundant projections for declaration-site variance 2016-01-14 19:20:00 +03:00
Pavel V. Talanov
06d0a7c17c Avoid throwing on trying to obtain module info by some unexpected light element 2016-01-14 18:35:05 +03:00
Ilya Gorbunov
7ddac1945e Unify functional parameter name for 'let', 'run', 'with', 'apply' scope function with 'use' and 'synchronize'. 2016-01-14 18:31:57 +03:00
Ilya Gorbunov
4eb3cff129 Unify functional parameter name for 'forEachLine', 'forEachBlock', 'repeat' methods with 'forEach' 2016-01-14 18:31:56 +03:00
Ilya Gorbunov
c9ddea6d03 Breaking: File.(buffered)reader/writer now returns less specific InputStreamReader/OutputStreamReader and use UTF-8 encoding by default, allowing to specify different encoding with optional parameter.
File.printWriter supports specifying Charset and uses UTF-8 by default.
#KT-10454 Fixed
2016-01-14 18:31:55 +03:00
Ilya Gorbunov
a64c1ff0f4 Rename defaultBufferSize to DEFAULT_BUFFER_SIZE. 2016-01-14 18:31:43 +03:00
Ilya Gorbunov
d64882e19b File.useLines and Reader.readLines. 2016-01-14 18:30:45 +03:00
Ilya Gorbunov
ddcafdd9b3 J2K: Avoid to convert to deprecated String methods, namely toByteArray. 2016-01-14 18:30:44 +03:00
Ilya Gorbunov
ac15807ba4 Deprecate functions taking charset name as string. 2016-01-14 18:30:42 +03:00
Ilya Gorbunov
68971e2162 Remove redundant JvmName annotations for Array.copyOf, copyOfRange 2016-01-14 18:30:41 +03:00
Ilya Gorbunov
b99e1111f6 Do not use out projection for Array where appropriate. 2016-01-14 18:30:40 +03:00
Ilya Gorbunov
eb5b5331fb Minor: reorder invariant arrays of objects in generated code 2016-01-14 18:30:39 +03:00
Ilya Gorbunov
362e463b26 Preserve type projection for Array.requireNoNulls.
#KT-10039 Fixed
2016-01-14 18:30:37 +03:00
Ilya Gorbunov
90a33fb19c Make return type more specific for File.inputStream and File.outputStream, for String.byteInputStream 2016-01-14 18:30:20 +03:00
Ilya Gorbunov
ea3a2eefe7 File.deleteRecursively returns true even if path specified by File does not exist.
False is returned only in case of incomplete deletion.
Distinguish situations when file was not deleted because it's vanished after listing and because of some other error.
2016-01-14 18:14:12 +03:00
Ilya Gorbunov
5e6489f1a2 Minor: refactor file utils test not to use 'assert' to make test assertions. Use assertTrue, assertFalse, assertEquals, assertFailsWith instead. 2016-01-14 18:14:11 +03:00
Ilya Gorbunov
3ee9c2b9d8 Introduce exitProcess(status) returning Nothing.
#KT-10441 Fixed
2016-01-14 18:14:10 +03:00
Valentin Kipyatkov
5a079defc7 "Rename on import" hides importing of the same symbol by other imports with the original name 2016-01-14 17:05:28 +03:00
Valentin Kipyatkov
47041885ca Do not use incorrect import 2016-01-14 17:05:13 +03:00
Valentin Kipyatkov
866f3f189f Minor 2016-01-14 17:05:13 +03:00
Valentin Kipyatkov
89843685c2 Renamed class 2016-01-14 17:05:13 +03:00
Dmitry Jemerov
af66af07a0 adapt move refactoring to new behavior of KtFile.getClasses() 2016-01-14 14:20:41 +01:00
Dmitry Jemerov
1bc4420734 implement KtFile.getClasses() in plugin (required to have coverage work, among other things) 2016-01-14 14:20:35 +01:00
Michael Bogdanov
607f32615f Type uncapturing 2016-01-14 15:32:50 +03:00
Michael Bogdanov
2228cb6a9a Rollback parameter descriptor propagation to CapturedTypeConstructor 2016-01-14 15:32:50 +03:00
Alexey Sedunov
6e5a2208c0 Misc: Partially revert cleanup (44138f499e) as accessing synthetic properties leads to IllegalAccessError
#KT-10653 Fixed
2016-01-14 13:55:11 +03:00
Alexey Sedunov
1d9bafe196 PSI Unifier: Fix matching of this-expressions
#KT-8293 Fixed
2016-01-14 13:55:10 +03:00
Alexey Sedunov
ed8674c0f9 Safe Delete: Skip usages inside of overriding to-be-deleted declarations
#KT-7253 Fixed
2016-01-14 13:55:09 +03:00
Alexey Sedunov
59bacd932a Minor: Add test for KT-8295 2016-01-14 13:55:08 +03:00
Alexey Sedunov
e7de6400e5 Create from Usage: Make 'Create annotation' low-priority action
#KT-9116 Fixed
2016-01-14 13:55:07 +03:00
Alexey Sedunov
70a851fe44 Move/Change Package Directive Intention: Skip callee references to inner class constructors
#KT-10554 Fixed
2016-01-14 13:55:05 +03:00
Alexey Sedunov
73233b2e90 Change Variable Mutability Quick-Fix: Forbid on non-primary-constructor parameters
#KT-10601 Fixed
2016-01-14 13:55:03 +03:00
Alexey Sedunov
5a108c5cde Generate equals/hashCode Action: Use Arrays.equals/Arrays.hashCode for properties of array types
#KT-10514 Fixed
2016-01-14 13:55:02 +03:00
Natalia Ukhorskaya
7b67eed3dd Qoute package name if needed
#KT-10649 Fixed
2016-01-14 13:42:19 +03:00
Natalia Ukhorskaya
128440b16f Use intention to simplify for in j2k
#KT-7157 Fixed
2016-01-14 13:41:54 +03:00
Natalia Ukhorskaya
ea3ba6f534 Intention to simplify for using destructing declaration 2016-01-14 13:41:45 +03:00
Natalia Ukhorskaya
5667a92472 Debugger: add breakpoint variant for line with lambda in init block
#KT-KT-1061 Fixed
2016-01-14 13:39:01 +03:00
Natalia Ukhorskaya
2b1d60397d Object to lambda intention is inapplicable when reference to this is used
#KT-10202 In Progress
2016-01-14 13:39:00 +03:00
Natalia Ukhorskaya
41e7c3d70b Debugger: generate package parts only for debug file
#KT-10126 Fixed
2016-01-14 13:38:59 +03:00
Mikhail Zarechenskiy
29af6586f2 Get rid of ContainerUtil usages in ide-common 2016-01-14 12:06:52 +03:00
Mikhail Zarechenskiy
dd11fa9320 Move logic related to expression occurrence searching to ide-common 2016-01-14 12:06:50 +03:00
Mikhail Zarechenskiy
bd57096b66 Move AnalyzerUtil to ide-common 2016-01-14 12:06:49 +03:00
Mikhail Zarechenskiy
bde556fc10 Move QuickFixUtil to ide-common 2016-01-14 12:06:47 +03:00
Mikhail Zarechenskiy
85b4f5d593 Move part of resolutionApi to ide-common 2016-01-14 12:06:45 +03:00
Mikhail Zarechenskiy
1523586717 Extract interface out from KotlinCacheService to provide separate implementation in Eclipse plugin 2016-01-14 12:06:44 +03:00
Dmitry Petrov
609ffc10a9 KT-10322, KT-10646, KT-10647:
- update diagnostic to (supposedly) more useful
- also report IMPLICIT_CAST_TO_ANY if expected type is DONT_CARE
 (effectively "no expected type" for lambda expression).
2016-01-14 10:08:20 +03:00
Dmitry Petrov
f54de08073 KT-10646, KT-10647:
Move IMPLICIT_CAST_TO_UNIT_OR_ANY to ControlFlowInformationProvider
(where checks for 'if' and 'when' used as expressions are performed).
2016-01-14 10:08:20 +03:00
Ilya Gorbunov
f91c01919b kotlin.test: 'fail' returns Nothing, 'assertFails' returns Throwable (not nullable).
Js tests now fail at the first failed assertion.
#KT-10289 Fixed
#KT-10369 Fixed
2016-01-14 06:03:40 +03:00
Dmitry Jemerov
8fdd8179b9 Workaround for KtEnumEntrySuperclassReferenceExpression which implements KtSimpleNameExpression in a weird way and can break Move refactoring (EA-75268 - assert: TextRange.<init>) 2016-01-13 20:28:39 +01:00
Zalim Bashorov
c1dbfee2a9 Don't fail when create IncrementalCacheImpl for target without output directory, and fail when try to use this info instead.
#KT-10505 Fixed
2016-01-13 21:37:36 +03:00
Zalim Bashorov
d9af9472f0 Don't fail when output directory not specified for "friend" build target
#KT-10505 Fixed
2016-01-13 21:09:06 +03:00
Zalim Bashorov
3df091e7cf Report error when output directory not specified for build target
#KT-10505 Fixed
2016-01-13 21:09:05 +03:00
Mikhail Glukhikh
6b09c5dfae Minor when missing cases renderer refactoring 2016-01-13 19:54:54 +03:00
Denis Zharkov
b8c79e689b Make all nested inlined closure classes public
#KT-6987 Fixed
2016-01-13 19:41:59 +03:00
Anton Sukhonosenko
ba0efda2f0 Suggest to replace 'substring' calls by take/drop/dropLast calls when possible
#KT-10196 Fixed
2016-01-13 19:05:50 +03:00
Alexey Tsvetkov
328169cd2e Minor: fix test data as exhaustive when error message was changed 2016-01-13 18:47:05 +03:00
Mikhail Glukhikh
e54471abbc Formatting rule: new line before when entry 2016-01-13 18:04:24 +03:00
Mikhail Glukhikh
b7790177e0 KotlinParserDefinition.kt: converted to Kotlin 2016-01-13 18:04:15 +03:00
Mikhail Glukhikh
6ae7309c54 KotlinParserDefinition.java --> KotlinParserDefinition.kt 2016-01-13 17:54:53 +03:00
Alexey Sedunov
2e18ad7160 Remove Right Part of Binary Expression Quick-Fix: Split to separate quick fixes for cast- and elvis-expressions 2016-01-13 17:47:23 +03:00
Alexey Sedunov
6be44f59da Remove Function Body Quick-Fix: Convert to Kotlin & refactor. Add tests with comments 2016-01-13 17:47:22 +03:00
Alexey Sedunov
de8a3c17a2 Remove Function Body Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:21 +03:00
Alexey Sedunov
ed679fef9d Remove Element Quick-Fixes: Convert to Kotlin & refactor 2016-01-13 17:47:20 +03:00
Alexey Sedunov
28a0e8ebe6 Remove Element Quick-Fixes: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:19 +03:00
Alexey Sedunov
9a8aef6b6d Remove Right Part of Binary Expression Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:18 +03:00
Alexey Sedunov
0a4a486048 Remove Right Part of Binary Expression Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:17 +03:00
Alexey Sedunov
cac479102a Remove Supertype Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:16 +03:00
Alexey Sedunov
2fcce20c73 Remove Supertype Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:15 +03:00
Alexey Sedunov
0fea86c10a Remove 'val'/'var' from Parameter Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:14 +03:00
Alexey Sedunov
f2a6805f8b Remove 'val'/'var' from Parameter Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:13 +03:00
Alexey Sedunov
474ab531ea Rename Parameter to Match Overridden Method Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:12 +03:00
Alexey Sedunov
c3b3ad52a9 Rename Parameter to Match Overridden Method Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:11 +03:00
Alexey Sedunov
012a36d97c Remove Nullable Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:10 +03:00
Alexey Sedunov
f1c38f5f16 Remove Nullable Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:09 +03:00
Alexey Sedunov
111a670d66 Move 'else' Branch in 'when' Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:08 +03:00
Alexey Sedunov
212504bbd4 Move 'else' Branch in 'when' Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:07 +03:00
Alexey Sedunov
b8a8f1638f Change Visibility Modifier Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:06 +03:00
Alexey Sedunov
1e77caedbc Change Visibility Modifier Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:05 +03:00
Alexey Sedunov
c44d0ed619 Add 'override' to equals/hashCode/toString Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:04 +03:00
Alexey Sedunov
96e6319ee1 Add 'override' to equals/hashCode/toString Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:03 +03:00
Alexey Sedunov
64eeaf8b9d Make Class an Annotation Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:02 +03:00
Alexey Sedunov
04b8f16576 Make Class an Annotation Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:47:01 +03:00
Alexey Sedunov
6c44aa4d76 Change to Function Invocation Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:47:00 +03:00
Alexey Sedunov
584d3ad374 Change to Function Invocation Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:59 +03:00
Alexey Sedunov
a7a5619523 Change to Star-Projection Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:46:58 +03:00
Alexey Sedunov
625967fc15 Change to Star-Projection Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:57 +03:00
Alexey Sedunov
3153196343 Change Type Quick-Fix: Convert to Kotlin & refactor. Wrap in delegating quick fix to decrease memory footprint 2016-01-13 17:46:56 +03:00
Alexey Sedunov
11ef780adf Change Type Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:55 +03:00
Alexey Sedunov
05506a24d7 Add Star Projections Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:46:54 +03:00
Alexey Sedunov
2e25d2d885 Add Star Projections Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:53 +03:00
Alexey Sedunov
a696efc3ef Change Accessor Type Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:46:52 +03:00
Alexey Sedunov
54b149ce71 Change Accessor Type Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:51 +03:00
Alexey Sedunov
4e54cee693 Cast Expression Quick-Fix: Convert to Kotlin & refactor. Wrap in delegating quick fix to decrease memory footprint 2016-01-13 17:46:49 +03:00
Alexey Sedunov
63ab9df275 Cast Expression Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:48 +03:00
Alexey Sedunov
7cb5bc8902 Add Else Branch to When Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:46:47 +03:00
Alexey Sedunov
c0ca4e6b79 Add Else Branch to When Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:46 +03:00
Alexey Sedunov
f8be2f23a1 Add Function Body Quick-Fix: Convert to Kotlin & refactor 2016-01-13 17:46:45 +03:00
Alexey Sedunov
50497e8013 Add Function Body Quick-Fix: Convert to Kotlin (rename to .kt) 2016-01-13 17:46:43 +03:00
Alexey Sedunov
8264cef004 Quick Fixes: Pass original element to KotlinIntentionActionFactoryWithDelegate.createFix() 2016-01-13 17:46:42 +03:00
Michael Bogdanov
66ab1c484c StackOverflow fix on type remapping 2016-01-13 16:57:36 +03:00
Alexey Tsvetkov
94cea25e2e Recompile all sealed class usages when new derived class is added 2016-01-13 15:46:54 +03:00
Alexey Tsvetkov
0cf2928761 Recompile all enum usages when new entry is added 2016-01-13 15:46:54 +03:00
Alexey Tsvetkov
e7f8d7103f Recompile all class and member usages when flag and member are changed 2016-01-13 15:46:53 +03:00
Alexander Udalov
b0627b4ce6 Minor, add system property to suppress color output in CLI 2016-01-13 14:24:42 +03:00
Mikhail Glukhikh
c3cce53aa2 Quick fix "add when remaining branches" refactoring + enum / sealed generated name w/o package name 2016-01-13 12:32:14 +03:00
Valentin Kipyatkov
0a3631db6a Fixed KT-10602 Incorrect completion for class name
#KT-10602 Fixed
2016-01-12 22:09:12 +03:00
Nikolay Krasko
12b9002c0e Remove assert that isn't valid in UpSource (UP-5742) 2016-01-12 21:40:11 +03:00
Dmitry Jemerov
7390e0ac66 editor is nullable in SelfTargetingIntention.applyTo() 2016-01-12 19:23:51 +01:00
Pavel V. Talanov
9bfa90dc0e Analyze local variable declarations in expression position
Fixes exception on invalid code "val c = 1 < val Int.f: Int = 3"
2016-01-12 19:31:16 +03:00
Pavel V. Talanov
060864f7af Minor: prettify code after autoconversion 2016-01-12 16:47:38 +03:00
Pavel V. Talanov
94ce1d1193 Refactor: extract type checking code for local variables to a separate component, extract code that creates descriptors for local variable out of DescriptorResolver 2016-01-12 16:47:31 +03:00
Pavel V. Talanov
9fea22885e AnnotationUtil: Do not throw on ErrorValue constant 2016-01-12 16:08:59 +03:00
Michael Bogdanov
657b9ff808 Write enclosing method info for transformed objects 2016-01-12 15:51:57 +03:00
Michael Bogdanov
8ab1190082 Don't try remap type parameter of inline lambda parent context 2016-01-12 15:51:57 +03:00
Michael Bogdanov
fee6d4f282 Type parameters mapping
#KT-10429 Fixed
2016-01-12 15:51:56 +03:00
Michael Bogdanov
5cdf170511 TypeRemapper.java -> TypeRemapper.kt 2016-01-12 15:51:56 +03:00
Michael Bogdanov
cb41f1cc2a Signature remapping moved to RemappingSignatureAdapter inside TypeRemapper 2016-01-12 15:51:55 +03:00
Michael Bogdanov
dd336a5581 ReifiedTypeParameterMappings renamed to TypeParameterMappings, add isReified property 2016-01-12 15:51:55 +03:00
Michael Bogdanov
833cdb0706 TypeParameterDescriptor propagation to CapturedTypeConstructor 2016-01-12 15:51:54 +03:00
Mikhail Glukhikh
0bcae4e0c0 Build fix: nullable exhaustiveness checker is now only a part of other exhaustiveness checkers 2016-01-12 15:44:55 +03:00
Alexey Tsvetkov
d928ac744e Make withSubtypesOf more efficent 2016-01-12 15:32:48 +03:00
Alexey Tsvetkov
756c78bfcc Append in a more safe way 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
f137910e63 Make doProcessChangesUsingLookups extension again 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
f20b39d02e Use one loop for changes processing 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
d36810ab42 Minor: rename getSubtypeOf->withSubtypes 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
9190029fcc Add tests for class hierarchy incremental recompilation 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
e2794cfa3f Do not write inline calls to cache when experimental incremental compilation is enabled 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
2286268929 Append to class map should use IOUtil.writeUTF 2016-01-12 15:32:47 +03:00
Alexey Tsvetkov
a9fb5647b8 Get caches for targets transitively for exported dependencies 2016-01-12 15:32:46 +03:00
Alexey Tsvetkov
dfc08b8f38 Process changed signatures of classes 2016-01-12 15:32:46 +03:00
Alexey Tsvetkov
ab13b2ddfc Minor: move processChanges 2016-01-12 15:32:46 +03:00
Mikhail Glukhikh
8b6156abd6 Quick fix "Add remaining when branches" with some tests 2016-01-12 14:33:20 +03:00
Mikhail Glukhikh
44b07d8dfa Refactoring: context instead of trace in WhenChecker and around 2016-01-12 14:19:29 +03:00
Mikhail Glukhikh
936fee0afa KT-10295: long enum (sealed) special case 2016-01-12 14:18:36 +03:00
Mikhail Glukhikh
c085eb650f Better diagnostics for non-exhaustive whens, relevant test #KT-10295 Fixed 2016-01-12 14:18:23 +03:00
Mikhail Glukhikh
61c2a88a32 Separate when exhaustiveness checkers with list of missing cases as result 2016-01-12 14:07:08 +03:00
Mikhail Glukhikh
a99b2a6799 J2K: WhenChecker converted to Kotlin 2016-01-12 11:17:09 +03:00
Mikhail Glukhikh
e59fed7d9b J2K: WhenChecker 2016-01-12 11:17:06 +03:00
Dmitry Jemerov
682a61ad26 use PARTIAL_FOR_COMPLETION resolve mode when checking whether reference will resolve to the property, otherwise we're going to miss local variables which shadow the property 2016-01-11 19:05:37 +01:00
Dmitry Jemerov
76c9bbc06d handle setter calls used as expression bodies in "Use property access syntax" intention
#KT-10587 Fixed
2016-01-11 18:53:07 +01:00
Dmitry Jemerov
36488d21da remove empty modifier list after removing visibility modifier 2016-01-11 18:46:04 +01:00
Dmitry Jemerov
d0a4e542af use StubIndex.getElements() with required class specified to diagnose CCE problems when using stub index 2016-01-11 16:29:41 +01:00
Pavel V. Talanov
8d22eafe3f Minor: prettify code 2016-01-11 16:33:20 +03:00
Pavel V. Talanov
41a8ded182 getting rid of ClsFileImpl.setPhysical
patch by Roman Shevchenko
2016-01-11 16:29:19 +03:00
Michael Bogdanov
0274ce4619 Always generate ACC_SUPER flag for all classes; Fix for KT-10260: java.lang.VerifyError in Android 4.x when Instant Run is used
#KT-10260 Fixed
2016-01-11 09:55:56 +03:00
Dmitry Jemerov
b11acdfbea regenerate builtins (don't remove 'public' modifiers until we agree that we don't want them in stdlib) 2016-01-08 16:01:34 +01:00
Dmitry Jemerov
f885459a43 fix compilation after cleanup 2016-01-08 16:01:28 +01:00
Dmitry Jemerov
5d3ba1ad6c remove "public" from generated code template 2016-01-08 16:01:26 +01:00
Dmitry Jemerov
d5903c5374 workaround for KT-10590: ensure that the inherited getProject() method is public, not protected 2016-01-08 16:01:20 +01:00
Dmitry Jemerov
44138f499e plugins: cleanup 'public', property access syntax 2016-01-07 18:15:44 +01:00
Dmitry Jemerov
d6a11b839b js: cleanup 'public', property access syntax 2016-01-07 18:15:19 +01:00
Dmitry Jemerov
33ef7ad024 jps-plugin: cleanup 'public', property access syntax 2016-01-07 18:14:31 +01:00
Dmitry Jemerov
6684dff14b j2k: cleanup 'public', property access syntax 2016-01-07 18:13:10 +01:00
Dmitry Jemerov
43a6e13f4b idea: cleanup 'public', property access syntax 2016-01-07 18:12:36 +01:00
Dmitry Jemerov
4afbf02bdd generators: cleanup 'public', property access syntax 2016-01-07 18:07:13 +01:00
Dmitry Jemerov
951a313331 eval4j: cleanup 'public', property access syntax 2016-01-07 18:03:29 +01:00
Dmitry Jemerov
3870bd04b8 core: cleanup 'public', property access syntax 2016-01-07 18:03:09 +01:00
Dmitry Jemerov
117a0d8b7b compiler: cleanup 'public', property access syntax 2016-01-07 17:57:38 +01:00
Dmitry Jemerov
b72ea1ff07 ant: cleanup 'public', property access syntax 2016-01-07 17:53:32 +01:00
Dmitry Jemerov
e47e9f6763 inspection and code cleanup for redundant visibility modifiers 2016-01-05 13:31:43 +01:00
Dmitry Petrov
b736880787 KT-6646, KT-10482:
when a method (or a property getter) returns Nothing, emit
  ACONST_NULL
  ATHROW
after a call so that class files verifier knows that this is an exit point in a method.
Note that if an inline method returning Nothing throws an exception explicitly
(or via a chain of inline methods), this code will be deleted by DCE.
2015-12-31 11:07:56 +03:00
Nikolay Krasko
ffd1bcf72f Update icons (KT-10516)
#KT-10516 Fixed
2015-12-30 17:26:34 +03:00
Nikolay Krasko
f9a6da05df Add explicit type (local builds othen fail here) 2015-12-30 17:26:06 +03:00
Nikolay Krasko
0518c6f618 Set "No" as default button 2015-12-30 17:19:16 +03:00
Natalia Ukhorskaya
ad9303b97b Support breakpoints in anonymous objects with usages of cross inline argument 2015-12-30 14:49:30 +03:00
Natalia Ukhorskaya
754b02aa3c Fix EA-76946 - IOOBE: LineSet.checkLineIndex: do not try to get line start offset for line out off document 2015-12-30 14:49:29 +03:00
Natalia Ukhorskaya
0a6dbc91ae Fix EA-75128 - KNPE: IdentifierKt.declarationIdentifier 2015-12-30 14:49:29 +03:00
Natalia Ukhorskaya
5c83e2ac5b KotlinSyntheticTypeComponentProvider: catch UnsupportedOperationException
#KT-10526 Fixed
2015-12-30 14:49:28 +03:00
Natalia Ukhorskaya
36d154babf Support breakpoints for inline function with cross inline argument 2015-12-30 14:49:27 +03:00
Natalia Ukhorskaya
c351293394 KotlinPositionManager: drop PositionElement, classNameForPosition now returns collection of names 2015-12-30 14:49:26 +03:00
Natalia Ukhorskaya
e8aef7d29e Minor: move methods from companion object 2015-12-30 14:49:26 +03:00
Natalia Ukhorskaya
3678bda409 InlineUtil: extract method 2015-12-30 14:49:25 +03:00
Michael Bogdanov
1d70b58d17 Fixed test data 2015-12-30 14:42:12 +03:00
Michael Bogdanov
11268331a8 Added '@' for annotation names in diagnostic messages 2015-12-30 12:25:13 +03:00
Dmitry Petrov
74c13906ed Drop "substitute with upper bounds" mode for calls with mapped arguments
(we don't need it since we build constraint system for generic types).
Cleanup tests.
2015-12-30 10:44:01 +03:00
Dmitry Petrov
4b3290dd8c Check specificity relation for generant types of the constraint system.
Otherwise we can't properly chose between 'dynamic' and generic type.
2015-12-30 10:44:00 +03:00
Dmitry Petrov
c97294a066 stdlib fixes:
- 'sequence(initialValue: T?, ...)' should have LowPriorityInOverloadResolution
(otherwise 'sequence({...}, {...})' is ambiguous).
- 'copyOf' and 'copyOfRange' should be defined for 'Array<T>' only
('Array<out T>' version always loses to 'Array<T>', since the second one
is always more specific).
2015-12-30 10:44:00 +03:00
Dmitry Petrov
02daeac41b Use constraint system for comparing for specificity against a generic signature.
Drop "discrimiate generics" mode where it's unneeded.
2015-12-30 10:44:00 +03:00
Alexey Sedunov
aeefdffaab Implement Abstract Member Intention: Support primary constructor parameters
#KT-8427 Fixed
2015-12-30 00:56:34 +03:00
Alexey Sedunov
2b4f03feef Implement Members Quick-Fix: Support primary constructor parameters
#KT-8427 In Progress
2015-12-30 00:56:34 +03:00
Alexey Sedunov
00cc9d4150 Specify Type Explicitly: Filter out types which can't be resolved in the target scope
#KT-10066 Fixed
2015-12-30 00:56:34 +03:00
Alexey Sedunov
21fd894d75 Create From Usage: Place caret at the end of initializer selection
#KT-10120 Fixed
2015-12-30 00:56:34 +03:00
Alexey Sedunov
c391882651 Minor: Fix NPE (EA-76742) 2015-12-30 00:56:34 +03:00
Alexey Sedunov
5b5e7fb9b7 'Change parameter type' Quick-Fix: Use Change Signature API
#KT-9812 Fixed
2015-12-30 00:56:34 +03:00
Alexey Sedunov
9180a99342 Convert to Kotlin: ChangeParameterTypeFix.java 2015-12-30 00:56:34 +03:00
Alexey Sedunov
3af7c7b57a Convert to Kotlin: ChangeParameterTypeFix.java (rename to .kt) 2015-12-30 00:56:34 +03:00
Pavel V. Talanov
004c266433 Minor: fix missed error marker in test data 2015-12-29 18:13:10 +03:00
Ilya Gorbunov
0aef321c73 Cleanup in idea plugin, src and tests 2015-12-29 18:04:24 +03:00
Ilya Gorbunov
145722b20d Cleanup in idea plugin modules, misc 2015-12-29 18:04:23 +03:00
Ilya Gorbunov
865fdd7962 Cleanup in idea plugin modules, idea-core 2015-12-29 18:04:22 +03:00
Ilya Gorbunov
6ffc407158 Cleanup in idea plugin modules, idea-completion 2015-12-29 18:04:21 +03:00
Ilya Gorbunov
be590312f7 Cleanup in idea plugin modules, idea-analysis 2015-12-29 18:04:20 +03:00
Ilya Gorbunov
bce9514739 Cleanup in idea plugin modules, ide-common 2015-12-29 18:04:19 +03:00
Ilya Gorbunov
fcfb063eca Cleanup in modules: j2k, jps, ant and generators. 2015-12-29 18:04:18 +03:00
Ilya Gorbunov
da4b1ae0fb Cleanup in js modules 2015-12-29 18:04:16 +03:00
Ilya Gorbunov
80916d5ed7 Cleanup in compiler modules 2015-12-29 18:04:15 +03:00
Ilya Gorbunov
911adfd04d Cleanup in core modules 2015-12-29 18:04:14 +03:00
Ilya Gorbunov
b71b336a69 Fix fq names of moved facade classes in imports and other code occurrences 2015-12-29 18:04:13 +03:00
Nikolay Krasko
f9944e28b0 Show full library panel. Add warning on attempt to create project without library. 2015-12-29 18:01:15 +03:00
Michael Bogdanov
d54c3f4fc7 Added '@' to annotation names in diagnostic messages 2015-12-29 17:20:16 +03:00
Michael Bogdanov
91f27ba176 Report error on 'JvmStatic' annotation on const or @JvmField property
#KT-10415 Fixed
2015-12-29 17:20:07 +03:00
Michael Bogdanov
ae4ca3b5bb Report JvmStatic diagnostic on primary constructor properties 2015-12-29 16:45:24 +03:00
Michael Bogdanov
bb63bcd520 Removed obsolete tests 2015-12-29 16:45:24 +03:00
Michael Bogdanov
e671d05105 Companion public val annotated with @JvmFIeld or const 2015-12-29 16:45:23 +03:00
Michael Bogdanov
e116cc3206 Private visibility for non-const, non-jvmField class companion property backing field 2015-12-29 16:45:22 +03:00
Michael Bogdanov
85ae0cb78e Restrict companion properties copying to interface by const 2015-12-29 16:45:22 +03:00
Pavel V. Talanov
6f0c2a0260 Project configuration: Add source directories for kotlin builtIns to KotlinRuntime 2015-12-29 15:57:02 +03:00
Pavel V. Talanov
9096a443ea Do not build light classes for local classes when the there is no class descriptor
These cases should be dealt with and this is only a way to degrade gracefully
2015-12-29 15:57:01 +03:00
Pavel V. Talanov
b38fc7b3c1 Parse local interfaces in expression position 2015-12-29 15:57:00 +03:00
Pavel V. Talanov
1c4d4f3e36 Create class descriptors for local classes in illegal positions
Typecheck code in illegal selector position
Fixes exceptions on "val p = A.class" erroneous code
2015-12-29 15:56:44 +03:00
Pavel V. Talanov
06e829936e Fix codegen predictor for properties and property accessors 2015-12-29 12:32:14 +03:00
Pavel V. Talanov
4f5f56e4a5 Add and use KtPropertyAccessor#getProperty() 2015-12-29 12:32:12 +03:00
Denis Zharkov
d511059cfa Unify code generation of as/is operation
They should be the same for common and reified cases
2015-12-28 18:32:15 +03:00
Denis Zharkov
da53d8cbf4 Replace reified operations instanceof/checkcast with is/as
It's more consistent with how they effectively work
2015-12-28 18:31:40 +03:00
Denis Zharkov
87b6374351 Get rid of redundant intrinsic
Also drop 'safe' parameter from TypeIntrinsics.checkcast,
because it's supposed to work as JVM checkcast (i.e. accepting nulls)
2015-12-28 18:31:40 +03:00
Denis Zharkov
39bbd7c795 Rework reified markers format
Use integer operation identifier instead of method name to differentiate
reified operations
2015-12-28 18:31:40 +03:00
Alexander Udalov
890c961383 Fix reflection internal error on enum nested classes query
#KT-10520 Fixed
2015-12-28 16:40:34 +03:00
Denis Zharkov
688a1b6305 Adjust type approximation to broken code and missing dependencies
- Do not run approximation if arguments number is different
- Add nullable Any? as supertype to MissingDependencyErrorClass

The latter is needed because otherwise TypeArgument.isConsistent became false
2015-12-28 11:13:39 +03:00
Denis Zharkov
722a152a74 Fix supertypes calculation for types with projections
Use captured types as replacement for non top-level entries

 #KT-7296 Fixed
2015-12-28 11:13:39 +03:00
Denis Zharkov
397d2ca312 Fix captured approximation for case of flexible types
#KT-9294 Fixed
2015-12-28 11:13:38 +03:00
Denis Zharkov
b6edddbe8b Make project compilable after member scope refinement 2015-12-28 11:13:38 +03:00
Denis Zharkov
ec0ec55ab5 Replace type entries of JsContext<*> with JsContext<JsNode>
It's needed to make method calls (e.g. replaceMe) on it typesafe,
otherwise it's value parameter type is subtype of captured
2015-12-28 11:13:37 +03:00
Denis Zharkov
9773e98d8a Refine type from property setter parameter on assignment
In most cases these types are equals, the only known exception is
var-property contained in projected type member scope (see test data)
2015-12-28 11:13:37 +03:00
Denis Zharkov
e2c02f825f Refine member scope for types with projections
Instead of erasing descriptors with conflicting substitution,
use invariant CapturedType(<projection>) as replacement for type parameter
within default member scope.

After substitution leave such types 'as is' everywhere except return types,
use common approximation for them.

 #KT-9294 In Progress
 #KT-5411 Fixed
 #KT-8647 Fixed

 #KT-9462 Fixed
 #KT-9893 Fixed
 #KT-7581 Fixed
 #KT-7296 In Progress
2015-12-28 11:13:37 +03:00
Denis Zharkov
365ff593f3 Extract and normalize member scope calculation
Basically it's wrong to use original types' member scope
as a worker for SubstitutionScope.
Member scope should always be determined by type constructor's default one
and substitution/arguments

 #KT-10448 Fixed
2015-12-28 07:44:56 +03:00
Denis Zharkov
58caff3411 Minor. Add tests checking not-null assertions
More precisely these tests check cases when expected type
was somehow obtained from captured type (in member scope with projections)
2015-12-28 07:44:56 +03:00
Denis Zharkov
7aaa6422b4 Introduce CustomSubstitutionCapability.substitutionToComposeWith
Mainly it's needed to prevent creation of subsituions composition
everytime we replacing arguments, because it's both unoptimal and wrong

When replace arguments in `A<E, F>` with <String, E> you got `A<String, String>`
as a result, that is unexpected.

But composition is only needed when previous substituion was abnormal
(e.g. RawSubsitution that should actually wrap new arguments), see RawTypes tests
2015-12-28 07:44:55 +03:00
Denis Zharkov
8d0a90a838 Preserve type capabilities of captured type 2015-12-28 07:44:55 +03:00
Denis Zharkov
e7dbcfe21f Minor. Cleanup code 2015-12-28 07:44:54 +03:00
Denis Zharkov
555286849e Minor. Move declaration closer to usages and optimize imports 2015-12-28 07:44:54 +03:00
Denis Zharkov
48b89a5db7 Replace unchecked 'is' on local class with unchecked 'as'
It became unchecked after latest changes (see parent commit)
2015-12-28 07:44:54 +03:00
Denis Zharkov
3fd35636ad Fix type parameter list for local classes
Add captured parameters from enclosing functions

 #KT-9584 Fixed
2015-12-28 07:44:53 +03:00
Denis Zharkov
73b961e885 Clean project code after #KT-3996 fix
No overload resolution ambiguity in smart-casts
2015-12-28 07:44:53 +03:00
Mikhail Glukhikh
0cc09872b6 Implicit exhaustive when annotation / highlighting 2015-12-26 10:46:44 +03:00
Mikhail Glukhikh
7d6ccc40c2 Implicit exhaustive whens now have exception in else branch #KT-8700 Fixed 2015-12-26 10:46:39 +03:00
Mikhail Glukhikh
011a9f23b9 Implicit exhaustive when check for definite variable initialization (KT-8700) 2015-12-26 10:46:35 +03:00
Mikhail Glukhikh
52c3fb03a2 ControlFlowInfo introduced to store variable states, related refactoring 2015-12-26 10:46:30 +03:00
Mikhail Glukhikh
0f3997c6ca InitState / VariableUseState / VariableControlFlowState moved to a separate file 2015-12-26 10:46:25 +03:00
Mikhail Glukhikh
4c4456c808 PseudocodeVariablesData converted to Kotlin 2015-12-26 10:46:20 +03:00
Mikhail Glukhikh
7179b37d95 PseudocodeVariablesData.java --> PseudocodeVariablesData.kt 2015-12-26 10:46:16 +03:00
Mikhail Glukhikh
b93894953d Exhaustive whens without else and 'Nothing' as the result are considered 'implicit exhaustive' 2015-12-26 10:46:11 +03:00
Mikhail Glukhikh
d62d7dd84f Introduced binding context storage for implicit exhaustive when (KT-8700) 2015-12-26 10:46:06 +03:00
Mikhail Glukhikh
b805ce06c2 CFG exhaustive when else instruction for KT-8700 2015-12-26 10:46:01 +03:00
Alexander Udalov
697228eae0 Mark enum entry names as name ids for incremental compilation purposes 2015-12-25 20:16:18 +03:00
Alexander Udalov
3513a64351 Move utilities about companion property fields to JvmAbi
To reuse that logic in reflection
2015-12-25 20:16:18 +03:00
Alexander Udalov
0685f06200 Drop outdated stuff from metadata annotations
Make KotlinLocalClass and KotlinInterfaceDefaultImpls not retained at runtime,
to be maybe deleted in the future
2015-12-25 20:16:18 +03:00
Alexander Udalov
0ecf04dcc5 Drop KotlinDelegatedMethod, simplify related code in codegen 2015-12-25 20:16:18 +03:00
Alexander Udalov
39c10867a0 Drop 'index' JVM binary format extension
Compute the JVM parameer index manually instead
2015-12-25 20:16:18 +03:00
Alexander Udalov
8dc604ac8b Drop compatibility flag, suppressing optimized generation of callable references 2015-12-25 20:16:18 +03:00
Alexander Udalov
64b48f4458 Drop compatibility flag, suppressing optimized generation of delegated property metadata 2015-12-25 20:16:18 +03:00
Alexander Udalov
002dc92d89 Drop old antlib.xml in org/jetbrains/jet/buildtools/ant
Use the new one in org/jetbrains/kotlin/ant instead
2015-12-25 20:16:18 +03:00
Alexander Udalov
dc6a176282 Drop old JVM binary format extensions: static in outer, impl class name 2015-12-25 20:16:18 +03:00
Alexander Udalov
fc74759231 Drop old enum entries from binary format 2015-12-25 20:16:18 +03:00
Alexander Udalov
57b96f38a9 Minor, remove/simplify unnecessary utilities in util.runtime 2015-12-25 20:16:18 +03:00
Alexander Udalov
b4addd0567 Move builtins-related logic from DeserializedPackageFragment to BuiltinsPackageFragment 2015-12-25 20:16:18 +03:00
Alexander Udalov
e7da56baf4 Restructure code in BuiltInsSerializer 2015-12-25 20:16:18 +03:00
Alexander Udalov
ddcdc11099 Write and read built-ins binary version 2015-12-25 20:16:18 +03:00
Alexander Udalov
906d706961 Deserialize builtins from new message 2015-12-25 20:16:18 +03:00
Alexander Udalov
7592f31596 Serialize built-ins to separate file .kotlin_builtins 2015-12-25 20:16:18 +03:00
Alexander Udalov
07a23cab10 Minor, make SerializedResourcePaths an interface 2015-12-25 20:16:18 +03:00
Alexander Udalov
75f046fa81 Drop Throwable#printStackTrace, make it a JVM-specific extension 2015-12-25 20:16:18 +03:00
Stanislav Erokhin
3d44471659 KT-10483 Missing smart cast on variable in variable as function call
#KT-10483 Fixed
2015-12-25 20:13:08 +03:00
Alexey Sedunov
4de26bed93 Minor: Add test for now-obsolete KT-8035 "Extended class is not open" quickfix fails on nested classes " 2015-12-25 18:51:03 +03:00
Alexey Sedunov
c90d283ff5 Quick Fixes: Implement 'Add val/var to primary constructor parameter' quick-fix for data classes
#KT-4038 Fixed
2015-12-25 18:50:59 +03:00
Alexey Sedunov
6978d842fb Intentions: Implement 'Add val/var to primary constructor parameter' intention
#KT-4038 In Progress
2015-12-25 18:50:55 +03:00
Alexey Sedunov
5dcf531048 Formatter: Leave single space between val/var and value parameter 2015-12-25 18:50:52 +03:00
Alexey Sedunov
2895e2e86f Change Signature: Process implicit usages of data class 'componentN' functions
#KT-9393 Fixed
2015-12-25 18:50:48 +03:00
Alexey Sedunov
4fba251fba Intentions: 'Implement abstract member' (Kotlin -> Java)
#KT-8467 Fixed
2015-12-25 18:50:41 +03:00
Alexey Sedunov
03641ffbee Intentions: 'Implement abstract member' (Kotlin -> Kotlin)
#KT-8467 In Progress
2015-12-25 18:50:37 +03:00
Alexey Sedunov
123b813073 'Replace with infix call' Intention: Disable on calls without explicit receiver
#KT-6332 Fixed
2015-12-25 18:50:34 +03:00
Alexey Sedunov
ae636a0d32 Iterate Intention: Add support of destructuring declarations 2015-12-25 18:50:30 +03:00
Alexey Sedunov
1d3054e7a6 Iterate Intention: Filter out functions without 'operator' modifier 2015-12-25 18:50:27 +03:00
Alexey Sedunov
1c74bab1cc Iterate Intention: Fix detection of extension iterators
#KT-8616 Fixed
2015-12-25 18:50:23 +03:00
Alexey Sedunov
ee9389d089 Create from Usage: Strip first parameter of extension function when expected type is non-extension 2015-12-25 18:50:19 +03:00
Alexey Sedunov
da2806acde Minor: Fix IllegalAccessError on referencing synthetic property 2015-12-25 12:59:15 +03:00
Michael Bogdanov
f870e365fa Removed accessors for const properties 2015-12-25 11:28:10 +03:00
Michael Bogdanov
b4db23a7b3 Removed 'INSTANCE' field from companions 2015-12-24 13:59:45 +03:00
Michael Bogdanov
2e73559f33 Removed 'INSTANCE$' field generation 2015-12-24 13:59:44 +03:00
Michael Bogdanov
aeb6486473 Deprecated 'INSTANCE$' replaced with 'INSTANCE' 2015-12-24 13:59:43 +03:00
Denis Zharkov
80fd9e3cbb Fix wrong contract assumption
Currently SamAdapterOverridabilityCondition can be called
even for incompatible descriptors

 #KT-10486 Fixed
2015-12-24 12:25:31 +03:00
Ilya Gorbunov
f9ba35af64 Place Char constants into builtin Char companion object. 2015-12-24 06:18:51 +03:00
Ilya Gorbunov
de11ed4fc6 Primitive Companion objects do not longer implement IntegerConstants and FloatingPointConstants. All declarations moved inside companions.
IntegerConstants and FloatingPointConstants are dropped.
#KT-8897 Fixed
2015-12-24 06:17:03 +03:00
Mikhail Glukhikh
fc4250b02b EA-75872 / KT-10473 fix: both JVM- and JS-diagnostic factories are now used as extensions 2015-12-23 18:33:50 +03:00
Mikhail Glukhikh
99a32b93fb Implemented missed checks for local functions #KT-10449 Fixed
Relevant code/test fixes
2015-12-23 18:22:32 +03:00
Mikhail Glukhikh
15746cbf56 Implicit callable type check refactoring, additional check for property with explicit Nothing type 2015-12-23 18:04:25 +03:00
Mikhail Glukhikh
6b8b39a7bd Intersection types are no more allowed in signatures #KT-10244 Fixed 2015-12-23 18:04:21 +03:00
Mikhail Glukhikh
f56dc722d9 Lateinit property backing field now inherits visibility from the property setter 2015-12-23 18:02:20 +03:00
Mikhail Glukhikh
ebda21c68a Codegen tests for lateinit var with private setter 2015-12-23 18:02:07 +03:00
Mikhail Glukhikh
60521e20ff SETTER_VISIBILITY_DIFFERS_FROM_LATEINIT_VISIBILITY diagnostic removed 2015-12-23 17:48:28 +03:00
Pavel V. Talanov
cfacd5da1e Fix a problem caused by getting project using an invalid psi element 2015-12-23 17:07:51 +03:00
Alexander Udalov
a7324ebad2 Minor, additional constructor for JvmPackagePartSource 2015-12-23 16:45:26 +03:00
Alexander Udalov
12e921ab15 Minor, add test on annotation in enum companion 2015-12-23 16:45:26 +03:00
Alexander Udalov
7170d488bd Fix package part class name calculation
Package part name can contain dollars
2015-12-23 16:45:26 +03:00
Alexander Udalov
e67318e049 Minor, add DescriptorUtils.isClassOrEnumClass 2015-12-23 16:45:26 +03:00
Alexander Udalov
48a0a95e8f Fix nested class context in cls stub builder
Previously two contexts were created for a nested class stub: one with the
replaced NameResolver, another with everything else. Now only one is created
2015-12-23 16:45:26 +03:00
Alexander Udalov
cd435c4130 Do not load implClassName JVM proto extension
Use JvmPackagePartSource instead for functions/properties in package parts,
check containing class kind for properties in interfaces
2015-12-23 16:45:26 +03:00
Alexander Udalov
03606c13aa Introduce PackagePartSource to store part class name in deserialized descriptors
Not used at the moment, will be in the following commits
2015-12-23 16:45:26 +03:00
Alexander Udalov
f4c5289cfc Minor, fix typo in class name: jmv -> jvm 2015-12-23 16:45:26 +03:00
Alexander Udalov
51cdb981f4 Remove obsolete code in IncrementalPackageFragmentProvider 2015-12-23 16:45:26 +03:00
Alexander Udalov
f7969621d6 Don't read isStaticInOuter message for fields
It's only written for fields of properties of companion objects of classes;
handle that case manually in deserialization
2015-12-23 16:45:26 +03:00
Alexander Udalov
696dce68fb Move deserialized callable descriptors to single file, convert to Kotlin 2015-12-23 16:45:26 +03:00
Alexander Udalov
19372a7210 Minor, make ProtoContainer sealed with two subclasses 2015-12-23 16:45:26 +03:00
Alexander Udalov
745de229cc Minor, split IMPL_CLASS_NAME_FOR_CALLABLE to two slices 2015-12-23 16:45:26 +03:00
Yan Zhulanow
b3877b5f0b Always compile Android projects without JDK in classpath #KT-10479 2015-12-23 16:42:35 +03:00
Pavel V. Talanov
70dc5a5c4c IDELightClassGenerationSupport: fix a problem when marking source root as both source and library source led to SO
# KT-10413 Fixed
2015-12-23 16:08:34 +03:00
Pavel V. Talanov
a8c5e0cc95 Minor, ProjectRootsUtil: extract a couple of utils and use them 2015-12-23 16:08:34 +03:00
Pavel V. Talanov
f20aba63a6 Add better diagnostic for "could not create stub for nested class" failures 2015-12-23 15:13:13 +03:00
Pavel V. Talanov
6a1ca7b9c9 Fix an exception caused by objects literals in supertype list not considered local 2015-12-23 14:56:27 +03:00
Dmitry Petrov
00db7d150b Fix KT-10472: compare all overloads including varargs in a single pass. 2015-12-23 10:05:40 +03:00
Nikolay Krasko
f25d80c38b Make add test lib quick-fix applicable only when there is unresolved import 2015-12-22 19:44:15 +03:00
Nikolay Krasko
259397db9d Add library for Gradle 2015-12-22 19:44:15 +03:00
Nikolay Krasko
2fba6c361a Determine maven library version from kotlin-stdlib 2015-12-22 19:44:15 +03:00
Nikolay Krasko
5467671a21 Add libraries to maven 2015-12-22 19:44:15 +03:00
Nikolay Krasko
1b92fa94bc Add kotlin-test.jar to classpath quickfix 2015-12-22 19:44:14 +03:00
Pavel V. Talanov
99966c17da Go to (show) implementations: skip light methods that are generated with DELEGATION or DELEGATION_TO_DEFAULT_IMPLS JvmDeclarationOriginKind
Add some unrelated tests for fake overrides
2015-12-22 17:30:51 +03:00
Stanislav Erokhin
de6f52030c Hack for unavailable archive.apache.org: use bintray.com instead 2015-12-22 16:44:10 +03:00
Dmitry Petrov
142e85be04 Prohibit functions (and constructors) with multiple vararg parameters. 2015-12-22 10:40:41 +03:00
Alexander Udalov
ed2ad8e8e3 Minor, fix warnings related to OperatorNameConventions 2015-12-21 20:41:45 +03:00
Alexander Udalov
97ce61ac44 Throw exception on inlining bytecode of version > 1.6
To prevent ASM from failing with a meaningless exception in this case as soon
as we support target 1.8 and someone tries to compile some code with the
current compiler against the new (1.8) code.
2015-12-21 20:38:18 +03:00
Alexander Udalov
7449ad2763 Rename Extension annotation to ExtensionFunctionType
The old one is kept temporarily and will be removed later
2015-12-21 20:33:32 +03:00
Alexander Udalov
6d40d94127 Minor, use String instead of DeprecationLevel
Using classes from runtime in the compiler is confusing and doesn't allow to
incompatibly change them
2015-12-21 20:28:40 +03:00
Alexander Udalov
c10cc30f40 Drop kotlin.jvm.internal.Intrinsic, use only one mechanism for intrinsics 2015-12-21 20:28:40 +03:00
Alexander Udalov
6048ebf871 Fix terminology: internal name instead of FQ name 2015-12-21 20:27:41 +03:00
Alexander Udalov
2ccd6d54b7 Add kotlin-reflect as a separate library
Exclude in core modules, since they do not have kotlin-reflect.jar in
dependencies when are built in build.xml
2015-12-21 18:46:08 +03:00
Alexander Udalov
a9476dfe37 Replace 'kotlin-runtime' in module dependencies with 'util' 2015-12-21 18:46:08 +03:00
Alexander Udalov
fa8c1f1a37 Delete obsolete tests on metadata annotations 2015-12-21 18:46:08 +03:00
Alexander Udalov
12922c3abd Minor, delete kunit source root from StdlibTest 2015-12-21 18:46:08 +03:00
Sergey Mashkov
c5e43a1327 kotlin-test: fix manifest description caused by copy-paste 2015-12-21 18:43:54 +03:00
Sergey Mashkov
2b6ae3127b kotlin-test: exclude OnlyInpuType from dist kotlin-test as well 2015-12-21 15:39:44 +03:00
Sergey Mashkov
8139070754 kotlin-test: exclude OnlyInputTypes annotation from jar 2015-12-21 15:14:55 +03:00
Sergey Mashkov
5ad0a84039 rename kotlin.test to kotlin-test 2015-12-21 15:10:24 +03:00
Andrey Breslav
a7e7d53e2b Reserve "async* {}", extend the quick-fix 2015-12-21 07:15:37 +03:00
Andrey Breslav
45074841a4 Minor. Additional test for "async {}" 2015-12-21 07:15:37 +03:00
Stanislav Erokhin
318f0c89b2 Completion fix for reserved 'async' syntax 2015-12-21 07:15:37 +03:00
Nikolay Krasko
afc1e24571 Quick fix for deprecated async syntax 2015-12-21 07:15:37 +03:00
Nikolay Krasko
01095bc652 More usages for getTestRoots method 2015-12-19 14:32:40 +03:00
Nikolay Krasko
2c1bf4dbd9 Remove filenameStartsLowerCase flag and clean warnings 2015-12-19 14:32:39 +03:00
Nikolay Krasko
aee36c40cd Request resolve only for modifier list for suppression check 2015-12-19 14:32:39 +03:00
Nikolay Krasko
b79aa686bb Avoid analyze in suppression check if there are no suppression annotations 2015-12-19 14:32:38 +03:00
Nikolay Krasko
697132561f Allow to override suppression key for inspections 2015-12-19 14:32:38 +03:00
Nikolay Krasko
8196621be5 Add test for inspections suppression 2015-12-19 14:32:38 +03:00
Nikolay Krasko
aff83087a3 Allow to suppress warnings at file level 2015-12-19 14:32:37 +03:00
Nikolay Krasko
712d2bdec0 Enable suppression actions for Kotlin inspections 2015-12-19 14:32:37 +03:00
Nikolay Krasko
94c0ccf2bf Fix test with dummy diagnostic 2015-12-19 14:32:36 +03:00
Nikolay Krasko
36210f0a27 Allow to suppress kotlin inspections with Suppress() annotation 2015-12-19 14:32:36 +03:00
Nikolay Krasko
ef265e23f8 Refactoring: SuppressionManager -> KotlinSuppressCache 2015-12-19 14:32:35 +03:00
Nikolay Krasko
b61b4e1c90 Allow to check suppression by string keys 2015-12-19 14:32:35 +03:00
Nikolay Krasko
20379028e8 Refactoring: extract separate class that can store suppressions 2015-12-19 14:32:34 +03:00
Nikolay Krasko
e562b73eff Refactoring: extract method for check test is AllFilesPresent test 2015-12-19 14:32:33 +03:00
Nikolay Krasko
5cd23daf4e Allow to run additional resolve from KtFileAnnotationList 2015-12-19 14:32:33 +03:00
Nikolay Krasko
0aa8d89b16 Minor: regenerate, optimize imports 2015-12-19 14:32:32 +03:00
Ilya Gorbunov
0a1f4d6088 Deprecate IndexingIterable and IndexingIterator and provide Iterator.withIndex() instead of the latter. 2015-12-19 09:56:52 +03:00
Ilya Gorbunov
fbfeb98ecf Deprecate some top-level constants to make 'em private later. 2015-12-19 09:56:46 +03:00
Ilya Chernikov
6ba68da811 Working around cancellation-related exception in case of different versions of daemon and client 2015-12-18 22:17:15 +01:00
Stanislav Erokhin
9e986db840 Minor. run generate tests 2015-12-18 22:54:05 +03:00
Stanislav Erokhin
bcaa755c4e Fix compilation.
- rename isFinal extension property to avoid ambiguity with synthetic property in DeserializedClassTypeConstructor
- add explicit parameter to lambda File.listFiles
- return true from lambda Query.forEach
2015-12-18 22:49:26 +03:00
Stanislav Erokhin
1574dc78df Synthetic extensions wins against top-level extension. 2015-12-18 22:49:25 +03:00
Stanislav Erokhin
e8a697cb6d Removed methods about synthetic from ImportingScope. 2015-12-18 22:49:24 +03:00
Stanislav Erokhin
fe9cbd982d Extract SyntheticScopes to injection component 2015-12-18 22:49:23 +03:00
Sergey Mashkov
3b08e5e547 kotlin-test: rename projects to eliminate possible mess 2015-12-18 22:17:48 +03:00
Sergey Mashkov
a97e623d04 kotlin-test: binary compatibility for fail function 2015-12-18 22:17:48 +03:00
Sergey Mashkov
f21b6a4777 Ant task to copy dist as a bootstrap compiler 2015-12-18 22:17:47 +03:00
Sergey Mashkov
fe4f51617c Add kotlin.test dependency to kotlin-compiler-embeddable 2015-12-18 22:17:47 +03:00
Sergey Mashkov
790524e391 Add library kotlin-test to IDEA project 2015-12-18 22:17:47 +03:00
Sergey Mashkov
f1783530ac Replace test assertions in the prod code with require 2015-12-18 22:17:47 +03:00
Sergey Mashkov
e25d31618c Fix tests 2015-12-18 22:16:04 +03:00
Sergey Mashkov
b57d2ff702 Add kotlin.test library to build distribution and provide for tests 2015-12-18 22:16:04 +03:00
Sergey Mashkov
7aae2bd452 kotlin-test: Remove javaClass as is in runtime now 2015-12-18 22:16:04 +03:00
Sergey Mashkov
a5b098c4a7 kotlin.test: Rename jvm module to junit 2015-12-18 22:16:04 +03:00
Sergey Mashkov
149ce70ce2 Move testing from stdlib to js.stdlib 2015-12-18 22:16:04 +03:00
Sergey Mashkov
1867abbbe7 Add kotlin.test library 2015-12-18 22:16:04 +03:00
Sergey Mashkov
dd36ef5712 Remove kunit 2015-12-18 22:16:04 +03:00
Andrey Breslav
6155d836a5 'async' reserved in front of function literals 2015-12-18 21:20:54 +03:00
Andrey Breslav
75ab0dd509 'sealed' reserved in front of when 2015-12-18 21:20:54 +03:00
Andrey Breslav
c36eeadab1 Minor. Constant used instead of constructor 2015-12-18 21:20:54 +03:00
Dmitry Petrov
09f53ea0bb Select most specific overloaded function/property by explicitly used arguments only.
Major rewrite of OverloadingConflictResolver.
2015-12-18 18:30:16 +03:00
Dmitry Petrov
52f0e0bc93 J2K: OverloadingConflictResolver.kt - convert to Kotlin 2015-12-18 18:30:16 +03:00
Dmitry Petrov
ca6153e8f1 J2K: OverloadingConflictResolver.kt 2015-12-18 18:30:16 +03:00
Ilya Gorbunov
03816373b3 Primitive array constructor-like functions with init lambda.
#KT-8831

Update testData and resolve ambiguity in newArray test
2015-12-18 17:54:09 +03:00
Natalia Ukhorskaya
513c4a4562 J2K: transform loops with double, float and char range with while
#KT-899 Fixed
2015-12-18 16:14:17 +03:00
Natalia Ukhorskaya
ecdef71580 J2K: cast right operand of equals for primitive types to left operand type
#KT-9997 Fixed
2015-12-18 16:14:16 +03:00
Natalia Ukhorskaya
1d787ed222 J2K: Insert initializer type for properties with primitive type if necessary 2015-12-18 16:14:15 +03:00
Ilya Gorbunov
188119aa83 Prepare to treat keys mapped to null same way as missing keys in Map extensions: getOrElse, getOrPut, getOrImplicitDefault. 2015-12-18 15:24:03 +03:00
Stanislav Erokhin
8b5a194dd6 Do not discriminate synthesized candidates.
#KT-9965 Fixed
2015-12-18 15:08:19 +03:00
Stanislav Erokhin
1b6f96ac2b Minor. update diagnostics/ReadMe.md 2015-12-18 15:08:18 +03:00
Alexey Sedunov
2fb3c727a7 Misc: Cleanup "org.jetbrains.kotlin.idea.intentions" package 2015-12-18 15:05:48 +03:00
Alexey Sedunov
3fca8f765c Misc: Cleanup "org.jetbrains.kotlin.idea.quickfix" package 2015-12-18 15:05:46 +03:00
Alexey Sedunov
ad55c8fb96 Misc: Cleanup "org.jetbrains.kotlin.idea.refactoring" package 2015-12-18 15:05:43 +03:00
Alexey Sedunov
f745f27694 Change Signature: Check syntactic validity of types. Warn about unresolved types 2015-12-18 15:05:40 +03:00
Alexey Sedunov
784b250de8 Change Signature: Fix rendering of unresolved types in overriding members 2015-12-18 15:05:39 +03:00
Alexey Sedunov
05ec9cc424 Initialize Property in Constructor Quick-Fix: Disable clearing of ShortenReferences waiting set 2015-12-18 15:05:37 +03:00
Alexey Sedunov
fd79145b73 Change Signature: Represent parameter/receiver types using KotlinTypeInfo 2015-12-18 15:05:36 +03:00
Alexey Sedunov
e558581667 Change Signature: Represent return type using KotlinTypeInfo 2015-12-18 15:05:34 +03:00
Alexey Sedunov
24951e8a38 J2K: KtTypeCodeFragment.java 2015-12-18 15:05:33 +03:00
Alexey Sedunov
6fe48243c7 J2K: KtTypeCodeFragment.java (rename to .kt) 2015-12-18 15:05:31 +03:00
Alexey Sedunov
594ad27952 Change Signature: Implement proper resolution of type code fragments
#KT-9210 Fixed
2015-12-18 15:05:29 +03:00
Alexey Sedunov
cfe1c44260 Introduce Variable: Add type argument to initializer if they can't be inferred from the context
#KT-5466 Fixed
2015-12-18 15:05:27 +03:00
Alexey Sedunov
ea8da18338 Inline Variable: Highlight usages in current file even if the variable is used in other files 2015-12-18 15:05:24 +03:00
Alexey Sedunov
4e36edb5d6 Inline Variable: Remove invalid imports and perform reference lengthening/shortening when inlining non-local declaration
#KT-8884 Fixed
2015-12-18 15:05:23 +03:00
Michael Bogdanov
44bdac6e11 Added file name to exception on indexing file mappings 2015-12-18 14:25:46 +03:00
Ilya Gorbunov
055c71e8d0 Provide minWith and maxWith to find maximum and minimum values according to the given comparator.
#KT-9002 Fixed
2015-12-18 00:00:52 +03:00
Ilya Gorbunov
b5e637bed5 Rename toMap with selector and transform to toMapBy 2015-12-17 22:50:44 +03:00
Ilya Gorbunov
544bc9a70c Introduce toMap with key-value pair selector.
#KT-6657
2015-12-17 22:50:43 +03:00
Ilya Gorbunov
2966420d24 Harden deprecation level for synchronized helper functions.
Make migration helper classes deprecated-hidden, although it doesn't affect anything.
2015-12-17 22:48:13 +03:00
Stanislav Erokhin
7521b89b3e Resolve unaryPlus as plus with error. 2015-12-17 20:21:01 +03:00
Denis Zharkov
1a6f9b8d1c Do not build inner type for error classes
#KT-10409 Fixed
2015-12-17 19:56:38 +03:00
Denis Zharkov
0d7c8635b3 Refine INSTANCE_ACCESS_BEFORE_SUPER_CALL check
- Detect usages of unitialized `this` as extension receiver argument
- Make it work within object literal created before super call

 #KT-9120 Fixed
 #KT-8289 Fixed
2015-12-17 19:56:38 +03:00
Zalim Bashorov
ba180f915a Minor: uncomment code fragments in ic tests which already should work 2015-12-17 19:41:25 +03:00
Zalim Bashorov
d9b67ae0ef Minor: use ".touch" extension instead of ".new" in incremental compilation tests when it possible 2015-12-17 19:41:24 +03:00
Mikhail Glukhikh
fe57a9e48f Setter visibility must be worse or the same as property visibility 2015-12-17 19:03:06 +03:00
Mikhail Glukhikh
f5989aa4f2 CallableMemberDescriptor.isOverridable / ClassDescriptor.isFinal refactoring
Extra JvmField and integer constants tests
2015-12-17 18:11:41 +03:00
Mikhail Glukhikh
91621704a2 Additional information to catch EA-75872 2015-12-17 17:30:30 +03:00
Evgeny Gerashchenko
16f482f723 Merge pull request #797 from JetBrains/rr/kt8365
KT-8365 Bogus "Receiver never used" warning when receiver is used in invoke() convention call
2015-12-17 17:38:24 +04:00
Alexey Tsvetkov
7384d25cb3 Prohibit Array<Nothing> 2015-12-17 16:26:26 +03:00
Mikhail Glukhikh
35f788a89c INAPPLICABLE_FIELD_TARGET_NO_BACKING_FIELD deleted (not necessary already) 2015-12-17 15:07:07 +03:00
Mikhail Glukhikh
3fb04aceb9 Check backing field availability for AnnotationTarget.FIELD #KT-10387 Fixed
Some duplicated checks deleted (UseSiteTargetChecker / JvmFieldApplicabilityChecker)
2015-12-17 15:06:58 +03:00
Mikhail Glukhikh
f55574df36 Code fix: TestOnly on a property without backing field 2015-12-17 15:06:51 +03:00
Michael Bogdanov
ca9e8fc5a7 Fix for KT-5910: Can't call Throwable() in Kotlin
#KT-5910 Fixed
2015-12-17 14:09:15 +03:00
Natalia Ukhorskaya
d40e9ffc13 Do not convert anonymous object to lambda if its function is recursive
#KT-10348 Fixed
2015-12-17 13:39:36 +03:00
Evgeny Gerashchenko
9aa38d99fb KT-8365 Bogus "Receiver never used" warning when receiver is used in invoke() convention call
#KT-8365 fixed
2015-12-17 13:31:43 +03:00
Evgeny Gerashchenko
2e6d82a72b Minor. Green code. 2015-12-17 13:06:27 +03:00
Natalia Ukhorskaya
43476bd773 Do not drop negation if resulting type isn't boolean 2015-12-17 11:11:33 +03:00
Natalia Ukhorskaya
f84b3414c8 Remove outdated test: generic property should have a receiver 2015-12-17 11:11:32 +03:00
Natalia Ukhorskaya
4b1edf7bb0 Intention tests: add directive to skip errors before 2015-12-17 11:11:31 +03:00
Natalia Ukhorskaya
7e6495618b ChangeVariableMutability: diagnostic can be reported on constructor parameter
#KT-10416 Fixed
2015-12-17 11:11:31 +03:00
Natalia Ukhorskaya
fc7c45d4d0 NegatedExpressionWithDemorgansLaw may produce code with error 2015-12-17 11:11:30 +03:00
Natalia Ukhorskaya
7f0065c806 Fix OperatorToFunctionIntention: insert function literal expressions to arguments correctly 2015-12-17 11:11:29 +03:00
Natalia Ukhorskaya
6bfbec8c88 ConvertAssertToIf may produce code with error
// TODO: we could generate anonymous function instead of lambda expression when there is a return
2015-12-17 11:11:28 +03:00
Natalia Ukhorskaya
ce3d53d2ee Intention tests: add operator modifier in some tests 2015-12-17 11:11:27 +03:00
Natalia Ukhorskaya
2c29f6f5ab ConvertIfWithThrowToAssertIntention: generate assert with lazy argument 2015-12-17 11:11:26 +03:00
Natalia Ukhorskaya
2dc1ba1d62 Intention 'remove explicit lambda parameter' may break code, do not check error in tests for it 2015-12-17 11:11:26 +03:00
Natalia Ukhorskaya
269676ee2e Intention tests: skip errors check for tests that fix some error 2015-12-17 11:11:25 +03:00
Natalia Ukhorskaya
abd7ed5c70 Fix intention for when: insert '||' instead of ',' 2015-12-17 11:11:24 +03:00
Natalia Ukhorskaya
6a3ac66208 Intention tests: add runtime where necessary 2015-12-17 11:11:23 +03:00
Natalia Ukhorskaya
78d737f3f4 Check errors in Intentions tests by default 2015-12-17 11:11:22 +03:00
Natalia Ukhorskaya
cc259c2d15 Intention convert object literal to lambda should add parameters if there are more than one 2015-12-17 11:11:22 +03:00
Natalia Ukhorskaya
5e231db631 J2K: convert method from Map (Java8) with cast to java.util.Map
#KT-10400 Fixed
2015-12-17 11:11:21 +03:00
Natalia Ukhorskaya
3f7b8554dd J2K: parenthesize receiver if needed
#KT-10121 Fixed
2015-12-17 11:11:20 +03:00
Natalia Ukhorskaya
a520e93b5b J2K: don't automatically convert Java code when pasting to a string literal in Kotlin
#KT-7759 Fixed
2015-12-17 11:11:19 +03:00
Natalia Ukhorskaya
f3a6c541ec J2K: Convert usages of kotlin functions from library correctly
#KT-6115 Fixed
2015-12-17 11:11:18 +03:00
Natalia Ukhorskaya
693e158759 Intention to convert anonymous function to lambda 2015-12-17 11:11:18 +03:00
Natalia Ukhorskaya
c79ffbac5c Run code cleanup on j2k module 2015-12-17 11:11:16 +03:00
Natalia Ukhorskaya
a983e6cf60 J2K: Do not convert string literal with escaped symbols automaticaly during java to kotlin conversion
#KT-9942 Fixed
2015-12-17 11:11:16 +03:00
Natalia Ukhorskaya
68101eeffa J2K: do not drop formatting for expressions with operator 2015-12-17 11:11:15 +03:00
Natalia Ukhorskaya
293b8eeda8 Minor: fix IDEA(win) run configuration 2015-12-17 11:11:14 +03:00
Michael Bogdanov
7a1d789e9a Added InliningLambdaContext 2015-12-17 09:52:28 +03:00
Michael Bogdanov
ebbc68dfae isInlineFunction renamed to isInlineMethodContext 2015-12-17 09:52:27 +03:00
Michael Bogdanov
9cad1a912a Choose proper context for accessor generation: skip inline ones; Fix for KT-6102: Bypass synthetic accessor when inlining lambda which calls private member
#KT-6102 Fixed
2015-12-17 09:51:41 +03:00
Michael Bogdanov
033698c51d Added crossinline field to MethodContext 2015-12-17 09:50:54 +03:00
Michael Bogdanov
b0a7706812 Test for obsolete KT-5445: Bad access to protected data in getfield
#KT-5445 Obsolete
2015-12-17 09:50:39 +03:00
Dmitry Jemerov
179498d971 UI for enabling EAP channel for plugin updates 2015-12-16 19:59:56 +01:00
Alexey Tsvetkov
5330248f6e Add checkbox for experimental incremental compilation; Make simple incremental compilation on by default 2015-12-16 21:52:39 +03:00
Alexander Udalov
0ba0ea5e1f Report 'unsupported' on synthetic Java property references
#KT-8575 Open
2015-12-16 19:50:15 +03:00
Alexander Udalov
dc84445e2e Inherit KProperty interfaces from function types
To be able to write the following: listOfStrings.map(String::length)
2015-12-16 19:48:28 +03:00
Mikhail Glukhikh
f25f0db10e Fixed long / double / float value merge in OptimizationBasicInterpreter #KT-7401 Fixed 2015-12-16 17:45:38 +03:00
Stanislav Erokhin
75089a3af8 Revert "Project configuration: Add sources to kotlin-runtime library"
This is workaround for KT-10413.
This reverts commit 623ecd2503.
2015-12-16 12:53:56 +03:00
Stanislav Erokhin
c725ed47f5 Replaced ReceiverValue.NO_RECEIVER to null. 2015-12-15 23:09:20 +03:00
Stanislav Erokhin
3692318c38 Minor. Removed ReceiverValue.IRRELEVANT_RECEIVER. 2015-12-15 23:08:41 +03:00
Pavel V. Talanov
56cd29dff2 Increase file size limit of compiler to 20 (was 2.5) megabytes (compiler will not read files larger than that)
Current IDEA api makes it possible to increase that to a higher value only by passing system property on compiler startup
2015-12-15 20:24:11 +03:00
Pavel V. Talanov
8d5d1b7dcc LightClassUtil: files can no longer "belong to builtIns" 2015-12-15 20:22:14 +03:00
Pavel V. Talanov
bd9221beaa Minor, fix test data for KotlinGoToTest 2015-12-15 20:22:13 +03:00
Pavel V. Talanov
623ecd2503 Project configuration: Add sources to kotlin-runtime library 2015-12-15 20:22:12 +03:00
Pavel V. Talanov
ca38a50e1a Test data: fix test data for LineMarkerTest 2015-12-15 20:22:12 +03:00
Pavel V. Talanov
4fdc77f86f Minor, mark component functions as operator in test data for ReferenceResolveWithLibTest 2015-12-15 20:22:11 +03:00
Pavel V. Talanov
6a780f01bd Replace calls to QuickFixUtil.canModify by calls to canRefactor
Fix ChangeFunctionSignatureFix#isAvailable
2015-12-15 20:22:10 +03:00
Pavel V. Talanov
a667aa2f71 Tests: add runtime (and runtime sources) to some tests that rely on being able to resolve references to built ins 2015-12-15 20:22:09 +03:00
Pavel V. Talanov
539b84b561 Minor, stricter check for when deciding whether to build light class for decompiled declaration 2015-12-15 20:22:09 +03:00
Pavel V. Talanov
ddde372fad Upgrade BuiltInsReferenceResolverTest 2015-12-15 20:22:08 +03:00
Pavel V. Talanov
ef134ffb1b ProjectDescriptorWithStdlibSources includes source files for builtIns 2015-12-15 20:22:07 +03:00
Pavel V. Talanov
0099c10e4e Drop BuiltInsReferenceResolver 2015-12-15 20:22:07 +03:00
Pavel V. Talanov
3f0d71411e KtDecompiledFile: hack to be able to navigate to builtIns on jvm
Which sometimes are loaded differently than they are rendered (see BuiltInClassesAreSerializableOnJvm)
2015-12-15 20:22:06 +03:00
Pavel V. Talanov
b5568f9ace findDecompiledDeclaration: rewrite using stub indices 2015-12-15 20:22:05 +03:00
Pavel V. Talanov
7ccdbfd596 Minor, rename file 2015-12-15 20:22:04 +03:00
Pavel V. Talanov
01b79f640f DecompiledNavigationUtils -> findDecompiledDeclaration() 2015-12-15 20:22:04 +03:00
Pavel V. Talanov
d89b609960 J2K DecompiledNavigationUtils: rename file 2015-12-15 20:22:03 +03:00
Pavel V. Talanov
9ad6685310 J2K DecompiledNavigationUtils: autoconvert 2015-12-15 20:22:02 +03:00
Zalim Bashorov
976fbf32ba Minor: use List instead of Array as container in chained scopes 2015-12-15 20:07:37 +03:00
Zalim Bashorov
5008a66a5b ChainedScope -> ChainedMemberScope 2015-12-15 20:07:36 +03:00
Zalim Bashorov
674a15daa1 Disable test until KT-10405 not fixed 2015-12-15 20:07:35 +03:00
Zalim Bashorov
8fa2e28729 Add usages of inherited static members from nested object 2015-12-15 20:07:33 +03:00
Zalim Bashorov
e201268f46 Remove unnecessary scopes 2015-12-15 19:41:18 +03:00
Zalim Bashorov
8c4deb80e5 Extract to property path to js.stdlib output dir and fix statistics for generated js files 2015-12-15 19:41:17 +03:00
Zalim Bashorov
0b6e100aff Fix compilation 2015-12-15 19:41:16 +03:00
Zalim Bashorov
51a8d5b9f0 Allow to use static members from companion object's parents 2015-12-15 19:41:15 +03:00
Zalim Bashorov
69c2668530 Don't allow to use own members when resolve super constructor call in (companion) object 2015-12-15 19:41:14 +03:00
Zalim Bashorov
e9ea4cc953 Don't allow to use own nested classes when resolve header of (companion) object 2015-12-15 19:41:13 +03:00
Zalim Bashorov
38522f60ea Minor: add helper function createLazyValue with onRecursion 2015-12-15 19:41:12 +03:00
Denis Zharkov
7756644eb1 Introduce KClass<T>.javaPrimitiveType and KClass<T>.javaObjectType
#KT-6319 Fixed
2015-12-15 16:18:31 +03:00
Denis Zharkov
154657a374 Fix wildcards for invariant arguments
See test with Java, we want preserve the invariant that if return type and
value parameter types are same in Kotlin, than we can use such return-value
as argument for that parameter
2015-12-15 16:18:31 +03:00
Denis Zharkov
5df2a58003 Minor. Adjust generic parameter naming 2015-12-15 16:18:31 +03:00
Denis Zharkov
b4bb92d136 Fix overload resolution ambiguity for types intersection
There are two different forms of types intestion:
1. Type parameters with multiple bounds
2. Smart casts

The problem was that when member scope of type intersection contained
effective duplicates and that lead to overload resolution ambiguity in
strange cases like `x.hashCode()`

For first type we do effectively the same thing as when building member
scope for class extending several interfaces: group all descriptors by
both-way-overridability relation and then choose most-specific in each
group.

For smart casts we do basically the same thing but with special
treatments:
1. From all descriptors that _equal_ to most specific we choose
   the one that works without smartcast if possible (i.e. we choose first from candidates list)
2. If smart-cast value seems to be unstable we use only member scope
   of receiver type + all descriptors from smart cast possible types
   that has incompatible signature. If we'd include all of them and
   choose one as more specific, and it would lead to false
   SMART_CAST_IMPOSIBLE (see test unstableSmartCast.kt)

 #KT-3996 Fixed
 #KT-10315 Fixed
2015-12-15 16:18:31 +03:00
Denis Zharkov
8d0c3281cd Choose first non-flexible when selecting most specific 2015-12-15 16:18:31 +03:00
Dmitry Petrov
02311538d6 Refactor createAntBindFakeOverride.
Drop unneeded helper functions from overridingUtils.kt
2015-12-15 16:18:30 +03:00
Ilya Gorbunov
19a6cc74de Build Markdown from sources tagged with forKotlin tag 2015-12-15 16:08:55 +03:00
Dmitry Jemerov
c83b6ed3a5 Inspection for migrating Kotlin stdlib API usages in Java code 2015-12-15 12:45:40 +01:00
Alexey Sedunov
3dfb9d2e5e Inline Variable: Move string template processing to InlineValHandler as it violates contract of the PsiElement.replace() 2015-12-15 13:31:35 +03:00
Alexey Sedunov
b5fad71b18 Inline Variable: Warn about non-Kotlin usages
#KT-8885 Fixed
2015-12-15 13:31:34 +03:00
Alexey Sedunov
ffb382e3bc PSI: Delete succeeding semicolon along with KtElement
#KT-5487 Fixed
2015-12-15 13:31:33 +03:00
Alexey Sedunov
d0b9b6a3b4 Introduce Parameter: Support conversion of local variables
#KT-9170 Fixed
2015-12-15 13:31:32 +03:00
Alexey Sedunov
fff011f60a Unit Test Tooling: Fix order of test method generation actions
#KT-9740 Fixed
2015-12-15 13:31:31 +03:00
Alexey Sedunov
258a6328a8 Pull Up: Default to "Make abstract" when moving to interface
#KT-9832 Fixed
2015-12-15 13:31:29 +03:00
Alexey Sedunov
04c6ea78c7 Name Suggester: Allow any Kotlin identifier in suggested names
#KT-10332 Fixed
2015-12-15 13:31:28 +03:00
Alexey Sedunov
ee9eb55b59 Extract Function: Fix NPE on parameter disabling. Fix parameter swapping 2015-12-15 13:31:27 +03:00
Mikhail Glukhikh
49e7417741 "as" in binary / unary expressions now checked only for original type conversion #KT-10384 Fixed
Also #KT-10386 Fixed
2015-12-15 12:02:33 +03:00
Mikhail Glukhikh
233e8e58e8 Code cleanup: get rid of unnecessary !! / as, fake warning comments and issues 2015-12-15 12:00:58 +03:00
Ilya Gorbunov
4ffd60cf52 Correct deprecation messages. 2015-12-14 21:07:33 +03:00
Ilya Gorbunov
43ce8222fc Soften deprecation level to ease migrations. 2015-12-14 21:05:13 +03:00
Pavel V. Talanov
46798ed845 Module configuration: 'idea-completion' depends on 'idea' at runtime
So that plugin.xml is in classpath when running completion tests separately
2015-12-14 17:35:17 +03:00
Stanislav Erokhin
cd80d9408d Extension function wins against function with no receiver 2015-12-14 16:49:29 +03:00
Dmitry Jemerov
a7503303d5 diagnostics for EA-73611 2015-12-14 13:28:45 +01:00
Mikhail Glukhikh
d2fce9b16d CFA classes rename: remove 'Kotlin' prefix 2015-12-14 15:25:43 +03:00
Dmitry Jemerov
8db3fb03f9 remove support for "package.foo.bar" syntax inside files 2015-12-14 13:22:54 +01:00
Mikhail Glukhikh
19084b8182 Additional codegen test for KT-10107 2015-12-14 12:52:43 +03:00
Mikhail Glukhikh
fdc9e9d7f5 Delegated properties never require backing field #KT-10107 Fixed 2015-12-14 12:26:37 +03:00
Ilya Gorbunov
9d753f24b7 Do not create regex to split path by directory separator char. 2015-12-14 06:31:44 +03:00
Ilya Gorbunov
a4f82a2dc4 Sensible behavior for File.startsWith and File.endsWith 2015-12-14 06:10:26 +03:00
Ilya Gorbunov
d2e22dc794 Fix tests on linux.
Add tests for File.startsWith
2015-12-14 06:10:24 +03:00
Ilya Gorbunov
645c78e2f4 Do not use assert in test, use assertTrue or assertEquals 2015-12-14 06:10:22 +03:00
Ilya Gorbunov
cb71e05c51 Deprecate File.directory, root, rootName as properties with unclear behavior. 2015-12-14 06:10:21 +03:00
Ilya Gorbunov
7c9b53c75c Do not convert separatorsToSystem in file path extensions.
Do not require network host in network share root to contain dot.
File.root now is always non-null to be consistent with File.toComponents().root.
Introduce invariantSeparatorsPath property.
Deprecate relativeTo to make it return File later. Introduce toRelativeString instead.
Introduce relativeToOrNull and relativeToOrSelf extensions.
2015-12-14 06:10:18 +03:00
Ilya Gorbunov
52eb9e4276 Refactor FilePathComponents: rename properties, deprecate constructor, rename filePathComponents extension. 2015-12-14 06:09:55 +03:00
Ilya Gorbunov
8deefd56db Rename FileTreeWalk public parameters and builder methods.
Directory filtering now is performed in newly introduced onEnter predicate.
2015-12-14 05:16:06 +03:00
Ilya Gorbunov
e24dbcefb6 Move all mutable state from FileTreeWalk to its iterator implementation, allowing this sequence to be iterated several times.
Introduce SingleFileState for single file walks.
Do not check isDirectory in DirectoryState constructor unless assertions are enabled.
2015-12-14 05:16:04 +03:00
Ilya Gorbunov
061803d7b1 Compare root of FilePathComponents according to case-sensitivity rules of current file system. 2015-12-14 05:16:02 +03:00
Ilya Gorbunov
4f2887df64 FileTreeWalk tests: do not remove failed directory from stack as leave is also called on failed dirs. 2015-12-14 05:16:01 +03:00
Ilya Gorbunov
162b152133 Improve File.relativeTo handling relative paths. Paths are normalized before calculating relative path. "x".relativeTo("../y") now is considered to have incompatible roots. 2015-12-14 05:15:59 +03:00
Ilya Gorbunov
9f5a972816 Improve resolve and resolveSibling for relative paths. 2015-12-14 05:15:57 +03:00
Ilya Gorbunov
923effe11d Change FilePathComponents parsing for file with empty name to enhance finding relative path between relative paths. 2015-12-14 05:15:55 +03:00
Ilya Gorbunov
6301c707cd Ensure resolveTo fails as expected.
Change UNC paths not to be misinterpreted on *nix.
2015-12-14 05:15:53 +03:00
Ilya Gorbunov
c23c2dbe85 FileTreeWalk: correct usage not to filter out subdirectories 2015-12-14 05:15:52 +03:00
Ilya Gorbunov
515d2cd3e7 FileTreeWalk.filter was dropped, use treeFilter otherwise filtering result becomes different.
Refactor walking tests.
2015-12-14 05:15:50 +03:00
Ilya Gorbunov
27551a8399 Make some io test classes non-nested as it's not supported by runners. 2015-12-14 05:15:48 +03:00
Ilya Gorbunov
33967a09f6 Unify minBy and maxBy for Maps with other families. 2015-12-14 04:56:47 +03:00
Ilya Gorbunov
33b366b9b9 Relax upper bound of T for minBy and maxBy to be nullable.
Swap type parameters of minBy and maxBy.
#KT-10099 Fixed
2015-12-14 04:56:45 +03:00
Ilya Gorbunov
58e93d5e1b Update testData for LoadBuiltinsTest and BuiltInDecompilerTest 2015-12-14 04:29:28 +03:00
Ilya Gorbunov
bf9d50ccc4 Fix testData for LookupTracker 2015-12-14 04:29:27 +03:00
Ilya Gorbunov
59a9e2549c Fix tests: codegen, completion, decompiler consistency, quickdoc, intentions, navigation, reference resolver, quick fixes 2015-12-14 04:29:25 +03:00
Ilya Gorbunov
f55b421853 Partially support default imports when analyzing ReplaceWith annotation pattern. 2015-12-14 04:29:23 +03:00
Ilya Gorbunov
d296d91272 Fix fq-names of top-level extensions in intentions. 2015-12-14 04:29:21 +03:00
Ilya Gorbunov
5df94da216 Fix fq-name of listOf in extract function. 2015-12-14 04:29:20 +03:00
Ilya Gorbunov
4dde59368c Fix tests not to duplicate array constructor definitions as they are available now in builtins. 2015-12-14 04:29:18 +03:00
Ilya Gorbunov
f509937037 Move array constructors to builtins module back to kotlin package. 2015-12-14 04:29:11 +03:00
Ilya Gorbunov
5aff07561d Move jvm annotations and class mapping intrinsics to runtime.jvm module to kotlin.jvm package.
Make annotationClass to be a property.
Deprecate with error javaClass property on KClass<T>
2015-12-14 03:51:07 +03:00
Ilya Gorbunov
feff5b2327 Stdlib generators: change values back to function. 2015-12-14 03:49:59 +03:00
Ilya Gorbunov
2d85c437cd Final moves: BigInteger and BigDecimal operations 2015-12-14 03:49:58 +03:00
Ilya Gorbunov
0ab33ab075 Final moves: map delegating accessors and timing utils, provide deprecated methods in the old place 2015-12-14 03:49:56 +03:00
Ilya Gorbunov
597f2c0a8c Final moves: map delegating accessors and timing utils 2015-12-14 03:49:55 +03:00
Ilya Gorbunov
16fbdcf107 For migration: provide deprecated classes inheriting multifile facade classes moved out of kotlin package. 2015-12-14 03:49:53 +03:00
Ilya Gorbunov
ae3135c770 For migration: Make an option "Xmultifile-facades-open" for compiler to generate open multifile facade classes. 2015-12-14 03:49:51 +03:00
Ilya Gorbunov
594d981094 Provide deprecated AbstractIterator in the old package kotlin.support. 2015-12-14 03:49:49 +03:00
Ilya Gorbunov
91b920f18e Move IndexedValue, IndexingIterable and IndexingIterator back to kotlin package 2015-12-14 03:49:48 +03:00
Ilya Gorbunov
871c5c66b4 Move code between packages (JS) 2015-12-14 03:49:46 +03:00
Ilya Gorbunov
dd2ae15531 Move code between packages. 2015-12-14 03:49:45 +03:00
Ilya Gorbunov
81e7826568 Move generated code between packages. 2015-12-14 03:49:43 +03:00
Alexander Udalov
477e25ae2f Remove Intrinsic annotation from *arrayOf functions 2015-12-14 03:49:41 +03:00
Ilya Gorbunov
09191622e5 Fix testData: import became not required. 2015-12-14 01:07:51 +03:00
Ilya Gorbunov
42565129ee Add packages kotlin.collections, kotlin.ranges, kotlin.sequences, and kotlin.text to default imports. 2015-12-14 01:07:49 +03:00
Alexander Udalov
65c5c99c68 Render decompiled annotations on enum entries 2015-12-13 17:49:44 +03:00
Alexander Udalov
6f347f351a Load annotations on compiled Kotlin enum entries
#KT-10339 Fixed
2015-12-13 03:52:42 +03:00
Alexander Udalov
3e2eb8c1a0 Serialize/deserialize annotations on enum entries
#KT-10338 Fixed
2015-12-13 03:52:41 +03:00
Alexander Udalov
5e421b4024 Improve type parameter bound diagnostic location
If there's only one erroneous bound (vast majority of cases), report it on the
bound; otherwise (to avoid reporting it several times) report on the type
parameter declaration
2015-12-13 02:06:07 +03:00
Michael Bogdanov
39d9b35e27 Force resolve companion in light class generation 2015-12-12 11:41:37 +03:00
Michael Bogdanov
a849f3f5d4 Fixed filtering error 2015-12-12 11:41:37 +03:00
Michael Bogdanov
4ad113d836 Removed redundant check 2015-12-12 11:41:36 +03:00
Michael Bogdanov
7c7786f7d0 Generate private methods in TraitImpl as private, don't generate delegation to private trait methods 2015-12-12 11:41:36 +03:00
Michael Bogdanov
a2d644f708 Fix for KT-9958: NoSuchMethodError when we call protected method from companion object
#KT-9958 Fixed
2015-12-12 11:41:35 +03:00
Michael Bogdanov
a7eea6e4dd Get rid of NeedSyntheticChecker 2015-12-12 11:41:35 +03:00
Denis Zharkov
b443f605ed Minor. Add load-java test checking that SamAdapterOverridabilityCondition is on 2015-12-11 22:41:03 +03:00
Denis Zharkov
871fe7680b Load special override as HIDDEN in case of signature clash
#KT-10151 Fixed
2015-12-11 22:41:03 +03:00
Denis Zharkov
45c0bc3610 Add 'subClassDescriptor' parameter to ExternalOverridabilityCondition 2015-12-11 22:41:03 +03:00
Denis Zharkov
417ff281ee Split getOverriddenBuiltinWithJvmDescriptor into two extensions 2015-12-11 22:41:02 +03:00
Mikhail Glukhikh
fe78f944a6 Private setter for open property: is now an error, not a warning 2015-12-11 18:54:40 +03:00
Mikhail Glukhikh
00504a3f6d Private setter for open property: take containing class modality into account #KT-10325 Fixed 2015-12-11 18:54:28 +03:00
Dmitry Jemerov
470dfc9bec remove "Jet" from names of classes related to resolve/scopes 2015-12-11 16:07:13 +01:00
Stanislav Erokhin
39b6637c7c Fix exception from InvokeProcessor when we get invoke from extension function type. 2015-12-11 17:01:04 +03:00
Stanislav Erokhin
616bb444ec Minor. strip explicit receiver for variable call if needed. 2015-12-11 17:01:03 +03:00
Stanislav Erokhin
1890b8cbd3 Removed InvokeOnExtensionFunctionWithExplicitReceiverFix 2015-12-11 17:01:03 +03:00
Stanislav Erokhin
dd24fd47f7 Update control flow test data for tower resolution algorithm
- locals win
- drop old invokeExtension convention
2015-12-11 17:01:02 +03:00
Stanislav Erokhin
79b30dddf9 Update lookupTracker test data for tower resolution algorithm 2015-12-11 17:01:02 +03:00
Alexander Udalov
239502368a Update test data for tower resolution algorithm
- locals win
- unary calls to plus/minus are not supported in favor of unaryPlus/unaryMinus
- unqualified nested classes are temporarily reported as unresolved
- function without receiver win against extension function
- explicit import win against star import
2015-12-11 17:01:02 +03:00
Stanislav Erokhin
66a031f7a0 Do not enter in recursion for implicit invoke on variable with un inferred type 2015-12-11 17:01:01 +03:00
Stanislav Erokhin
1dca49cecc Workaround for tower resolution algorithm in kotlin code. Will be investigated. 2015-12-11 17:01:01 +03:00
Stanislav Erokhin
cbe1ffed55 Use new tower resolution algorithm by default 2015-12-11 17:01:00 +03:00
Natalia Ukhorskaya
f699adda33 Stepping: skip methods deleting to static method call of DefaultImpl.
Support smart step into interface methods with implementation
 #KT-4803 Fixed
2015-12-11 16:21:05 +03:00
Natalia Ukhorskaya
ea8de883ac Implement 'Skip simple getters' for debugger 2015-12-11 16:21:04 +03:00
Michael Bogdanov
b950bf0e6e Fix for KT-10259: Proguard can't find generated lambda class of lambda nested inside object?.let lambda
#Fixed KT-10259
2015-12-11 16:14:59 +03:00
Michael Bogdanov
9452c200a0 Keep typeRemapper in inlining context instead of hashMap for transformed types 2015-12-11 16:14:58 +03:00
Mikhail Glukhikh
6fb871a088 A set of additional tests for complex expressions DFA 2015-12-11 15:17:37 +03:00
Mikhail Glukhikh
d024045638 Data flow values for Elvis / parenthesized expressions, smart casts on them 2015-12-11 15:17:29 +03:00
Mikhail Glukhikh
745a3aeeac Accurate representation of smart casts on complex expressions 2015-12-11 15:17:25 +03:00
Mikhail Glukhikh
7cd867b936 DFA: take into account if / else and when expression assignments #KT-10002 Fixed
Also #KT-7479 Fixed
2015-12-11 15:17:22 +03:00
Mikhail Glukhikh
e7fc6bcc6e BuiltIns refactoring: getEnumEntry 2015-12-11 11:11:46 +03:00
Mikhail Glukhikh
c8b50eec1e Enum.values: deprecation (warning) --> deprecation (error) 2015-12-11 11:11:42 +03:00
Mikhail Glukhikh
521b216602 Migration: Enum.values to Enum.values() 2015-12-11 11:11:38 +03:00
Mikhail Glukhikh
3254641c5a Local sealed classes: warning --> error 2015-12-11 11:11:34 +03:00
Dmitry Petrov
0fe74a8b43 COMMA_IN_WHEN_CONDITION_WITHOUT_ARGUMENT is an ERROR now.
Migrated code.
Updated test data in IDE tests.
Dropped whenWithRangeTestsAndMultiConditions.kt:
"Introduce subject" is not applicable to 'when' with ||-ed conditions.
2015-12-11 10:43:16 +03:00
Alexey Tsvetkov
199827635f Reserve 'typeof' as a keyword 2015-12-10 21:26:41 +03:00
Alexey Sedunov
4c3f620255 Minor: Fix compilation 2015-12-10 21:03:44 +03:00
Alexey Sedunov
f87d2d1fcc Introduce Refactorings: Implement trimming renderer for expression
chooser. Do not suggest parenthesized expressions
 #KT-9028 Fixed
2015-12-10 20:07:26 +03:00
Alexey Sedunov
ae2fc19fe5 Introduce Parameter/Lambda Parameter: Parenthesize binary expressions if operation reference starts with a new line 2015-12-10 20:07:24 +03:00
Alexey Sedunov
354e1dc337 Extract Function: Parenthesize binary expressions if operation reference starts with a new line 2015-12-10 20:07:23 +03:00
Alexey Sedunov
1824f10f07 Introduce Variable: Parenthesize binary expressions if operation references starts with a new line
#KT-3933 Fixed
2015-12-10 20:07:22 +03:00
Alexey Sedunov
ffc8b6fd89 Safe Delete: Move test classes and test data to refactoring directory 2015-12-10 20:06:34 +03:00
Alexey Sedunov
a76f43b66c Safe Delete: Skip internal usages of class constructors when deleting class itself
#KT-8857 Fixed
2015-12-10 20:06:31 +03:00
Alexey Sedunov
f50059a11a Create from Usage: Implement "Create function" on callable references
#KT-10283 Fixed
2015-12-10 20:06:30 +03:00
Alexey Sedunov
87aebd2cdf Create from Usage: Forbid "Create local variable/parameter/property" on callable references
#KT-10283 In Progress
2015-12-10 20:06:27 +03:00
Alexey Sedunov
44743aade5 Create from Usage: Allow type parameters in the receiver position
#KT-7497 Fixed
2015-12-10 20:06:26 +03:00
Alexey Sedunov
76cf284b77 Introduce Variable: Do not suggest type-based names for multi-declaration entries if component function corresponds to value parameter
#KT-10287 Fixed
2015-12-10 20:06:24 +03:00
Yan Zhulanow
15faa6610c Android Extensions: do not cache package fragment provider with synthetic properties (KT-10318) 2015-12-10 19:38:38 +03:00
Yan Zhulanow
ac9a1350c2 Application package from manifest file has a higher priority than the applicationId value in build.gradle (KT-10320) 2015-12-10 19:38:38 +03:00
Dmitry Jemerov
009e3f9cd7 rename PSI classes according to current terminology:
KtMultiDeclaration(Entry) -> KtDestructuringDeclaration(Entry)
KtFunctionLiteralExpression -> KtLambdaExpression
KtFunctionLiteralArgument -> KtLambdaArgument
KtDelegationSpecifierList -> KtSuperTypeList
KtDelegationSpecifier -> KtSuperTypeListEntry
KtDelegatorToSuperClass -> KtSuperTypeEntry
KtDelegatorToSuperCall -> KtSuperTypeCallEntry
KtDelegationByExpressionSpecifier ->KtDelegatedSuperTypeEntry
2015-12-10 16:15:13 +01:00
Alexey Tsvetkov
ef4b3c99f4 Minor: remove default values for markChunk parameters 2015-12-10 18:03:20 +03:00
Alexey Tsvetkov
6a74b1c8bf Rebuild only kotlin when cache version is changed 2015-12-10 18:03:17 +03:00
Alexey Tsvetkov
49778d2fb6 Minor: move buildFinished closer to buildStarted 2015-12-10 18:03:13 +03:00
Natalia Ukhorskaya
d10c3ffbe4 Fix exception in EE for inline function invocation
#KT-10217 Fixed
2015-12-10 14:42:00 +03:00
Natalia Ukhorskaya
58d62fde4d Add test for smart step into in method with default args
#KT-4803 In Progress
2015-12-10 14:41:58 +03:00
Natalia Ukhorskaya
1dbe560734 Run Code Clean up for org.jetbrains.kotlin.idea.debugger 2015-12-10 14:41:56 +03:00
Natalia Ukhorskaya
1ca6c695e6 Remove println() from debugger testData 2015-12-10 14:41:53 +03:00
Natalia Ukhorskaya
9b8e5c5684 Refactor KotlinDebuggerTestCase to avoid StubIndexReindex between test invocation 2015-12-10 14:41:51 +03:00
Natalia Ukhorskaya
42119b311d Skip whitespaces as context elements of codeFragmnets
#KT-10171 Fixed
2015-12-10 14:41:49 +03:00
Natalia Ukhorskaya
49e484d796 Do not throw exception analyzing imports in KtCodeFragments 2015-12-10 14:41:47 +03:00
Natalia Ukhorskaya
08c29b7325 Fix step out from inline function literal placed at one line
#KT-10187 Fixed
2015-12-10 13:11:40 +03:00
Natalia Ukhorskaya
3b3dbbab04 Evaluate expression for variable of function type
#KT-10199 Fixed
2015-12-10 13:11:39 +03:00
Natalia Ukhorskaya
2bc2d81486 Debugger: correctly box parameter types in case of generics
#KT-10180 Fixed
2015-12-10 13:11:39 +03:00
Pavel V. Talanov
280e00981f Load java: load annotations on enum entries 2015-12-10 11:12:23 +03:00
Pavel V. Talanov
fb19552920 Mark enum entries that are deprecated in Kotlin as deprecated in bytecode 2015-12-10 11:12:22 +03:00
Zalim Bashorov
5bf8b4d946 Allow to use "static" part of class in own constructors by short name, including in primary constructor 2015-12-09 21:42:32 +03:00
Mikhail Glukhikh
f319b1b93a Sealed classes are not taken into account in live templates 2015-12-09 19:27:50 +03:00
Mikhail Glukhikh
9a4eb2a368 Refactoring: ClassDescriptor.isFinal, no more Modality.isOverridable 2015-12-09 19:27:47 +03:00
Mikhail Glukhikh
fb406bfc24 Refactoring: CallableMemberDescriptor.isOverridable 2015-12-09 19:27:04 +03:00
Mikhail Glukhikh
c73f01927a 'sealed' is now not 'final' by default + related code changes #KT-10266 Fixed 2015-12-09 19:19:04 +03:00
Mikhail Glukhikh
5b72afe8a0 J2K: Modality.kt 2015-12-09 19:19:00 +03:00
Mikhail Glukhikh
d80206376a Modality.java --> Modality.kt 2015-12-09 19:18:56 +03:00
Nikolay Krasko
8e71006e86 Add test JDK 8 module to be able reparse IDEA step 2015-12-09 19:16:37 +03:00
Pavel V. Talanov
da02ed9057 GroupingMessageCollector: ensure that messages without location are reported first
Should fix CompileKotlinAgainstCustomBinariesTest.testIncompleteHierarchyInJava(Kotlin) tests
2015-12-09 18:54:15 +03:00
Pavel V. Talanov
2e971b13aa KotlinGoToTest: test go to for builtIn classes and functions 2015-12-09 18:51:32 +03:00
Pavel V. Talanov
7e6bed7ad8 Decompiled text: should always render all modifiers even if we don't feel like it 2015-12-09 18:51:31 +03:00
Pavel V. Talanov
fee19ad9de CallableClsStubBuilder: correctly decide whether callable is extension 2015-12-09 18:51:30 +03:00
Pavel V. Talanov
deb6410a5c Add test for builtIn stub builder and decompiler
These test are by no means exhaustive, the correctness of the subsystem relies on it sharing code with well-tested js-decompilation
2015-12-09 18:51:30 +03:00
Pavel V. Talanov
5cc04e41fe Enable keyword highlighting in .kotlin_class, .kotlin_package files 2015-12-09 18:51:29 +03:00
Pavel V. Talanov
c40d6af1e5 Decompile builtins (kotlin_class and kotlin_package files)
The main purpose of this is to be able to index builtin declarations and enable go to symbol/class functionality in ide
Also it makes sense to show builtin classes (Any, Int ...) as classes when browsing kotlin-runtime.jar

Refactor decompiler code to eliminate existing and potential duplication
Share the code between js (kjsm) decompilation and builtin decompilation heavily
2015-12-09 18:51:28 +03:00
Pavel V. Talanov
6164566cad Extract duplicate logic between javascript and builtins serialization/deserialization 2015-12-09 18:51:27 +03:00
Pavel V. Talanov
34c3c04ead Implement NameResolverImpl#getPackageFqName(index) 2015-12-09 18:51:26 +03:00
Pavel V. Talanov
5846769b43 J2K NameResolverImpl: convert 2015-12-09 18:51:26 +03:00
Pavel V. Talanov
9ff6be6f0f J2K NameResolverImpl: rename file 2015-12-09 18:51:25 +03:00
Pavel V. Talanov
e458534c93 Write package_fq_name to for Package message when serializing builtins 2015-12-09 18:51:24 +03:00
Pavel V. Talanov
f05de6d6eb Add package_fq_name field extension to builtins.proto 2015-12-09 18:51:24 +03:00
Pavel V. Talanov
9a2442bba6 Decompiler, refactor: reduce the number of classes needed to define a decompiler 2015-12-09 18:51:23 +03:00
Pavel V. Talanov
dc34d4fc31 Decompiler, minor: fix some strange code 2015-12-09 18:51:22 +03:00
Pavel V. Talanov
136e8d9d02 Refactor: repackage decompiler code and explicitly extract class file and js metafile parts 2015-12-09 18:51:21 +03:00
Dmitry Petrov
70c200d265 Fix diagnostic messages for properties.
Fix IDE tests.
Update quick fixes in IDE
(TODO: review new inheritance-related diagnostics with regards to quick fixes)
2015-12-09 17:43:48 +03:00
Dmitry Petrov
94bea54db3 Change "most specific return type" definition for fake overrides.
Given overridden descriptors D = d[i].
1. Find D*, subset of D:
  returnType(d* from D*) <: returnType(d) for each d from D.
  Always prefer var to val.
2. Prefer non-flexible return type to flexible.

Check for var/val overrides properly
(NB: this will report PROPERTY_TYPE_MISMATCH_ON_OVERRIDE
for all properties, not just overrides involving vars as it was before).
2015-12-09 17:43:48 +03:00
Dmitry Petrov
594039ac42 Delegation and overrides:
- Tests.
- No need for a separate diagnostic message regarding
return/property type conflict on override by delegation:
it is always a conflict of inherited signatures.
2015-12-09 17:43:48 +03:00
Dmitry Petrov
84824b1024 Fix KT-10194: skip incorrect delegates. 2015-12-09 17:43:48 +03:00
Dmitry Petrov
ef72c594c4 KT-1934 & KT-10197:
Naive approximation for fake overriding signature:
use upper bound for flexible types.
Check delegation errors.
2015-12-09 17:43:47 +03:00
Dmitry Petrov
6e2d42daf9 J2K: DelegationResolver.kt: convert to Kotlin 2015-12-09 17:43:47 +03:00
Dmitry Petrov
8f5df45edc J2K: DelegationResolver.kt 2015-12-09 17:43:47 +03:00
Dmitry Petrov
2fcb7e532b KT-1934: Fixing synthetic accessors hierarchy 2015-12-09 17:43:47 +03:00
Dmitry Petrov
135c30323b KT-1934 Check inherited signatures for compatibility
Overridden signatures should have compatible return types
(equal types for 'var').
Only relevant overrides should be taken into account.
Refactor inherited signatures check,
introduce a strategy interface for problem reporting.
2015-12-09 17:43:47 +03:00
Dmitry Jemerov
18e343d405 Merge pull request #795 from mcgee/KT-10124
#KT-10124 Fixed
2015-12-09 15:28:31 +01:00
Dmitry Jemerov
863e32c5cd Merge pull request #791 from mcgee/KT-9938
#KT-9938 Fixed
2015-12-09 15:17:31 +01:00
Andrey Breslav
83189013c6 Minor. Drop deprecated unary operator names from JS back-end 2015-12-09 17:10:30 +03:00
Andrey Breslav
0a0e4f1ba2 Minor. Clean up the code in OperatorChecker.kt 2015-12-09 17:10:30 +03:00
Andrey Breslav
3eeab68261 Signature checks fixed for plus() and minus() 2015-12-09 17:10:30 +03:00
Andrey Breslav
421f84e05a Error messages fixed for deprecations that have been made errors 2015-12-09 17:10:30 +03:00
Andrey Breslav
434082cadb 'yield' reserved as a keyword 2015-12-09 17:10:30 +03:00
Alexey Tsvetkov
e6bba01798 Increment cache version
Wildcard generation could cause source level incompatibility, so we should rebuild
2015-12-09 16:23:35 +03:00
Alexey Tsvetkov
c567376e35 Save class hierarchy to incremental caches
Author:    Alexey Tsvetkov <Alexey.Tsvetkov@jetbrains.com>
2015-12-09 16:23:35 +03:00
Alexey Tsvetkov
6ba5dcaa06 Simplify collection externalizers 2015-12-09 16:23:35 +03:00
Nikolay Krasko
8a95f23a23 Adjust formatting for FILE_ANNOTATION_LIST 2015-12-09 16:01:56 +03:00
Nikolay Krasko
966ad9d3b6 Move idea-repl module to ide group 2015-12-09 16:01:55 +03:00
Nikolay Krasko
a2d6bd09f3 Minor: allow to use ${file} directive in action text to reference file name 2015-12-09 16:01:53 +03:00
Nikolay Krasko
3374ac7606 Minor: More tests for warnings suppression 2015-12-09 16:01:52 +03:00
Nikolay Krasko
3c5b02e54a Minor: better diagnostic message in tests 2015-12-09 16:01:50 +03:00
Nikolay Krasko
789738c45f Minor: add fqname to dictionary 2015-12-09 16:01:49 +03:00
Dmitry Jemerov
e97e82d119 use terms "lambda expression" and "anonymous function" instead of "function literal" and "function expression" 2015-12-09 13:55:40 +01:00
mcgee
4a0e33003b #KT-9938 Fixed
Top level test case is added
2015-12-09 07:32:41 +03:00
Alexander Udalov
9a01c0d9cb Test that no delegated properties are used in critical classes in reflection 2015-12-08 22:59:00 +03:00
Stanislav Erokhin
cfed28c2ff Use CastImplicitClassReceiver for implicit this with smart cast 2015-12-08 20:42:55 +03:00
Stanislav Erokhin
b7e4fdf4d5 Add extensionReceiver to ScopeTowerLevel & use it in ImportingScopeBasedTowerLevel 2015-12-08 20:42:55 +03:00
Dmitry Jemerov
57b5588498 rename "Jet" to "Kotlin" in CFG classes 2015-12-08 16:54:09 +01:00
Dmitry Jemerov
3275542426 one more missing invokeLater() for plugin update checks (EA-76738 - Throwable: DebugUtil.currentStackTrace) 2015-12-08 16:45:40 +01:00
Dmitry Jemerov
d65c8fb06c double-check action parameters (EA-76026 - KNPE: ShowExpressionTypeAction.actionPerformed) 2015-12-08 16:45:39 +01:00
Dmitry Jemerov
0ec57e7fee add missing scope checks for highlight usages (EA-75896)
#KT-10038 Fixed
2015-12-08 16:45:19 +01:00
Stanislav Erokhin
10a13e737e Minor. Add isComputing to DeferredType 2015-12-08 17:29:55 +03:00
Stanislav Erokhin
11410000b4 Minor. Do not resolve implicit invoke for callable reference 2015-12-08 17:29:55 +03:00
Stanislav Erokhin
859a8adc31 Fix priority for functions without infix or operator modifier 2015-12-08 17:29:54 +03:00
Stanislav Erokhin
64b101785f Minor. Introduce util function 2015-12-08 17:29:54 +03:00
Alexey Sedunov
e82e4bcfc8 Inline Variable: Show error message on attempt to inline unused declaration 2015-12-08 16:21:08 +03:00
Alexey Sedunov
5c88a1c63e Inline Variable: Parenthesize arguments of the form "e1 < e2" if the next argument has the form "e1 > e2"
#KT-8261 Fixed
2015-12-08 16:21:07 +03:00
Alexey Sedunov
b2bdb8ed02 Inline Variable: Inline string template entries
#KT-7654 Fixed
2015-12-08 16:21:05 +03:00
Alexey Sedunov
0af2243245 J2K: KotlinInlineValHandler (conversion and refactoring) 2015-12-08 16:21:03 +03:00
Alexey Sedunov
2fef2763ab J2K: KotlinInlineValHandler (rename to .kt) 2015-12-08 16:21:02 +03:00
Alexey Sedunov
f4135a0a9f J2K: AbstractInlineTest 2015-12-08 16:21:00 +03:00
Alexey Sedunov
9df3ce018b J2K: AbstractInlineTest (rename to .kt) 2015-12-08 16:20:58 +03:00
Alexey Sedunov
f6b374f829 Inline Variable: Fix dialog text for non-local variables
#KT-6365 Fixed
2015-12-08 16:20:57 +03:00
Alexey Sedunov
e517cbcf78 Quick Fixes: Implement "Rename unresolved reference" fix
#KT-8795 Fixed
2015-12-08 16:20:56 +03:00
Alexey Sedunov
d850d7bbad Change Signature: Parenthesize functional type of receiver in the signature preview
#KT-8737 Fixed
2015-12-08 16:20:53 +03:00
Alexey Sedunov
8f8acf7a83 Pull Up: Drop default parameter values in function which becomes overriding. Disable function with default values if target class is the Java one
#KT-9833 Fixed
2015-12-08 16:20:52 +03:00
Alexey Sedunov
80051b8303 Create from Usage: Locate new declaration using RangeMarker
#KT-9197 Fixed
2015-12-08 16:20:50 +03:00
Alexey Sedunov
99c88cb0c5 Line Marking: Use new-style icons for Kotlin test classes/functions
#KT-10235 Fixed
2015-12-08 16:20:48 +03:00
Alexey Sedunov
8fcda32287 Unit Test Tooling: Support Go to Test/Create Test actions for top-level declarations
#KT-10133 Fixed
2015-12-08 16:20:47 +03:00
Denis Zharkov
ecac0f177b Fix order of type parameters loaded from PSI
#KT-10285 Fixed
2015-12-08 15:46:34 +03:00
Mikhail Glukhikh
d08f6f8238 DataFlowInfo Refactoring: getNullability() --> getCollectedNullability(); getPossibleTypes() --> getCollectedTypes() 2015-12-08 11:23:44 +03:00
Mikhail Glukhikh
57b3bc0496 Regression: getPredictableNullability for unnecessary safe call check #KT-10276 Fixed 2015-12-08 11:23:35 +03:00
Mikhail Glukhikh
2330ce2c28 Optimization: do not collect not-null types in DataFlowInfo.equate 2015-12-08 11:22:33 +03:00
Mikhail Glukhikh
5c9e55f3fb DFA bug fix: assignment of unstable to stable uses predictable type set (see test) 2015-12-08 10:13:38 +03:00
Mikhail Glukhikh
2e73bcb3a6 DFA bug fix: assignment of unstable to stable uses predictable nullability (see test) 2015-12-08 10:13:34 +03:00
Mikhail Glukhikh
96d0c4a1db Nullability bug fix in the source code 2015-12-08 10:13:22 +03:00
Mikhail Glukhikh
bfad9bd87f More exact unnecessary not-null assertion message #KT-3688 Fixed 2015-12-08 10:13:14 +03:00
Stanislav Erokhin
75245b3046 Rewrite TowerLevels. 2015-12-08 00:16:17 +03:00
Stanislav Erokhin
11c86405bf Fix ClassKind for Serializable and change ClassKind to INTERFACE for error classes. 2015-12-08 00:16:16 +03:00
Stanislav Erokhin
f2e60a0e11 Minor. Have to deal with error descriptors like previous resolution does. 2015-12-08 00:16:16 +03:00
Anton Sukhonosenko
da5f71773a #KT-9938 Fixed
Code review fixes
2015-12-07 22:48:47 +03:00
Zalim Bashorov
1e0b133e19 Find Nothing only in own arguments of generic type to make type raw and generate ''?" for contravariant position instead of use raw type 2015-12-07 19:25:59 +03:00
Alexander Udalov
fa77808319 Rename UpperBoundCheckerTask -> UpperBoundCheckRequest 2015-12-07 15:47:47 +03:00
Alexander Udalov
2dce7ad1e2 Add test on "inconsistent type parameter bounds"
It seems that all tests on that diagnostic were replaced in previous commits by
"repeated bound" and "no other bounds except a type parameter bound"
diagnostics
2015-12-07 15:47:47 +03:00
Alexander Udalov
d3c17ec337 Report error when type parameter has a type parameter bound and any other bound
To prevent issues with erasure on JVM: it's unclear what such type parameter
should be erased to
2015-12-07 15:47:47 +03:00
Alexander Udalov
b1fa740341 Do not report "inconsistent bounds" when there are repeated bounds
Also slightly refactor DeclarationsChecker#checkSupertypesForConsistency
2015-12-07 15:47:47 +03:00
Alexander Udalov
5fbb9bfe3b Report error on repeated upper bounds for type parameters 2015-12-07 15:47:47 +03:00
Alexander Udalov
21e64e02bd Report error on more than one class bound for type parameters
Such code may behave unexpectedly when compiled to JVM
2015-12-07 15:47:47 +03:00
Alexander Udalov
5541224288 Minor, add test on annotation on type argument 2015-12-07 15:47:47 +03:00
Anton Sukhonosenko
6b49ac6b46 #KT-9938 Fixed 2015-12-06 01:44:57 +03:00
Ilya Gorbunov
dc70c0d31e Move sequence interface definition to a separate file.
Merge SequnceJVM content into Sequences.
2015-12-05 02:40:27 +03:00
Ilya Gorbunov
a15ca7c374 Minor: rename file with sequences 2015-12-05 02:40:25 +03:00
Mikhail Glukhikh
5729855e4f Type parameter as result type: more precise expected type definition #KT-5385 Fixed
Tests for KT-5385 KT-10223 KT-7800 KT-7817 + something related
2015-12-04 19:00:24 +03:00
Natalia Ukhorskaya
51abb021bc Correct resource path for flavors in android-extensions-plugin 2015-12-04 17:21:37 +03:00
Natalia Ukhorskaya
c523817213 Do not cache AndroidModule in IDEAndroidLayoutXmlManager 2015-12-04 17:21:36 +03:00
Mikhail Glukhikh
408dd9bc9d Optimization: data flow info no more stores supertypes of the variable original type as possible types (dynamic is an exception) 2015-12-04 11:40:16 +03:00
Denis Zharkov
9c73502bdc Partially revert "Fix project source to overcome bootstrap problem"
Adjust code to new generic signatures generated by Kotlin compiler
This reverts commit 0fd2484bc9.
2015-12-04 10:19:48 +03:00
Nikolay Krasko
a19708693b Update kotlin run configuration editor
- Remove deprecated component for selecting JRE
- Update module selector
2015-12-04 01:03:26 +03:00
Nikolay Krasko
8683582c40 Fix red code in AbstractEditorForEvaluateExpressionTest.kt 2015-12-03 18:59:55 +03:00
Nikolay Krasko
703f39f492 Add icon for the project 2015-12-03 18:59:55 +03:00
Denis Zharkov
95cecdbc42 Support overrides of generic methods with erased version in Java 2015-12-03 18:19:36 +03:00
Denis Zharkov
4f06cece37 Refactor external overidability conditions
Before this change they could only negatively affect on result
Now they may force success result

Also refine overridavility condition for java fields:
two java fields having the same name are seen as overrides even
if they have different type
2015-12-03 18:19:36 +03:00
Denis Zharkov
8838e46578 Do not create KotlinTypeImpl with error scope while erasing
See assertion in KotlinTypeImpl init block
2015-12-03 18:19:36 +03:00
Denis Zharkov
e2b51f30ed Extract 'doSubstitute' parameters into SubstitutionConfiguration 2015-12-03 18:19:36 +03:00
Natalia Ukhorskaya
a197fc8cb8 Fix NoSuchMethod in android-extensions-plugin
#KT-10263 Fixed
2015-12-03 16:17:24 +03:00
Michael Bogdanov
4b8017e34b Fix for KT-7999: Wrong result when use nullable types as reified parameter, KT-8043: Unsafe cast to reified parameter throws NPE instead of TypeCastException
#KT-7999 Fixed
  #KT-8043 Fixed

~
2015-12-03 15:09:54 +03:00
Dmitry Jemerov
3478a6fb6c download markdown tagged with forKotlin, not latest build from master 2015-12-03 11:57:55 +01:00
Dmitry Jemerov
ce9012c352 fix compilation after changes in markdown library 2015-12-02 19:44:46 +01:00
Alexey Tsvetkov
d53cd3c70b Save system properties in incremental jps tests 2015-12-02 20:56:38 +03:00
Alexey Tsvetkov
73444ce59b Minor: refactor shouldRebuildBecauseVersionChanged 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
7fff17ba7c Minor: rename CACHE_DIRECTORY_NAME->KOTLIN_CACHE_DIRECTORY_NAME 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
7063e1f56a Do not mark dirty same files 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
4800cff87f Do not recompile files compiled in current round 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
19089f8b17 Prevent processing changes if all kotlin in chunk was rebuilt 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
87f09ab5b0 Introduce FSOperationsHelper to mark files dirty 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
98e0905eb3 Minor: add java to test case 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
3d3d670cd7 Minor: move check inside hasDirtyOrRemovedKotlin 2015-12-02 20:56:37 +03:00
Alexey Tsvetkov
60a8db1c6c Do not use USER_DATA to preserve data between compilation rounds 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
a447c39f69 Kotlin incremental cache version change should not affect java only modules 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
b1b0da5228 Minor: add description to key 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
c9012b10c5 Simplify lazy caches tests 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
aea6ad0f0c Move CacheVersion properties to constructor 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
e90dc047bd Test turning incremental compilation on/off 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
a8b551e518 Test versioning of experimental incremental compilation 2015-12-02 20:56:36 +03:00
Alexey Tsvetkov
69c906014f Enable separate versioning for experimental incremental compilation 2015-12-02 20:56:35 +03:00
Pavel V. Talanov
d20fb5ddd7 BuilderFactoryForDuplicateSignatureDiagnostics: report diagnostics lazily 2015-12-02 20:44:53 +03:00
Dmitry Jemerov
05a62c5892 avoid unnecessary reads of file content during indexing 2015-12-02 18:09:19 +01:00
Dmitry Jemerov
f9306d9c3c KotlinBinaryClassCache: J2K 2015-12-02 18:09:18 +01:00
Dmitry Jemerov
3abbdb4d15 KotlinBinaryClassCache: rename to .kt 2015-12-02 18:09:17 +01:00
Anton Sukhonosenko
5bc70b3150 #KT-10124 Fixed 2015-12-02 20:03:13 +03:00
Mikhail Glukhikh
dd3b85dca3 Pseudocode refactoring: repeatPart + repeatWhole 2015-12-02 18:15:03 +03:00
Mikhail Glukhikh
ea3a65d0b8 Additional tests for KT-10243 2015-12-02 18:14:59 +03:00
Pavel V. Talanov
b9ce9f8576 Script, IDE: tweak extract based refactorings to behave better in scripts
Fix not being able to invoke introduce variable for top level script expression
Prohibit introduce parameter and introduce property for scripts on top level
Basic test for introduce function (produces red code atm)
2015-12-02 15:14:25 +03:00
Alexey Sedunov
ffd8863875 Extract Function: Add support for member extension properties 2015-12-02 13:54:05 +03:00
Alexey Sedunov
39b46bb3ef Extract Function: Add support for member extension functions 2015-12-02 13:54:04 +03:00
Alexey Sedunov
6abf13be41 Extract Function: Consider member property with invoke() a receiver candidate
#KT-9774 Fixed
2015-12-02 13:54:03 +03:00
Alexey Sedunov
03e1480476 Extraction Engine: Get rid of explicit element offset manipulation and use copyable user data instead 2015-12-02 13:54:02 +03:00
Alexey Sedunov
44bc937499 Shorten References: Fix removal of explicit companion references in the position of callee expression
#KT-10102
2015-12-02 13:54:01 +03:00
Alexey Sedunov
2dcc38b92f Create from Usage: Forbid "Create parameter/local variable/property" on label references
#KT-10119 Fixed
2015-12-02 13:54:00 +03:00
Alexey Sedunov
3c87ccc5ff Move File: Reimplement Move dialog for Kotlin files. Do not show "Search for references" option (consider it true in all cases)
#KT-10118 Fixed
2015-12-02 13:53:59 +03:00
Alexey Sedunov
bcadfd4661 Introduce Variable: Suggest choosing between single variable and
multi-declaration. Forbid multi-declaration for collections and arrays
 #KT-10242 Fixed
2015-12-02 13:46:47 +03:00
Ilya Chernikov
c1c6d0ee3a fixes after review 2015-12-02 10:30:56 +01:00
Ilya Chernikov
6313ecac1c another attempt to fix parallel compilation - enabling keepalive in compiler use sites, but in jps taking parallel compilation option into account, so it should be now not set in tests 2015-12-02 10:30:56 +01:00
Mikhail Glukhikh
60e457167d Creating deep copy of local function declaration instructions in CFA, regression test #KT-10243 Fixed 2015-12-01 23:40:50 +03:00
Stanislav Erokhin
36206ddf6d Minor. Enable assertion for dist. 2015-12-01 20:44:27 +03:00
Ilya Gorbunov
b7a50b333e Better replacement for containsAll, removeAll, retainAll with incompatible types. 2015-12-01 20:35:46 +03:00
Alexander Udalov
2821448dd8 Minor, simplify kdoc for KClass#qualifiedName 2015-12-01 20:20:48 +03:00
Stanislav Erokhin
8807cd828f Removed MemberScope.getPackage 2015-12-01 15:38:04 +03:00
Stanislav Erokhin
846fb397c4 Collect all candidates for completion 2015-12-01 15:38:04 +03:00
Stanislav Erokhin
2b66af29aa Added debug info 2015-12-01 15:38:03 +03:00
Stanislav Erokhin
22b14cfc5c Fix missing smart casts 2015-12-01 15:38:03 +03:00
Stanislav Erokhin
3776e5698f Removed hidden descriptors from new resolve 2015-12-01 15:38:03 +03:00
Stanislav Erokhin
e92c314b46 Base dynamic support in new resolve 2015-12-01 15:38:02 +03:00
Stanislav Erokhin
2987576a0a Minor. fix applicability level for UsedSmartCastForDispatchReceiver 2015-12-01 15:38:02 +03:00
Stanislav Erokhin
5edadfe8ea Refactor ScopeTowerProcessor 2015-12-01 15:38:01 +03:00
Stanislav Erokhin
bc49825f55 Fix testLib test 2015-12-01 15:38:01 +03:00
27520 changed files with 655171 additions and 254581 deletions

8
.gitignore vendored
View File

@@ -13,3 +13,11 @@ workspace.xml
*.versionsBackup
/idea/testData/debugger/tinyApp/classes*
/jps-plugin/testData/kannotator
ultimate/.DS_Store
ultimate/.idea/shelf
ultimate/dependencies
ultimate/ideaSDK
ultimate/out
ultimate/tmp
ultimate/workspace.xml
ultimate/*.versionsBackup

3
.idea/ant.xml generated
View File

@@ -3,7 +3,7 @@
<component name="AntConfiguration">
<buildFile url="file://$PROJECT_DIR$/compiler/frontend/buildLexer.xml" />
<buildFile url="file://$PROJECT_DIR$/build.xml">
<antCommandLine value="-J-XX:MaxPermSize=100m" />
<antCommandLine value="-J-XX:MaxPermSize=100m -J-ea" />
<maximumHeapSize value="1024" />
</buildFile>
<buildFile url="file://$PROJECT_DIR$/update_dependencies.xml" />
@@ -18,5 +18,6 @@
</properties>
</buildFile>
<buildFile url="file://$PROJECT_DIR$/TeamCityRelay.xml" />
<buildFile url="file://$PROJECT_DIR$/node_utils.xml" />
</component>
</project>

View File

@@ -1,27 +0,0 @@
<component name="ArtifactManager">
<artifact name="KotlinBarePlugin">
<output-path>$PROJECT_DIR$/out/artifacts/BareKotlin</output-path>
<properties id="ant-postprocessing">
<options enabled="true">
<file>file://$PROJECT_DIR$/idea-runner/runner.xml</file>
<target>copy-runtime-for-idea-plugin</target>
</options>
</properties>
<root id="root">
<element id="directory" name="kotlinc">
<element id="dir-copy" path="$PROJECT_DIR$/dist/kotlinc" />
</element>
<element id="directory" name="lib">
<element id="archive" name="kotlin-bare-plugin.jar">
<element id="module-output" name="bare-plugin" />
<element id="module-output" name="descriptor.loader.java" />
<element id="module-output" name="frontend.java" />
<element id="module-output" name="descriptors" />
</element>
<element id="directory" name="jps">
<element id="artifact" artifact-name="KotlinJpsPlugin" />
</element>
</element>
</root>
</artifact>
</component>

9
.idea/artifacts/KotlinFormatter.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<component name="ArtifactManager">
<artifact type="jar" name="KotlinFormatter">
<output-path>$PROJECT_DIR$/out/artifacts/internal</output-path>
<root id="archive" name="kotlin-formatter.jar">
<element id="module-output" name="formatter" />
<element id="dir-copy" path="$PROJECT_DIR$/idea/formatter" />
</root>
</artifact>
</component>

View File

@@ -11,7 +11,7 @@
<element id="directory" name="META-INF">
<element id="dir-copy" path="$PROJECT_DIR$/jps-plugin/src/META-INF" />
</element>
<element id="extracted-dir" path="$PROJECT_DIR$/dependencies/cli-parser-1.1.1.jar" path-in-jar="/" />
<element id="extracted-dir" path="$PROJECT_DIR$/dependencies/cli-parser-1.1.2.jar" path-in-jar="/" />
<element id="module-output" name="cli-common" />
<element id="module-output" name="idea-jps-common" />
<element id="module-output" name="jps-plugin" />
@@ -23,7 +23,7 @@
<element id="module-output" name="daemon-common" />
<element id="module-output" name="deserialization" />
<element id="extracted-dir" path="$PROJECT_DIR$/dependencies/native-platform-uberjar.jar" path-in-jar="/" />
<element id="module-output" name="android-jps-plugin" />
<element id="module-output" name="build-common" />
</root>
</artifact>
</component>

View File

@@ -37,7 +37,8 @@
<element id="module-output" name="idea-analysis" />
<element id="module-output" name="ide-common" />
<element id="file-copy" path="$PROJECT_DIR$/resources/kotlinManifest.properties" />
<element id="module-output" name="kotlin-android-plugin" />
<element id="module-output" name="idea-android" />
<element id="module-output" name="idea-android-output-parser" />
<element id="module-output" name="js.serializer" />
<element id="module-output" name="serialization" />
<element id="module-output" name="idea-completion" />
@@ -46,6 +47,13 @@
<element id="module-output" name="daemon-common" />
<element id="module-output" name="idea-repl" />
<element id="module-output" name="idea-live-templates" />
<element id="module-output" name="resolution" />
<element id="module-output" name="plugin-api" />
<element id="module-output" name="idea-ultimate" />
<element id="module-output" name="formatter" />
<element id="module-output" name="idea-maven" />
<element id="extracted-dir" path="$PROJECT_DIR$/dependencies/protobuf-2.6.1.jar" path-in-jar="/" />
<element id="module-output" name="annotation-based-compiler-plugins-ide-support" />
</element>
<element id="library" level="project" name="javax.inject" />
<element id="directory" name="jps">
@@ -53,10 +61,28 @@
</element>
<element id="library" level="project" name="markdown" />
<element id="archive" name="kotlin-android-extensions-plugin.jar">
<element id="module-output" name="android-idea-plugin" />
<element id="module-output" name="android-extensions-idea" />
</element>
<element id="archive" name="kotlin-android-extensions-compiler-plugin.jar">
<element id="module-output" name="android-compiler-plugin" />
<element id="module-output" name="android-extensions-compiler" />
</element>
<element id="archive" name="android-lint.jar">
<element id="module-output" name="lint-idea" />
<element id="module-output" name="lint-checks" />
<element id="module-output" name="lint-api" />
</element>
<element id="library" level="project" name="uast-kotlin" />
<element id="archive" name="allopen-ide-plugin.jar">
<element id="module-output" name="allopen-ide" />
</element>
<element id="archive" name="allopen-compiler-plugin.jar">
<element id="module-output" name="allopen-cli" />
</element>
<element id="archive" name="noarg-compiler-plugin.jar">
<element id="module-output" name="noarg-cli" />
</element>
<element id="archive" name="noarg-ide-plugin.jar">
<element id="module-output" name="noarg-ide" />
</element>
</element>
<element id="directory" name="kotlinc">

8
.idea/codeInsightSettings.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaProjectCodeInsightSettings">
<excluded-names>
<name>kotlin.reflect.jvm.internal.impl</name>
</excluded-names>
</component>
</project>

17
.idea/compiler.xml generated
View File

@@ -6,6 +6,7 @@
<excludeFromCompile>
<directory url="file://$PROJECT_DIR$/core/reflection.jvm" includeSubdirectories="true" />
<directory url="file://$PROJECT_DIR$/core/runtime.jvm" includeSubdirectories="true" />
<directory url="file://$PROJECT_DIR$/core/builtins" includeSubdirectories="true" />
</excludeFromCompile>
<resourceExtensions />
<wildcardResourcePatterns>
@@ -23,8 +24,18 @@
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_STRING" value="-target 1.6" />
<bytecodeTargetLevel>
<module name="android-studio" target="1.8" />
<module name="idea" target="1.8" />
<module name="idea-analysis" target="1.8" />
<module name="idea-completion" target="1.8" />
<module name="idea-core" target="1.8" />
<module name="idea-live-templates" target="1.8" />
<module name="idea-repl" target="1.8" />
<module name="idea-runner" target="1.8" />
<module name="idea-test-framework" target="1.8" />
<module name="j2k" target="1.8" />
<module name="kannotator-jps-plugin-test" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>

8
.idea/dictionaries/Alexey_Sedunov.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<component name="ProjectDictionaryState">
<dictionary name="Alexey.Sedunov">
<words>
<w>inplace</w>
<w>renamer</w>
</words>
</dictionary>
</component>

View File

@@ -2,6 +2,7 @@
<dictionary name="Nikolay.Krasko">
<words>
<w>accessors</w>
<w>fqname</w>
<w>goto</w>
<w>gradle</w>
<w>intrinsics</w>
@@ -15,6 +16,7 @@
<w>preloading</w>
<w>preprocess</w>
<w>redeclarations</w>
<w>smap</w>
<w>subclassed</w>
<w>subgraph</w>
<w>substep</w>

View File

@@ -2,8 +2,10 @@
<dictionary name="bashor">
<words>
<w>ctor</w>
<w>interner</w>
<w>kclass</w>
<w>lookups</w>
<w>unescape</w>
</words>
</dictionary>
</component>
</component>

8
.idea/dictionaries/dzharkov.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<component name="ProjectDictionaryState">
<dictionary name="dzharkov">
<words>
<w>checkcast</w>
<w>insn</w>
</words>
</dictionary>
</component>

View File

@@ -3,6 +3,7 @@
<words>
<w>decapitalize</w>
<w>delegator</w>
<w>elipsis</w>
<w>funs</w>
<w>immediates</w>
<w>initializers</w>
@@ -17,6 +18,8 @@
<w>renderers</w>
<w>rparenth</w>
<w>selectioner</w>
<w>smartcast</w>
<w>summand</w>
<w>unpluralize</w>
<w>weighers</w>
</words>

9
.idea/dictionaries/yan.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<component name="ProjectDictionaryState">
<dictionary name="yan">
<words>
<w>impls</w>
<w>kapt</w>
<w>uast</w>
</words>
</dictionary>
</component>

BIN
.idea/icon.png generated Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -273,6 +273,9 @@
<inspection_tool class="ObsoleteCollection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreRequiredObsoleteCollectionTypes" value="false" />
</inspection_tool>
<inspection_tool class="PackageDirectoryMismatch" enabled="true" level="WARNING" enabled_by_default="false">
<scope name="all except testData" level="WARNING" enabled="true" />
</inspection_tool>
<inspection_tool class="ProtectedMemberInFinalClass" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PublicFieldAccessedInSynchronizedContext" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="ERROR" enabled_by_default="true">

9
.idea/kotlinc.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JsCompilerArguments">
<option name="moduleKind" value="plain" />
</component>
<component name="KotlinCompilerSettings">
<option name="additionalArguments" value="-version -Xallow-kotlin-package -Xskip-metadata-version-check" />
</component>
</project>

View File

@@ -6,6 +6,7 @@
<CLASSES>
<root url="file://$PROJECT_DIR$/ideaSDK/plugins/android/lib" />
<root url="file://$PROJECT_DIR$/ideaSDK/plugins/android/lib/jps" />
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/android-common.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>

View File

@@ -1,11 +1,11 @@
<component name="libraryTable">
<library name="cli-parser">
<CLASSES>
<root url="jar://$PROJECT_DIR$/dependencies/cli-parser-1.1.1.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/cli-parser-1.1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/cli-parser-1.1.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/cli-parser-1.1.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -11,7 +11,6 @@
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/guava-17.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/asm5-src.zip!/" />
<root url="jar://$PROJECT_DIR$/dependencies/cli-parser-1.1.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/ideaSDK/lib" recursive="false" />

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="java-decompiler-plugin">
<CLASSES>
<root url="jar://$PROJECT_DIR$/ideaSDK/plugins/java-decompiler/lib/java-decompiler.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -8,8 +8,18 @@
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-java-2.5.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/antLayout/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/jps-builders/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/jps-builders/testSrc" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/jps-launcher/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/model-api/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/model-impl/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/model-impl/testSrc" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/model-serialization/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/model-serialization/testSrc" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/plugin-system/src" />
<root url="jar://$PROJECT_DIR$/ideaSDK/sources/sources.jar!/jps/standalone-builder/src" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/ideaSDK/jps" recursive="false" />
</library>

9
.idea/libraries/kotlin_reflect.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="kotlin-reflect">
<CLASSES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -2,11 +2,12 @@
<library name="kotlin-runtime">
<CLASSES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-runtime.jar!/" />
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-reflect.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/libraries/stdlib/src" />
<root url="file://$PROJECT_DIR$/core/builtins/native" />
<root url="file://$PROJECT_DIR$/core/builtins/src" />
</SOURCES>
</library>
</component>

13
.idea/libraries/kotlin_test.xml generated Normal file
View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="kotlin-test">
<CLASSES>
<root url="jar://$KOTLIN_BUNDLED$/lib/kotlin-test.jar!/"/>
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/libraries/kotlin.test/shared/src/main/kotlin" />
<root url="file://$PROJECT_DIR$/libraries/kotlin.test/shared/src/main/kotlin.jvm" />
<root url="file://$PROJECT_DIR$/libraries/kotlin.test/junit/src/main/kotlin" />
</SOURCES>
</library>
</component>

View File

@@ -4,11 +4,11 @@
<root url="file://$PROJECT_DIR$/annotations" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/protobuf-2.5.0.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-2.6.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-java-2.5.0-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-2.6.1-sources.jar!/" />
</SOURCES>
</library>
</component>

17
.idea/libraries/uast_kotlin.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<component name="libraryTable">
<library name="uast-kotlin">
<CLASSES>
<root url="jar://$PROJECT_DIR$/dependencies/uast-common.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-java.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-kotlin-idea.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-kotlin.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/uast-common-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-java-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-kotlin-idea-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/uast-kotlin-sources.jar!/" />
</SOURCES>
</library>
</component>

2
.idea/misc.xml generated
View File

@@ -49,7 +49,7 @@
<component name="ProjectResources">
<default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SuppressABINotification">

33
.idea/modules.xml generated
View File

@@ -3,22 +3,27 @@
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Kotlin.iml" filepath="$PROJECT_DIR$/Kotlin.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/android-compiler-plugin/android-compiler-plugin.iml" filepath="$PROJECT_DIR$/plugins/android-compiler-plugin/android-compiler-plugin.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/android-idea-plugin/android-idea-plugin.iml" filepath="$PROJECT_DIR$/plugins/android-idea-plugin/android-idea-plugin.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/android-jps-plugin/android-jps-plugin.iml" filepath="$PROJECT_DIR$/plugins/android-jps-plugin/android-jps-plugin.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/allopen/allopen-cli/allopen-cli.iml" filepath="$PROJECT_DIR$/plugins/allopen/allopen-cli/allopen-cli.iml" group="plugins/allopen" />
<module fileurl="file://$PROJECT_DIR$/plugins/allopen/allopen-ide/allopen-ide.iml" filepath="$PROJECT_DIR$/plugins/allopen/allopen-ide/allopen-ide.iml" group="plugins/allopen" />
<module fileurl="file://$PROJECT_DIR$/plugins/lint/android-annotations/android-annotations.iml" filepath="$PROJECT_DIR$/plugins/lint/android-annotations/android-annotations.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/android-extensions/android-extensions-compiler/android-extensions-compiler.iml" filepath="$PROJECT_DIR$/plugins/android-extensions/android-extensions-compiler/android-extensions-compiler.iml" group="plugins/android-extensions" />
<module fileurl="file://$PROJECT_DIR$/plugins/android-extensions/android-extensions-idea/android-extensions-idea.iml" filepath="$PROJECT_DIR$/plugins/android-extensions/android-extensions-idea/android-extensions-idea.iml" group="plugins/android-extensions" />
<module fileurl="file://$PROJECT_DIR$/android-studio/android-studio.iml" filepath="$PROJECT_DIR$/android-studio/android-studio.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/compiler/android-tests/android-tests.iml" filepath="$PROJECT_DIR$/compiler/android-tests/android-tests.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/plugins/annotation-based-compiler-plugins-ide-support/annotation-based-compiler-plugins-ide-support.iml" filepath="$PROJECT_DIR$/plugins/annotation-based-compiler-plugins-ide-support/annotation-based-compiler-plugins-ide-support.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/annotation-collector/annotation-collector.iml" filepath="$PROJECT_DIR$/plugins/annotation-collector/annotation-collector.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/annotation-processing/annotation-processing.iml" filepath="$PROJECT_DIR$/plugins/annotation-processing/annotation-processing.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/ant/ant.iml" filepath="$PROJECT_DIR$/ant/ant.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/backend/backend.iml" filepath="$PROJECT_DIR$/compiler/backend/backend.iml" group="compiler/java" />
<module fileurl="file://$PROJECT_DIR$/compiler/backend-common/backend-common.iml" filepath="$PROJECT_DIR$/compiler/backend-common/backend-common.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/jps-plugin/bare-plugin/bare-plugin.iml" filepath="$PROJECT_DIR$/jps-plugin/bare-plugin/bare-plugin.iml" group="ide/jps" />
<module fileurl="file://$PROJECT_DIR$/build-common/build-common.iml" filepath="$PROJECT_DIR$/build-common/build-common.iml" />
<module fileurl="file://$PROJECT_DIR$/core/builtins/builtins.iml" filepath="$PROJECT_DIR$/core/builtins/builtins.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/compiler/builtins-serializer/builtins-serializer.iml" filepath="$PROJECT_DIR$/compiler/builtins-serializer/builtins-serializer.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/compiler/cli/cli.iml" filepath="$PROJECT_DIR$/compiler/cli/cli.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/compiler/cli/cli-common/cli-common.iml" filepath="$PROJECT_DIR$/compiler/cli/cli-common/cli-common.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/compiler/cli/cli-runner/cli-runner.iml" filepath="$PROJECT_DIR$/compiler/cli/cli-runner/cli-runner.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/compiler/tests/compiler-tests.iml" filepath="$PROJECT_DIR$/compiler/tests/compiler-tests.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/tests-java8/compiler-tests-java8.iml" filepath="$PROJECT_DIR$/compiler/tests-java8/compiler-tests-java8.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/conditional-preprocessor/conditional-preprocessor.iml" filepath="$PROJECT_DIR$/compiler/conditional-preprocessor/conditional-preprocessor.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/container/container.iml" filepath="$PROJECT_DIR$/compiler/container/container.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/daemon/daemon.iml" filepath="$PROJECT_DIR$/compiler/daemon/daemon.iml" group="compiler/daemon" />
@@ -29,6 +34,7 @@
<module fileurl="file://$PROJECT_DIR$/core/descriptors.runtime/descriptors.runtime.iml" filepath="$PROJECT_DIR$/core/descriptors.runtime/descriptors.runtime.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/core/deserialization/deserialization.iml" filepath="$PROJECT_DIR$/core/deserialization/deserialization.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/eval4j/eval4j.iml" filepath="$PROJECT_DIR$/eval4j/eval4j.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/formatter/formatter.iml" filepath="$PROJECT_DIR$/idea/formatter/formatter.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/compiler/frontend/frontend.iml" filepath="$PROJECT_DIR$/compiler/frontend/frontend.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/frontend.java/frontend.java.iml" filepath="$PROJECT_DIR$/compiler/frontend.java/frontend.java.iml" group="compiler/java" />
<module fileurl="file://$PROJECT_DIR$/generators/generators.iml" filepath="$PROJECT_DIR$/generators/generators.iml" group="infrastructure" />
@@ -36,17 +42,21 @@
<module fileurl="file://$PROJECT_DIR$/idea/ide-common/ide-common.iml" filepath="$PROJECT_DIR$/idea/ide-common/ide-common.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea.iml" filepath="$PROJECT_DIR$/idea/idea.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-analysis/idea-analysis.iml" filepath="$PROJECT_DIR$/idea/idea-analysis/idea-analysis.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-android/idea-android.iml" filepath="$PROJECT_DIR$/idea/idea-android/idea-android.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-android/idea-android-output-parser/idea-android-output-parser.iml" filepath="$PROJECT_DIR$/idea/idea-android/idea-android-output-parser/idea-android-output-parser.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-completion/idea-completion.iml" filepath="$PROJECT_DIR$/idea/idea-completion/idea-completion.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-core/idea-core.iml" filepath="$PROJECT_DIR$/idea/idea-core/idea-core.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-jps-common/idea-jps-common.iml" filepath="$PROJECT_DIR$/idea/idea-jps-common/idea-jps-common.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-live-templates/idea-live-templates.iml" filepath="$PROJECT_DIR$/idea/idea-live-templates/idea-live-templates.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-repl/idea-repl.iml" filepath="$PROJECT_DIR$/idea/idea-repl/idea-repl.iml" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-maven/idea-maven.iml" filepath="$PROJECT_DIR$/idea/idea-maven/idea-maven.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-repl/idea-repl.iml" filepath="$PROJECT_DIR$/idea/idea-repl/idea-repl.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea-runner/idea-runner.iml" filepath="$PROJECT_DIR$/idea-runner/idea-runner.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/idea/idea-test-framework/idea-test-framework.iml" filepath="$PROJECT_DIR$/idea/idea-test-framework/idea-test-framework.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/compiler/preloader/instrumentation/instrumentation.iml" filepath="$PROJECT_DIR$/compiler/preloader/instrumentation/instrumentation.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/j2k/j2k.iml" filepath="$PROJECT_DIR$/j2k/j2k.iml" group="j2k" />
<module fileurl="file://$PROJECT_DIR$/compiler/java8-tests/java8-tests.iml" filepath="$PROJECT_DIR$/compiler/java8-tests/java8-tests.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/plugins/java-model-wrappers/java-model-wrappers.iml" filepath="$PROJECT_DIR$/plugins/java-model-wrappers/java-model-wrappers.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/jps-plugin/jps-plugin.iml" filepath="$PROJECT_DIR$/jps-plugin/jps-plugin.iml" group="ide/jps" />
<module fileurl="file://$PROJECT_DIR$/jps-plugin/jps-tests/jps-tests.iml" filepath="$PROJECT_DIR$/jps-plugin/jps-tests/jps-tests.iml" group="ide/jps" />
<module fileurl="file://$PROJECT_DIR$/js/js.dart-ast/js.dart-ast.iml" filepath="$PROJECT_DIR$/js/js.dart-ast/js.dart-ast.iml" group="compiler/js" />
<module fileurl="file://$PROJECT_DIR$/js/js.frontend/js.frontend.iml" filepath="$PROJECT_DIR$/js/js.frontend/js.frontend.iml" group="compiler/js" />
<module fileurl="file://$PROJECT_DIR$/js/js.inliner/js.inliner.iml" filepath="$PROJECT_DIR$/js/js.inliner/js.inliner.iml" group="compiler/js" />
@@ -55,13 +65,22 @@
<module fileurl="file://$PROJECT_DIR$/js/js.tests/js.tests.iml" filepath="$PROJECT_DIR$/js/js.tests/js.tests.iml" group="compiler/js" />
<module fileurl="file://$PROJECT_DIR$/js/js.translator/js.translator.iml" filepath="$PROJECT_DIR$/js/js.translator/js.translator.iml" group="compiler/js" />
<module fileurl="file://$PROJECT_DIR$/jps-plugin/kannotator-jps-plugin-test/kannotator-jps-plugin-test.iml" filepath="$PROJECT_DIR$/jps-plugin/kannotator-jps-plugin-test/kannotator-jps-plugin-test.iml" group="ide/jps" />
<module fileurl="file://$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" filepath="$PROJECT_DIR$/idea/kotlin-android-plugin/kotlin-android-plugin.iml" group="ide" />
<module fileurl="file://$PROJECT_DIR$/plugins/kapt3/kapt3.iml" filepath="$PROJECT_DIR$/plugins/kapt3/kapt3.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/light-classes/light-classes.iml" filepath="$PROJECT_DIR$/compiler/light-classes/light-classes.iml" group="compiler/java" />
<module fileurl="file://$PROJECT_DIR$/plugins/lint/lint-api/lint-api.iml" filepath="$PROJECT_DIR$/plugins/lint/lint-api/lint-api.iml" group="plugins/lint" />
<module fileurl="file://$PROJECT_DIR$/plugins/lint/lint-checks/lint-checks.iml" filepath="$PROJECT_DIR$/plugins/lint/lint-checks/lint-checks.iml" group="plugins/lint" />
<module fileurl="file://$PROJECT_DIR$/plugins/lint/lint-idea/lint-idea.iml" filepath="$PROJECT_DIR$/plugins/lint/lint-idea/lint-idea.iml" group="plugins/lint" />
<module fileurl="file://$PROJECT_DIR$/plugins/noarg/noarg-cli/noarg-cli.iml" filepath="$PROJECT_DIR$/plugins/noarg/noarg-cli/noarg-cli.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/noarg/noarg-ide/noarg-ide.iml" filepath="$PROJECT_DIR$/plugins/noarg/noarg-ide/noarg-ide.iml" />
<module fileurl="file://$PROJECT_DIR$/non-compiler-tests/non-compiler-tests.iml" filepath="$PROJECT_DIR$/non-compiler-tests/non-compiler-tests.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/plugin-api/plugin-api.iml" filepath="$PROJECT_DIR$/compiler/plugin-api/plugin-api.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/plugins/plugins-tests/plugins-tests.iml" filepath="$PROJECT_DIR$/plugins/plugins-tests/plugins-tests.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/compiler/preloader/preloader.iml" filepath="$PROJECT_DIR$/compiler/preloader/preloader.iml" group="compiler/cli" />
<module fileurl="file://$PROJECT_DIR$/core/reflection.jvm/reflection.jvm.iml" filepath="$PROJECT_DIR$/core/reflection.jvm/reflection.jvm.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/compiler/resolution/resolution.iml" filepath="$PROJECT_DIR$/compiler/resolution/resolution.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" filepath="$PROJECT_DIR$/core/runtime.jvm/runtime.jvm.iml" group="core" />
<module fileurl="file://$PROJECT_DIR$/compiler/serialization/serialization.iml" filepath="$PROJECT_DIR$/compiler/serialization/serialization.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/tests-common/tests-common.iml" filepath="$PROJECT_DIR$/compiler/tests-common/tests-common.iml" group="compiler" />
<module fileurl="file://$PROJECT_DIR$/compiler/util/util.iml" filepath="$PROJECT_DIR$/compiler/util/util.iml" />
<module fileurl="file://$PROJECT_DIR$/core/util.runtime/util.runtime.iml" filepath="$PROJECT_DIR$/core/util.runtime/util.runtime.iml" group="core" />
</modules>

View File

@@ -1,37 +1,8 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="All Compiler Tests" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="compiler-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Profile " />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<configuration default="false" name="All Compiler Tests" type="CompoundRunConfigurationType" factoryName="Compound Run Configuration">
<toRun type="JUnit" name="Compiler Tests" />
<toRun type="JUnit" name="Java 8 Tests" />
<toRun type="JUnit" name="Js-backend tests" />
<method />
</configuration>
</component>

View File

@@ -8,12 +8,12 @@
</extension>
<module name="idea" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1250m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -8,12 +8,12 @@
</extension>
<module name="compiler-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.codegen" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -0,0 +1,39 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="All Non Compiler Tests" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="non-compiler-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1100m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs>
<env name="NO_FS_ROOTS_ACCESS_CHECK" value="true" />
</envs>
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="53032" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Profile " />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
</component>

View File

@@ -1,39 +1,7 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="All Tests" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="generators" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="PACKAGE_NAME" value="" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=400m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=128m" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs>
<env name="NO_FS_ROOTS_ACCESS_CHECK" value="true" />
</envs>
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="53032" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Profile " />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<configuration default="false" name="All Tests" type="CompoundRunConfigurationType" factoryName="Compound Run Configuration">
<toRun type="CompoundRunConfigurationType" name="All Compiler Tests" />
<toRun type="JUnit" name="All Non Compiler Tests" />
<method />
</configuration>
</component>

View File

@@ -0,0 +1,26 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="All in jps-tests" type="JUnit" factoryName="JUnit" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="jps-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=64m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Profile ">
<option name="myExternalizedOptions" />
</RunnerSettings>
<method />
</configuration>
</component>

View File

@@ -2,11 +2,11 @@
<configuration default="false" name="Android Studio" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
<option name="VM_PARAMETERS" value="-Didea.paths.selector=AndroidStudioPreview -Didea.platform.prefix=AndroidStudio -Xmx800m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=450m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin,$PROJECT_DIR$/out/artifacts/KotlinAndroidExtensions" />
<option name="VM_PARAMETERS" value="-Didea.paths.selector=AndroidStudioPreview -Didea.platform.prefix=AndroidStudio -Xmx1250m -XX:ReservedCodeCacheSize=64m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin,$PROJECT_DIR$/out/artifacts/KotlinAndroidExtensions" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/android-studio/sdk/bin" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />

View File

@@ -2,13 +2,13 @@
<configuration default="false" name="Codegen Tests on Android" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="android-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="1.6" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.android.tests" />
<option name="MAIN_CLASS_NAME" value="org.jetbrains.kotlin.android.tests.AndroidRunner" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx512m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx850m -XX:+UseCodeCacheFlushing -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -0,0 +1,37 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Compiler Tests" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="org.jetbrains.kotlin.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="compiler-tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx700m -XX:MaxPermSize=300m -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />
<option name="LOCAL" value="true" />
</RunnerSettings>
<RunnerSettings RunnerId="Profile " />
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
</configuration>
</component>

View File

@@ -3,12 +3,12 @@
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="eval4j" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.eval4j.test" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="VM_PARAMETERS" value="-ea -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -11,7 +11,7 @@
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
@@ -26,6 +26,9 @@
<RunnerSettings RunnerId="Run" />
<ConfigurationWrapper RunnerId="Debug" />
<ConfigurationWrapper RunnerId="Run" />
<method />
<method>
<option name="Make" enabled="false" />
<option name="MakeNoErrorCheck" enabled="true" />
</method>
</configuration>
</component>

View File

@@ -2,7 +2,7 @@
<configuration default="false" name="IDEA" type="Application" factoryName="Application" singleton="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
<option name="VM_PARAMETERS" value="-Xmx800m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=450m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=64m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/ideaSDK/bin" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -43,7 +43,6 @@
<option name="BuildArtifacts" enabled="true">
<artifact name="KotlinPlugin" />
</option>
<option name="BuildArtifacts" enabled="true" />
<option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/idea-runner/runner.xml" target="force-enable-kotlin-plugin" />
</method>
</configuration>

View File

@@ -2,11 +2,11 @@
<configuration default="false" name="IDEA (No ProcessCanceledException)" type="Application" factoryName="Application" singleton="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
<option name="VM_PARAMETERS" value="-Xmx800m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=250m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Didea.ProcessCanceledException=disabled -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=64m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Didea.ProcessCanceledException=disabled -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/ideaSDK/bin" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />

View File

@@ -1,23 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="IDEA (win)" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
<option name="VM_PARAMETERS" value="-Xmx800m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=450m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=${JAVA_HOME}\lib\tools.jar,../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/ideaSDK/bin" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="1.7" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="idea-runner" />
<envs />
<method>
<option name="BuildArtifacts" enabled="true">
<artifact name="KotlinPlugin" />
</option>
<option name="BuildArtifacts" enabled="true" />
<option name="AntTarget" enabled="true" antfile="file://$PROJECT_DIR$/idea-runner/runner.xml" target="force-enable-kotlin-plugin" />
</method>
</configuration>
</component>

View File

@@ -8,21 +8,24 @@
</extension>
<module name="j2k" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx350m -XX:MaxPermSize=320m" />
<option name="TEST_OBJECT" value="pattern" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx700m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<patterns>
<pattern testClass="org.jetbrains.kotlin.idea.conversion.copy.*" />
<pattern testClass="org.jetbrains.kotlin.j2k.*" />
</patterns>
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="" />
<option name="TRANSPORT" value="0" />

View File

@@ -6,14 +6,14 @@
<option name="ENABLED" value="true" />
</pattern>
</extension>
<module name="java8-tests" />
<module name="compiler-tests-java8" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="ALTERNATIVE_JRE_PATH" value="1.8" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCodeCacheFlushing -XX:ReservedCodeCacheSize=64m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -3,12 +3,12 @@
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="js.tests" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.js.test" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx900m -XX:MaxPermSize=320m -XX:+UseCodeCacheFlushing" />
<option name="VM_PARAMETERS" value="-ea -XX:+HeapDumpOnOutOfMemoryError -Xmx1250m -XX:+UseCodeCacheFlushing -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -3,12 +3,12 @@
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="kannotator-jps-plugin-test" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.jps.build.kannotator" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="VM_PARAMETERS" value="-ea -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -8,12 +8,12 @@
</extension>
<module name="idea" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" value="org.jetbrains.kotlin.completion.handlers" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="pattern" />
<option name="VM_PARAMETERS" value="-ea -Xmx512m -XX:MaxPermSize=320m" />
<option name="VM_PARAMETERS" value="-ea -Xmx850m -Djna.nosys=true" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />

View File

@@ -2,11 +2,11 @@
<configuration default="false" name="Update-Dist-Run" type="Application" factoryName="Application" singleton="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" value="com.intellij.idea.Main" />
<option name="VM_PARAMETERS" value="-Xmx800m -XX:ReservedCodeCacheSize=64m -XX:MaxPermSize=450m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="VM_PARAMETERS" value="-Xmx1250m -XX:ReservedCodeCacheSize=64m -XX:+HeapDumpOnOutOfMemoryError -ea -Didea.is.internal=true -Didea.debug.mode=true -Didea.system.path=../system-idea -Didea.config.path=../config-idea -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.io.useCanonCaches=false -Dplugin.path=$PROJECT_DIR$/out/artifacts/Kotlin -Dkotlin.internal.mode.enabled=true -Didea.additional.classpath=../idea-kotlin-runtime/kotlin-runtime.jar,../idea-kotlin-runtime/kotlin-reflect.jar" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/ideaSDK/bin" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" value="" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />

2
.idea/scopes/IDE.xml generated
View File

@@ -1,3 +1,3 @@
<component name="DependencyValidationManager">
<scope name="IDE" pattern="file[idea]:*/||file[idea-analysis]:*/||file[ide-lazy-resolve]:*/" />
<scope name="IDE" pattern="file[idea]:src/*/||file[idea]:testData/*/||file[ide-common]:src/*/||file[idea-analysis]:src/*/||file[idea-android]:src/*/||file[idea-completion]:src/*/||file[idea-completion]:testData/*/||file[idea-core]:src/*/||file[idea-jps-common]:/*/||file[idea-live-templates]:/*/||file[idea-live-templates]:testData/*/||file[idea-repl]:/*/||src[idea-android-output-parser]:*..*" />
</component>

1604
ChangeLog.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -20,9 +20,9 @@ Welcome to [Kotlin](http://kotlinlang.org/)! Some handy links:
## Editing Kotlin
* [Kotlin IntelliJ IDEA Plugin](http://hadihariri.com/2012/02/17/the-kotlin-journey-part-i-getting-things-set-up/)
* [Kotlin IntelliJ IDEA Plugin](https://kotlinlang.org/docs/tutorials/getting-started.html)
* [Kotlin Eclipse Plugin](http://kotlinlang.org/docs/tutorials/getting-started-eclipse.html)
* [Kotlin TextMate Bundle](https://github.com/k33g/kotlin-textmate-bundle#readme)
* [Kotlin TextMate Bundle](https://github.com/vkostyukov/kotlin-sublime-package)
## Building

View File

@@ -11,17 +11,13 @@
<property name="plugin.xml" value="idea/src/META-INF/plugin.xml"/>
<property name="plugin.xml.bk" value="${version_substitute_dir}/plugin.xml.bk"/>
<property name="plugin.xml.versioned" value="${plugin.xml}.versioned"/>
<property name="plugin.xml.version.number" value="${build.number}"/>
<property name="compiler.version.java" value="compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/KotlinVersion.java"/>
<property name="compiler.version.java.bk" value="${version_substitute_dir}/KotlinVersion.java.bk"/>
<property name="compiler.version.java" value="core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java"/>
<property name="compiler.version.java.bk" value="${version_substitute_dir}/KotlinCompilerVersion.java.bk"/>
<property name="compiler.version.java.versioned" value="${compiler.version.java}.versioned"/>
<property name="plugin.zip" value="${artifact.output.path}/kotlin-plugin-${build.number}.zip"/>
<property name="bare.plugin.zip" value="${artifact.output.path}/kotlin-bare-plugin-${build.number}.zip"/>
<property name="android-extensions.zip" value="${artifact.output.path}/kotlin-android-extensions-plugin-${build.number}.zip"/>
<property name="kotlin.bare.plugin.xml" value="jps-plugin/bare-plugin/src/META-INF/plugin.xml"/>
<property name="kotlin.bare.plugin.xml.bk" value="${version_substitute_dir}/kotlin.bare.plugin.xml.bk"/>
<macrodef name="echoprop">
<attribute name="prop"/>
@@ -76,37 +72,35 @@
</sequential>
</macrodef>
<target name="writeVersionToTemplateFiles">
<target name="writeCompilerVersionToTemplateFile">
<mkdir dir="${version_substitute_dir}"/>
<substituteVersionInFile
target.file="${plugin.xml}"
target.file.bk="${plugin.xml.bk}"
target.file.versioned="${plugin.xml.versioned}"
test.string="&lt;version&gt;@snapshot@&lt;/version&gt;"/>
target.file="${compiler.version.java}"
target.file.bk="${compiler.version.java.bk}"
target.file.versioned="${compiler.version.java.versioned}"
test.string="public static final String VERSION = &quot;@snapshot@&quot;;"/>
</target>
<target name="writePluginVersionToTemplateFile">
<mkdir dir="${version_substitute_dir}"/>
<substituteVersionInFile
target.file="${compiler.version.java}"
target.file.bk="${compiler.version.java.bk}"
target.file.versioned="${compiler.version.java.versioned}"
test.string="public static final String VERSION = &quot;@snapshot@&quot;;"/>
<substituteVersionInFile
target.file="${kotlin.bare.plugin.xml}"
target.file.bk="${kotlin.bare.plugin.xml.bk}"
test.string="&lt;version&gt;@snapshot@&lt;/version&gt;"/>
</target>
target.file="${plugin.xml}"
target.file.bk="${plugin.xml.bk}"
target.file.versioned="${plugin.xml.versioned}"
test.string="&lt;version&gt;@snapshot@&lt;/version&gt;"
version="${plugin.xml.version.number}"/>
</target>
<target name="revertTemplateFiles">
<copy file="${plugin.xml.bk}" tofile="${plugin.xml}" overwrite="true"/>
<copy file="${compiler.version.java.bk}" tofile="${compiler.version.java}" overwrite="true"/>
<copy file="${kotlin.bare.plugin.xml.bk}" tofile="${kotlin.bare.plugin.xml}" overwrite="true"/>
<delete dir="${version_substitute_dir}" quiet="true"/>
</target>
<target name="pre_build" depends="writeVersionToTemplateFiles, cleanupArtifacts"/>
<target name="pre_build" depends="writeCompilerVersionToTemplateFile, writePluginVersionToTemplateFile, cleanupArtifacts"/>
<target name="zipArtifacts">
<macrodef name="zipPlugin">
@@ -126,11 +120,6 @@
</macrodef>
<zipPlugin filename="${plugin.zip}" dir="Kotlin"/>
<zipPlugin filename="${bare.plugin.zip}" dir="BareKotlin"/>
<zip destfile="${android-extensions.zip}">
<zipfileset prefix="META-INF" dir="${basedir}/plugins/android-idea-plugin/old_plugin" includes="plugin.xml" />
</zip>
</target>
<macrodef name="print-statistic">
@@ -158,11 +147,9 @@
<print-file-size-statistic path="${kotlin-home}/lib" file-name="kotlin-reflect.jar"/>
<print-file-size-statistic path="${kotlin-home}/lib" file-name="kotlin-jslib.jar"/>
<print-file-size-statistic path="${output}" file-name="kotlin.js"/>
<print-file-size-statistic path="${output}" file-name="builtins.js"/>
<print-file-size-statistic path="${output}" file-name="builtins.meta.js"/>
<print-file-size-statistic path="${output}" file-name="stdlib.js"/>
<print-file-size-statistic path="${output}" file-name="stdlib.meta.js"/>
<print-file-size-statistic path="${js.stdlib.output.dir}" file-name="kotlin.js"/>
<print-file-size-statistic path="${js.stdlib.output.dir}" file-name="${compiled.stdlib.meta.js}"/>
<print-file-size-statistic path="${js.stdlib.output.dir}" file-name="${compiled.stdlib.js}"/>
</target>
<target name="post_build" depends="zipArtifacts, revertTemplateFiles, printStatistics, remove_internal_artifacts, dont_remove_internal_artifacts"/>
@@ -175,14 +162,16 @@
<condition property="need.remove.artifacts" value="true">
<and>
<matches pattern="rr/.*" string="${teamcity.build.branch}"/>
<matches pattern="rri?/.*" string="${teamcity.build.branch}"/>
<not>
<matches pattern="rr/internal/.*" string="${teamcity.build.branch}"/>
<matches pattern="rri?/internal/.*" string="${teamcity.build.branch}"/>
</not>
</and>
</condition>
<target name="remove_internal_artifacts" description="Remove internal artifacts for rr/* branches, but store them for rr/internal/*" if="need.remove.artifacts">
<target name="remove_internal_artifacts"
description="Remove internal artifacts for rri?/* branches, but store them for rri?/internal/*"
if="need.remove.artifacts">
<echo message="Remove internal artifacts" />
<delete failonerror="false" verbose="true">

View File

@@ -82,13 +82,6 @@
plugin.subdir="Kotlin"
substituted.version="${relay.substitute.version}"/>
<substitudeVersionInPlugin
plugin.jar.name="kotlin-bare-plugin"
plugin.path="${relay.plugins.dir}/kotlin-bare-plugin-${relay.origin.version}.zip"
origin.version="${relay.origin.version}"
plugin.subdir="BareKotlin"
substituted.version="${relay.substitute.version}"/>
<substitudeVersionInPlugin
plugin.jar.name="kotlin-android-extensions"
plugin.path="${relay.plugins.dir}/kotlin-android-extensions-plugin-${relay.origin.version}.zip"

View File

@@ -3,10 +3,9 @@
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="RUNTIME" name="android-studio" level="project" />
<orderEntry type="module" module-name="idea" scope="PROVIDED" />
</component>
</module>
</module>

View File

@@ -9,6 +9,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="ant" level="project" />
<orderEntry type="library" name="kotlin-runtime" level="project" />
<orderEntry type="library" name="kotlin-reflect" level="project" />
<orderEntry type="module" module-name="preloader" />
</component>
</module>

View File

@@ -1,7 +0,0 @@
<!-- NOTE: this Antlib is deprecated. Use org/jetbrains/kotlin/ant/antlib.xml instead -->
<!-- TODO: delete this file -->
<antlib>
<taskdef name="kotlinc" classname="org.jetbrains.kotlin.ant.Kotlin2JvmTask"/>
<taskdef name="kotlin2js" classname="org.jetbrains.kotlin.ant.Kotlin2JsTask"/>
<typedef name="withKotlin" classname="org.jetbrains.kotlin.ant.KotlinCompilerAdapter"/>
</antlib>

View File

@@ -19,22 +19,23 @@ package org.jetbrains.kotlin.ant
import org.apache.tools.ant.types.Path
import java.io.File
public class Kotlin2JsTask : KotlinCompilerBaseTask() {
class Kotlin2JsTask : KotlinCompilerBaseTask() {
override val compilerFqName = "org.jetbrains.kotlin.cli.js.K2JSCompiler"
public var library: Path? = null
public var outputPrefix: File? = null
public var outputPostfix: File? = null
public var sourceMap: Boolean = false
public var metaInfo: Boolean = false
var library: Path? = null
var outputPrefix: File? = null
var outputPostfix: File? = null
var sourceMap: Boolean = false
var metaInfo: Boolean = false
var moduleKind: String = "plain"
/**
* {@link K2JsArgumentConstants.CALL} (default) if need generate a main function call (main function will be auto detected)
* {@link K2JsArgumentConstants.NO_CALL} otherwise.
*/
public var main: String? = null
var main: String? = null
public fun createLibrary(): Path {
fun createLibrary(): Path {
val libraryPath = library
if (libraryPath == null) {
val t = Path(getProject())
@@ -73,5 +74,7 @@ public class Kotlin2JsTask : KotlinCompilerBaseTask() {
if (noStdlib) args.add("-no-stdlib")
if (sourceMap) args.add("-source-map")
if (metaInfo) args.add("-meta-info")
args += listOf("-module-kind", moduleKind)
}
}

View File

@@ -20,15 +20,17 @@ import org.apache.tools.ant.types.Path
import org.apache.tools.ant.types.Reference
import java.io.File.pathSeparator
public class Kotlin2JvmTask : KotlinCompilerBaseTask() {
class Kotlin2JvmTask : KotlinCompilerBaseTask() {
override val compilerFqName = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler"
public var includeRuntime: Boolean = true
public var moduleName: String? = null
var includeRuntime: Boolean = true
var moduleName: String? = null
var noReflect: Boolean = false
private var compileClasspath: Path? = null
public fun setClasspath(classpath: Path) {
fun setClasspath(classpath: Path) {
if (compileClasspath == null) {
compileClasspath = classpath
}
@@ -37,14 +39,14 @@ public class Kotlin2JvmTask : KotlinCompilerBaseTask() {
}
}
public fun setClasspathRef(ref: Reference) {
fun setClasspathRef(ref: Reference) {
if (compileClasspath == null) {
compileClasspath = Path(getProject())
}
compileClasspath!!.createPath().setRefid(ref)
compileClasspath!!.createPath().refid = ref
}
public fun addConfiguredClasspath(classpath: Path) {
fun addConfiguredClasspath(classpath: Path) {
setClasspath(classpath)
}
@@ -68,6 +70,7 @@ public class Kotlin2JvmTask : KotlinCompilerBaseTask() {
}
if (noStdlib) args.add("-no-stdlib")
if (noReflect) args.add("-no-reflect")
if (includeRuntime) args.add("-include-runtime")
}
}

View File

@@ -24,32 +24,29 @@ import java.io.File
import java.lang.ref.SoftReference
import java.net.JarURLConnection
object KotlinAntTaskUtil {
internal object KotlinAntTaskUtil {
private var classLoaderRef = SoftReference<ClassLoader?>(null)
private val libPath: File by lazy {
// Find path of kotlin-ant.jar in the filesystem and find kotlin-compiler.jar in the same directory
val resourcePath = "/" + javaClass.getName().replace('.', '/') + ".class"
val resourcePath = "/" + javaClass.name.replace('.', '/') + ".class"
val jarConnection = javaClass.getResource(resourcePath).openConnection() as? JarURLConnection
?: throw UnsupportedOperationException("Kotlin compiler Ant task should be loaded from the JAR file")
val antTaskJarPath = File(jarConnection.getJarFileURL().toURI())
val antTaskJarPath = File(jarConnection.jarFileURL.toURI())
antTaskJarPath.getParentFile()
antTaskJarPath.parentFile
}
val compilerJar: File by lazy {
File(libPath, "kotlin-compiler.jar").assertExists()
}
val compilerJar: File by jar("kotlin-compiler.jar")
val runtimeJar: File by jar("kotlin-runtime.jar")
val reflectJar: File by jar("kotlin-reflect.jar")
val runtimeJar: File by lazy {
File(libPath, "kotlin-runtime.jar").assertExists()
}
private fun File.assertExists(): File {
if (!this.exists()) {
throw IllegalStateException("${getName()} is not found in the directory of Kotlin Ant task")
private fun jar(name: String) = lazy {
File(libPath, name).apply {
if (!exists()) {
throw IllegalStateException("File is not found in the directory of Kotlin Ant task: $name")
}
}
return this
}
@Synchronized
@@ -65,8 +62,7 @@ object KotlinAntTaskUtil {
return classLoader
}
}
public val Task.defaultModuleName: String?
get() = owningTarget?.name ?: project?.name
internal val Task.defaultModuleName: String?
get() = owningTarget?.name ?: project?.name

View File

@@ -31,6 +31,7 @@ class KotlinCompilerAdapter : Javac13() {
var additionalArguments: MutableList<Commandline.Argument> = ArrayList(0)
@Suppress("unused") // Used via reflection by Ant
fun createCompilerArg(): Commandline.Argument {
val argument = Commandline.Argument()
additionalArguments.add(argument)
@@ -70,7 +71,7 @@ class KotlinCompilerAdapter : Javac13() {
// Javac13#execute passes everything in compileList to javac, which doesn't recognize .kt files
val compileListForJavac = filterOutKotlinSources(compileList)
val hasKotlinFilesInSources = compileListForJavac.size() < compileList.size()
val hasKotlinFilesInSources = compileListForJavac.size < compileList.size
if (hasKotlinFilesInSources) {
kotlinc.execute()
@@ -94,15 +95,22 @@ class KotlinCompilerAdapter : Javac13() {
}
private fun addRuntimeToJavacClasspath(kotlinc: Kotlin2JvmTask) {
for (arg in kotlinc.args) {
// If "-no-stdlib" was specified explicitly, probably the user also wanted the javac classpath to not have it
if ("-no-stdlib" == arg) return
}
// If "-no-stdlib" (or "-no-reflect") was specified explicitly, probably the user also wanted the javac classpath to not have it
val addStdlib = "-no-stdlib" !in kotlinc.args
val addReflect = "-no-reflect" !in kotlinc.args
if (!addStdlib && !addReflect) return
if (compileClasspath == null) {
compileClasspath = Path(getProject())
}
compileClasspath.add(Path(getProject(), KotlinAntTaskUtil.runtimeJar.absolutePath))
if (addStdlib) {
compileClasspath.add(Path(getProject(), KotlinAntTaskUtil.runtimeJar.absolutePath))
}
// "-no-stdlib" implies "-no-reflect", see K2JVMCompiler.Companion.getClasspath
if (addReflect && addStdlib) {
compileClasspath.add(Path(getProject(), KotlinAntTaskUtil.reflectJar.absolutePath))
}
}
private fun checkAntVersion() {

View File

@@ -24,25 +24,25 @@ import org.apache.tools.ant.types.Reference
import java.io.File
import java.io.PrintStream
public abstract class KotlinCompilerBaseTask : Task() {
abstract class KotlinCompilerBaseTask : Task() {
protected abstract val compilerFqName: String
public val args: MutableList<String> = arrayListOf()
val args: MutableList<String> = arrayListOf()
public var src: Path? = null
public var output: File? = null
public var nowarn: Boolean = false
public var verbose: Boolean = false
public var printVersion: Boolean = false
public var failOnError: Boolean = true
var src: Path? = null
var output: File? = null
var nowarn: Boolean = false
var verbose: Boolean = false
var printVersion: Boolean = false
var failOnError: Boolean = true
public var noStdlib: Boolean = false
var noStdlib: Boolean = false
public val additionalArguments: MutableList<Commandline.Argument> = arrayListOf()
val additionalArguments: MutableList<Commandline.Argument> = arrayListOf()
public var exitCode: Int? = null
var exitCode: Int? = null
public fun createSrc(): Path {
fun createSrc(): Path {
val srcPath = src
if (srcPath == null) {
val t = Path(getProject())
@@ -53,11 +53,11 @@ public abstract class KotlinCompilerBaseTask : Task() {
return srcPath.createPath()
}
public fun setSrcRef(ref: Reference) {
createSrc().setRefid(ref)
fun setSrcRef(ref: Reference) {
createSrc().refid = ref
}
public fun createCompilerArg(): Commandline.Argument {
fun createCompilerArg(): Commandline.Argument {
val argument = Commandline.Argument()
additionalArguments.add(argument)
return argument
@@ -65,7 +65,7 @@ public abstract class KotlinCompilerBaseTask : Task() {
abstract fun fillSpecificArguments()
public fun fillArguments() {
fun fillArguments() {
val sourcePaths = src ?: throw BuildException("\"src\" should be specified")
args.addAll(sourcePaths.list().map { File(it).canonicalPath })
@@ -75,7 +75,7 @@ public abstract class KotlinCompilerBaseTask : Task() {
if (verbose) args.add("-verbose")
if (printVersion) args.add("-version")
args.addAll(additionalArguments.flatMap { it.getParts().toList() })
args.addAll(additionalArguments.flatMap { it.parts.toList() })
fillSpecificArguments()
}
@@ -85,12 +85,12 @@ public abstract class KotlinCompilerBaseTask : Task() {
val compilerClass = KotlinAntTaskUtil.getOrCreateClassLoader().loadClass(compilerFqName)
val compiler = compilerClass.newInstance()
val exec = compilerClass.getMethod("execFullPathsInMessages", javaClass<PrintStream>(), javaClass<Array<String>>())
val exec = compilerClass.getMethod("execFullPathsInMessages", PrintStream::class.java, Array<String>::class.java)
log("Compiling ${src!!.list().toList()} => [${output!!.canonicalPath}]");
val result = exec(compiler, System.err, args.toTypedArray())
exitCode = (result as Enum<*>).ordinal()
exitCode = (result as Enum<*>).ordinal
if (failOnError && exitCode != 0) {
throw BuildException("Compile failed; see the compiler error output for details.")

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="frontend.java" />
<orderEntry type="module" module-name="util.runtime" />
<orderEntry type="module" module-name="cli-common" />
<orderEntry type="module" module-name="util" />
<orderEntry type="module" module-name="tests-common" scope="TEST" />
<orderEntry type="library" scope="TEST" name="idea-full" level="project" />
</component>
</module>

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.build
package org.jetbrains.kotlin.build
import java.io.File

View File

@@ -0,0 +1,40 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.build
import org.jetbrains.kotlin.incremental.LocalFileKotlinClass
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
import org.jetbrains.kotlin.utils.sure
import java.io.File
open class GeneratedFile<Target>(
val target: Target,
val sourceFiles: Collection<File>,
val outputFile: File
)
class GeneratedJvmClass<Target> (
target: Target,
sourceFiles: Collection<File>,
outputFile: File
) : GeneratedFile<Target>(target, sourceFiles, outputFile) {
val outputClass = LocalFileKotlinClass.create(outputFile).sure {
"Couldn't load KotlinClass from $outputFile; it may happen because class doesn't have valid Kotlin annotations"
}
}
fun File.isModuleMappingFile() = extension == ModuleMapping.MAPPING_FILE_EXT && parentFile.name == "META-INF"

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@@ -0,0 +1,114 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion
import org.jetbrains.kotlin.load.kotlin.JvmMetadataVersion
import java.io.File
private val NORMAL_VERSION = 8
private val EXPERIMENTAL_VERSION = 4
private val DATA_CONTAINER_VERSION = 1
private val NORMAL_VERSION_FILE_NAME = "format-version.txt"
private val EXPERIMENTAL_VERSION_FILE_NAME = "experimental-format-version.txt"
private val DATA_CONTAINER_VERSION_FILE_NAME = "data-container-format-version.txt"
class CacheVersion(
private val ownVersion: Int,
private val versionFile: File,
private val whenVersionChanged: CacheVersion.Action,
private val whenTurnedOn: CacheVersion.Action,
private val whenTurnedOff: CacheVersion.Action,
isEnabled: ()->Boolean
) {
private val isEnabled by lazy(isEnabled)
private val actualVersion: Int
get() = versionFile.readText().toInt()
private val expectedVersion: Int
get() {
val metadata = JvmMetadataVersion.INSTANCE
val bytecode = JvmBytecodeBinaryVersion.INSTANCE
return ownVersion * 1000000 +
bytecode.major * 10000 + bytecode.minor * 100 +
metadata.major * 1000 + metadata.minor
}
fun checkVersion(): Action =
when (versionFile.exists() to isEnabled) {
true to true -> if (actualVersion != expectedVersion) whenVersionChanged else Action.DO_NOTHING
false to true -> whenTurnedOn
true to false -> whenTurnedOff
else -> Action.DO_NOTHING
}
fun saveIfNeeded() {
if (!isEnabled) return
if (!versionFile.parentFile.exists()) {
versionFile.parentFile.mkdirs()
}
versionFile.writeText(expectedVersion.toString())
}
fun clean() {
versionFile.delete()
}
@get:TestOnly
val formatVersionFile: File
get() = versionFile
// Order of entries is important, because actions are sorted in KotlinBuilder::checkVersions
enum class Action {
REBUILD_ALL_KOTLIN,
REBUILD_CHUNK,
CLEAN_NORMAL_CACHES,
CLEAN_EXPERIMENTAL_CACHES,
CLEAN_DATA_CONTAINER,
DO_NOTHING
}
}
fun normalCacheVersion(dataRoot: File): CacheVersion =
CacheVersion(ownVersion = NORMAL_VERSION,
versionFile = File(dataRoot, NORMAL_VERSION_FILE_NAME),
whenVersionChanged = CacheVersion.Action.REBUILD_CHUNK,
whenTurnedOn = CacheVersion.Action.REBUILD_CHUNK,
whenTurnedOff = CacheVersion.Action.CLEAN_NORMAL_CACHES,
isEnabled = { IncrementalCompilation.isEnabled() })
fun experimentalCacheVersion(dataRoot: File): CacheVersion =
CacheVersion(ownVersion = EXPERIMENTAL_VERSION,
versionFile = File(dataRoot, EXPERIMENTAL_VERSION_FILE_NAME),
whenVersionChanged = CacheVersion.Action.REBUILD_CHUNK,
whenTurnedOn = CacheVersion.Action.REBUILD_CHUNK,
whenTurnedOff = CacheVersion.Action.CLEAN_EXPERIMENTAL_CACHES,
isEnabled = { IncrementalCompilation.isExperimental() })
fun dataContainerCacheVersion(dataRoot: File): CacheVersion =
CacheVersion(ownVersion = DATA_CONTAINER_VERSION,
versionFile = File(dataRoot, DATA_CONTAINER_VERSION_FILE_NAME),
whenVersionChanged = CacheVersion.Action.REBUILD_ALL_KOTLIN,
whenTurnedOn = CacheVersion.Action.REBUILD_ALL_KOTLIN,
whenTurnedOff = CacheVersion.Action.CLEAN_DATA_CONTAINER,
isEnabled = { IncrementalCompilation.isExperimental() })

View File

@@ -0,0 +1,34 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.cli.common.ExitCode
import java.io.File
abstract class IncReporter {
abstract fun report(message: ()->String)
// used in Gradle plugin
@Suppress("unused")
open fun reportCompileIteration(sourceFiles: Iterable<File>, exitCode: ExitCode) {}
open fun pathsAsString(files: Iterable<File>): String =
files.map { it.canonicalPath }.joinToString()
fun pathsAsString(vararg files: File): String =
pathsAsString(files.toList())
}

View File

@@ -0,0 +1,835 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName
import com.intellij.util.SmartList
import com.intellij.util.io.BooleanDataDescriptor
import com.intellij.util.io.EnumeratorStringDescriptor
import gnu.trove.THashSet
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.build.GeneratedJvmClass
import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.incremental.ChangeInfo.MembersChanged
import org.jetbrains.kotlin.incremental.ChangeInfo.Removed
import org.jetbrains.kotlin.incremental.storage.*
import org.jetbrains.kotlin.inline.inlineFunctionsJvmNames
import org.jetbrains.kotlin.load.kotlin.ModuleMapping
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.JvmPackagePartProto
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.protobuf.MessageLite
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
import org.jetbrains.kotlin.serialization.Flags
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.deserialization.TypeTable
import org.jetbrains.kotlin.serialization.deserialization.supertypes
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
import org.jetbrains.kotlin.utils.singletonOrEmptyList
import org.jetbrains.org.objectweb.asm.*
import java.io.File
import java.security.MessageDigest
import java.util.*
val KOTLIN_CACHE_DIRECTORY_NAME = "kotlin"
open class IncrementalCacheImpl<Target>(
private val targetDataRoot: File,
targetOutputDir: File?,
target: Target
) : BasicMapsOwner(), IncrementalCache {
companion object {
private val PROTO_MAP = "proto"
private val CONSTANTS_MAP = "constants"
private val PACKAGE_PARTS = "package-parts"
private val MULTIFILE_CLASS_FACADES = "multifile-class-facades"
private val MULTIFILE_CLASS_PARTS = "multifile-class-parts"
private val SOURCE_TO_CLASSES = "source-to-classes"
private val DIRTY_OUTPUT_CLASSES = "dirty-output-classes"
private val INLINE_FUNCTIONS = "inline-functions"
private val SUBTYPES = "subtypes"
private val SUPERTYPES = "supertypes"
private val CLASS_FQ_NAME_TO_SOURCE = "class-fq-name-to-source"
private val INTERNAL_NAME_TO_SOURCE = "internal-name-to-source"
private val MODULE_MAPPING_FILE_NAME = "." + ModuleMapping.MAPPING_FILE_EXT
}
private val baseDir = File(targetDataRoot, KOTLIN_CACHE_DIRECTORY_NAME)
private val experimentalMaps = arrayListOf<BasicMap<*, *>>()
private fun <K, V, M : BasicMap<K, V>> registerExperimentalMap(map: M): M {
experimentalMaps.add(map)
return registerMap(map)
}
protected val String.storageFile: File
get() = File(baseDir, this + "." + CACHE_EXTENSION)
private val protoMap = registerMap(ProtoMap(PROTO_MAP.storageFile))
private val constantsMap = registerMap(ConstantsMap(CONSTANTS_MAP.storageFile))
private val packagePartMap = registerMap(PackagePartMap(PACKAGE_PARTS.storageFile))
private val multifileFacadeToParts = registerMap(MultifileClassFacadeMap(MULTIFILE_CLASS_FACADES.storageFile))
private val partToMultifileFacade = registerMap(MultifileClassPartMap(MULTIFILE_CLASS_PARTS.storageFile))
private val sourceToClassesMap = registerMap(SourceToClassesMap(SOURCE_TO_CLASSES.storageFile))
private val dirtyOutputClassesMap = registerMap(DirtyOutputClassesMap(DIRTY_OUTPUT_CLASSES.storageFile))
private val inlineFunctionsMap = registerMap(InlineFunctionsMap(INLINE_FUNCTIONS.storageFile))
private val subtypesMap = registerExperimentalMap(SubtypesMap(SUBTYPES.storageFile))
private val supertypesMap = registerExperimentalMap(SupertypesMap(SUPERTYPES.storageFile))
private val classFqNameToSourceMap = registerExperimentalMap(ClassFqNameToSourceMap(CLASS_FQ_NAME_TO_SOURCE.storageFile))
// todo: try to use internal names only?
private val internalNameToSource = registerExperimentalMap(InternalNameToSourcesMap(INTERNAL_NAME_TO_SOURCE.storageFile))
private val dependents = arrayListOf<IncrementalCacheImpl<Target>>()
private val outputDir by lazy(LazyThreadSafetyMode.NONE) { requireNotNull(targetOutputDir) { "Target is expected to have output directory: $target" } }
val thisWithDependentCaches: Iterable<IncrementalCacheImpl<Target>> by lazy {
val result = arrayListOf(this)
result.addAll(dependents)
result
}
override fun registerInline(fromPath: String, jvmSignature: String, toPath: String) {
}
protected open fun debugLog(message: String) {}
fun addDependentCache(cache: IncrementalCacheImpl<Target>) {
dependents.add(cache)
}
fun markOutputClassesDirty(removedAndCompiledSources: List<File>) {
for (sourceFile in removedAndCompiledSources) {
val classes = sourceToClassesMap[sourceFile]
classes.forEach {
dirtyOutputClassesMap.markDirty(it.internalName)
}
sourceToClassesMap.clearOutputsForSource(sourceFile)
}
}
// used in gradle
@Suppress("unused")
fun classesBySources(sources: Iterable<File>): Iterable<JvmClassName> =
sources.flatMap { sourceToClassesMap[it] }
fun getSubtypesOf(className: FqName): Sequence<FqName> =
subtypesMap[className].asSequence()
fun getSourceFileIfClass(fqName: FqName): File? =
classFqNameToSourceMap[fqName]
fun sourcesByInternalName(internalName: String): Collection<File> =
internalNameToSource[internalName]
fun isMultifileFacade(className: JvmClassName): Boolean =
className.internalName in multifileFacadeToParts
override fun getClassFilePath(internalClassName: String): String {
return toSystemIndependentName(File(outputDir, "$internalClassName.class").canonicalPath)
}
fun saveModuleMappingToCache(sourceFiles: Collection<File>, file: File): CompilationResult {
val jvmClassName = JvmClassName.byInternalName(MODULE_MAPPING_FILE_NAME)
protoMap.process(jvmClassName, file.readBytes(), emptyArray<String>(), isPackage = false, checkChangesIsOpenPart = false)
dirtyOutputClassesMap.notDirty(MODULE_MAPPING_FILE_NAME)
sourceFiles.forEach { sourceToClassesMap.add(it, jvmClassName) }
return CompilationResult.NO_CHANGES
}
open fun saveFileToCache(generatedClass: GeneratedJvmClass<Target>): CompilationResult {
val sourceFiles: Collection<File> = generatedClass.sourceFiles
val kotlinClass: LocalFileKotlinClass = generatedClass.outputClass
val className = kotlinClass.className
dirtyOutputClassesMap.notDirty(className.internalName)
sourceFiles.forEach {
sourceToClassesMap.add(it, className)
}
if (IncrementalCompilation.isExperimental()) {
internalNameToSource[className.internalName] = sourceFiles
}
if (kotlinClass.classId.isLocal) {
return CompilationResult.NO_CHANGES
}
val header = kotlinClass.classHeader
val changesInfo = when (header.kind) {
KotlinClassHeader.Kind.FILE_FACADE -> {
assert(sourceFiles.size == 1) { "Package part from several source files: $sourceFiles" }
packagePartMap.addPackagePart(className)
protoMap.process(kotlinClass, isPackage = true) +
constantsMap.process(kotlinClass, isPackage = true) +
inlineFunctionsMap.process(kotlinClass, isPackage = true)
}
KotlinClassHeader.Kind.MULTIFILE_CLASS -> {
val partNames = kotlinClass.classHeader.data?.toList()
?: throw AssertionError("Multifile class has no parts: ${kotlinClass.className}")
multifileFacadeToParts[className] = partNames
// When a class is replaced with a facade with the same name,
// the class' proto wouldn't ever be deleted,
// because we don't write proto for multifile facades.
// As a workaround we can remove proto values for multifile facades.
val additionalChangeInfo = if (className in protoMap) {
val info = ChangeInfo.SignatureChanged(className.fqNameForClassNameWithoutDollars, areSubclassesAffected = true)
CompilationResult(protoChanged = true, changes = sequenceOf(info))
}
else CompilationResult.NO_CHANGES
protoMap.remove(className)
classFqNameToSourceMap.remove(className.fqNameForClassNameWithoutDollars)
internalNameToSource.remove(className.internalName)
// TODO NO_CHANGES? (delegates only)
constantsMap.process(kotlinClass, isPackage = true) +
inlineFunctionsMap.process(kotlinClass, isPackage = true) +
additionalChangeInfo
}
KotlinClassHeader.Kind.MULTIFILE_CLASS_PART -> {
assert(sourceFiles.size == 1) { "Multifile class part from several source files: $sourceFiles" }
packagePartMap.addPackagePart(className)
partToMultifileFacade.set(className.internalName, header.multifileClassName!!)
protoMap.process(kotlinClass, isPackage = true) +
constantsMap.process(kotlinClass, isPackage = true) +
inlineFunctionsMap.process(kotlinClass, isPackage = true)
}
KotlinClassHeader.Kind.CLASS -> {
assert(sourceFiles.size == 1) { "Class is expected to have only one source file: $sourceFiles" }
addToClassStorage(kotlinClass, sourceFiles.first())
protoMap.process(kotlinClass, isPackage = false) +
constantsMap.process(kotlinClass, isPackage = false) +
inlineFunctionsMap.process(kotlinClass, isPackage = false)
}
else -> CompilationResult.NO_CHANGES
}
changesInfo.logIfSomethingChanged(className)
return changesInfo
}
private fun CompilationResult.logIfSomethingChanged(className: JvmClassName) {
if (this == CompilationResult.NO_CHANGES) return
debugLog("$className is changed: $this")
}
private fun computeChanges(className: JvmClassName, createChangeInfo: (FqName, Collection<String>) -> ChangeInfo): List<ChangeInfo> {
fun <T> T.getNonPrivateNames(nameResolver: NameResolver, vararg members: T.() -> List<MessageLite>): Set<String> =
members.flatMap { this.it().filterNot { it.isPrivate }.names(nameResolver) }.toSet()
if (className.internalName == MODULE_MAPPING_FILE_NAME) return emptyList()
val mapValue = protoMap[className] ?: return emptyList()
return when {
mapValue.isPackageFacade -> {
val packageData = JvmProtoBufUtil.readPackageDataFrom(mapValue.bytes, mapValue.strings)
val memberNames =
packageData.packageProto.getNonPrivateNames(
packageData.nameResolver,
ProtoBuf.Package::getFunctionList,
ProtoBuf.Package::getPropertyList
)
listOf(createChangeInfo(className.packageFqName, memberNames))
}
else -> {
val classData = JvmProtoBufUtil.readClassDataFrom(mapValue.bytes, mapValue.strings)
val classFqName = className.fqNameForClassNameWithoutDollars
val kind = Flags.CLASS_KIND.get(classData.classProto.flags)
if (kind == ProtoBuf.Class.Kind.COMPANION_OBJECT) {
val memberNames =
classData.classProto.getNonPrivateNames(
classData.nameResolver,
ProtoBuf.Class::getConstructorList,
ProtoBuf.Class::getFunctionList,
ProtoBuf.Class::getPropertyList
) + classData.classProto.enumEntryList.map { classData.nameResolver.getString(it.name) }
val companionObjectChanged = createChangeInfo(classFqName.parent(), classFqName.shortName().asString().singletonOrEmptyList())
val companionObjectMembersChanged = createChangeInfo(classFqName, memberNames)
listOf(companionObjectMembersChanged, companionObjectChanged)
}
else {
listOf(ChangeInfo.SignatureChanged(classFqName, areSubclassesAffected = true))
}
}
}
}
fun clearCacheForRemovedClasses(): CompilationResult {
val dirtyClasses = dirtyOutputClassesMap
.getDirtyOutputClasses()
.map(JvmClassName::byInternalName)
.toList()
val changes =
if (IncrementalCompilation.isExperimental())
dirtyClasses.flatMap { computeChanges(it, ::Removed) }.asSequence()
else
emptySequence<ChangeInfo>()
val changesInfo = dirtyClasses.fold(CompilationResult(changes = changes)) { info, className ->
val newInfo = CompilationResult(protoChanged = className in protoMap,
constantsChanged = className in constantsMap)
newInfo.logIfSomethingChanged(className)
info + newInfo
}
val facadesWithRemovedParts = hashMapOf<JvmClassName, MutableSet<String>>()
for (dirtyClass in dirtyClasses) {
val facade = partToMultifileFacade.get(dirtyClass.internalName) ?: continue
val facadeClassName = JvmClassName.byInternalName(facade)
val removedParts = facadesWithRemovedParts.getOrPut(facadeClassName) { hashSetOf() }
removedParts.add(dirtyClass.internalName)
}
for ((facade, removedParts) in facadesWithRemovedParts.entries) {
val allParts = multifileFacadeToParts[facade.internalName] ?: continue
val notRemovedParts = allParts.filter { it !in removedParts }
if (notRemovedParts.isEmpty()) {
multifileFacadeToParts.remove(facade)
}
else {
multifileFacadeToParts[facade] = notRemovedParts
}
}
dirtyClasses.forEach {
protoMap.remove(it)
packagePartMap.remove(it)
multifileFacadeToParts.remove(it)
partToMultifileFacade.remove(it)
constantsMap.remove(it)
inlineFunctionsMap.remove(it)
internalNameToSource.remove(it.internalName)
}
removeAllFromClassStorage(dirtyClasses)
dirtyOutputClassesMap.clean()
return changesInfo
}
override fun getObsoletePackageParts(): Collection<String> {
val obsoletePackageParts =
dirtyOutputClassesMap.getDirtyOutputClasses().filter { packagePartMap.isPackagePart(JvmClassName.byInternalName(it)) }
debugLog("Obsolete package parts: $obsoletePackageParts")
return obsoletePackageParts
}
override fun getPackagePartData(partInternalName: String): JvmPackagePartProto? {
return protoMap[JvmClassName.byInternalName(partInternalName)]?.let { value ->
JvmPackagePartProto(value.bytes, value.strings)
}
}
override fun getObsoleteMultifileClasses(): Collection<String> {
val obsoleteMultifileClasses = linkedSetOf<String>()
for (dirtyClass in dirtyOutputClassesMap.getDirtyOutputClasses()) {
val dirtyFacade = partToMultifileFacade.get(dirtyClass) ?: continue
obsoleteMultifileClasses.add(dirtyFacade)
}
debugLog("Obsolete multifile class facades: $obsoleteMultifileClasses")
return obsoleteMultifileClasses
}
override fun getStableMultifileFacadeParts(facadeInternalName: String): Collection<String>? {
val partNames = multifileFacadeToParts.get(facadeInternalName) ?: return null
return partNames.filter { !dirtyOutputClassesMap.isDirty(it) }
}
override fun getModuleMappingData(): ByteArray? {
return protoMap[JvmClassName.byInternalName(MODULE_MAPPING_FILE_NAME)]?.bytes
}
override fun clean() {
super.clean()
normalCacheVersion(targetDataRoot).clean()
experimentalCacheVersion(targetDataRoot).clean()
}
fun cleanExperimental() {
experimentalCacheVersion(targetDataRoot).clean()
experimentalMaps.forEach { it.clean() }
}
private inner class ProtoMap(storageFile: File) : BasicStringMap<ProtoMapValue>(storageFile, ProtoMapValueExternalizer) {
fun process(kotlinClass: LocalFileKotlinClass, isPackage: Boolean): CompilationResult {
val header = kotlinClass.classHeader
val bytes = BitEncoding.decodeBytes(header.data!!)
return put(kotlinClass.className, bytes, header.strings!!, isPackage, checkChangesIsOpenPart = true)
}
fun process(className: JvmClassName, data: ByteArray, strings: Array<String>, isPackage: Boolean, checkChangesIsOpenPart: Boolean): CompilationResult {
return put(className, data, strings, isPackage, checkChangesIsOpenPart)
}
private fun put(
className: JvmClassName, bytes: ByteArray, strings: Array<String>, isPackage: Boolean, checkChangesIsOpenPart: Boolean
): CompilationResult {
val key = className.internalName
val oldData = storage[key]
val data = ProtoMapValue(isPackage, bytes, strings)
if (oldData == null ||
!Arrays.equals(bytes, oldData.bytes) ||
!Arrays.equals(strings, oldData.strings) ||
isPackage != oldData.isPackageFacade
) {
storage[key] = data
}
if (!checkChangesIsOpenPart) return CompilationResult(protoChanged = true)
if (oldData == null) {
val changes =
if (IncrementalCompilation.isExperimental())
computeChanges(className, ::MembersChanged).asSequence()
else
emptySequence<ChangeInfo>()
return CompilationResult(protoChanged = true, changes = changes)
}
val difference = difference(oldData, data)
val fqName = if (isPackage) className.packageFqName else className.fqNameForClassNameWithoutDollars
val changeList = SmartList<ChangeInfo>()
if (difference.isClassAffected) {
changeList.add(ChangeInfo.SignatureChanged(fqName, difference.areSubclassesAffected))
}
if (difference.changedMembersNames.isNotEmpty()) {
changeList.add(ChangeInfo.MembersChanged(fqName, difference.changedMembersNames))
}
return CompilationResult(protoChanged = changeList.isNotEmpty(), changes = changeList.asSequence())
}
operator fun contains(className: JvmClassName): Boolean =
className.internalName in storage
operator fun get(className: JvmClassName): ProtoMapValue? =
storage[className.internalName]
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
override fun dumpValue(value: ProtoMapValue): String {
return (if (value.isPackageFacade) "1" else "0") + java.lang.Long.toHexString(value.bytes.md5())
}
}
private inner class ConstantsMap(storageFile: File) : BasicStringMap<Map<String, Any>>(storageFile, ConstantsMapExternalizer) {
private fun getConstantsMap(bytes: ByteArray): Map<String, Any>? {
val result = HashMap<String, Any>()
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) {
override fun visitField(access: Int, name: String, desc: String, signature: String?, value: Any?): FieldVisitor? {
val staticFinal = Opcodes.ACC_STATIC or Opcodes.ACC_FINAL or Opcodes.ACC_PRIVATE
if (value != null && access and staticFinal == Opcodes.ACC_STATIC or Opcodes.ACC_FINAL) {
result[name] = value
}
return null
}
}, ClassReader.SKIP_CODE or ClassReader.SKIP_DEBUG or ClassReader.SKIP_FRAMES)
return if (result.isEmpty()) null else result
}
operator fun contains(className: JvmClassName): Boolean =
className.internalName in storage
fun process(kotlinClass: LocalFileKotlinClass, isPackage: Boolean): CompilationResult {
return put(kotlinClass.className, getConstantsMap(kotlinClass.fileContents), isPackage)
}
private fun put(className: JvmClassName, constantsMap: Map<String, Any>?, isPackage: Boolean): CompilationResult {
val key = className.internalName
val oldMap = storage[key]
if (oldMap == constantsMap) return CompilationResult.NO_CHANGES
if (constantsMap != null) {
storage[key] = constantsMap
}
else {
remove(className)
}
val changes =
if (!IncrementalCompilation.isExperimental() ||
constantsMap == null || constantsMap.isEmpty() ||
oldMap == null || oldMap.isEmpty()
) {
emptySequence<ChangeInfo>()
}
else {
// we need only changed constants everything other should be covered by diff
val changedNames = oldMap.filter { constantsMap.containsKey(it.key) && constantsMap[it.key] != it.value }.map { it.key }
val fqName = if (isPackage) className.packageFqName else className.fqNameForClassNameWithoutDollars
sequenceOf(ChangeInfo.MembersChanged(fqName, changedNames))
}
return CompilationResult(constantsChanged = true, changes = changes)
}
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
override fun dumpValue(value: Map<String, Any>): String =
value.dumpMap(Any::toString)
}
private inner class PackagePartMap(storageFile: File) : BasicStringMap<Boolean>(storageFile, BooleanDataDescriptor.INSTANCE) {
fun addPackagePart(className: JvmClassName) {
storage[className.internalName] = true
}
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
fun isPackagePart(className: JvmClassName): Boolean =
className.internalName in storage
override fun dumpValue(value: Boolean) = ""
}
private inner class MultifileClassFacadeMap(storageFile: File) : BasicStringMap<Collection<String>>(storageFile, StringCollectionExternalizer) {
operator fun set(facadeName: JvmClassName, partNames: Collection<String>) {
storage[facadeName.internalName] = partNames
}
operator fun get(internalName: String): Collection<String>? = storage[internalName]
operator fun contains(internalName: String): Boolean = internalName in storage
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
override fun dumpValue(value: Collection<String>): String = value.dumpCollection()
}
private inner class MultifileClassPartMap(storageFile: File) : BasicStringMap<String>(storageFile, EnumeratorStringDescriptor.INSTANCE) {
fun set(partName: String, facadeName: String) {
storage[partName] = facadeName
}
fun get(partName: String): String? {
return storage.get(partName)
}
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
override fun dumpValue(value: String): String = value
}
inner class SourceToClassesMap(storageFile: File) : BasicStringMap<Collection<String>>(storageFile, PathStringDescriptor, StringCollectionExternalizer) {
fun clearOutputsForSource(sourceFile: File) {
remove(sourceFile.absolutePath)
}
fun add(sourceFile: File, className: JvmClassName) {
storage.append(sourceFile.absolutePath, className.internalName)
}
operator fun get(sourceFile: File): Collection<JvmClassName> =
storage[sourceFile.absolutePath].orEmpty().map { JvmClassName.byInternalName(it) }
override fun dumpValue(value: Collection<String>) = value.dumpCollection()
private fun remove(path: String) {
storage.remove(path)
}
}
inner class ClassFqNameToSourceMap(storageFile: File) : BasicStringMap<String>(storageFile, EnumeratorStringDescriptor(), PathStringDescriptor) {
operator fun set(fqName: FqName, sourceFile: File) {
storage[fqName.asString()] = sourceFile.canonicalPath
}
operator fun get(fqName: FqName): File? =
storage[fqName.asString()]?.let(::File)
fun remove(fqName: FqName) {
storage.remove(fqName.asString())
}
override fun dumpValue(value: String) = value
}
inner class InternalNameToSourcesMap(storageFile: File) : BasicStringMap<Collection<String>>(storageFile, EnumeratorStringDescriptor(), PathCollectionExternalizer) {
operator fun set(internalName: String, sourceFiles: Iterable<File>) {
storage[internalName] = sourceFiles.map { it.canonicalPath }
}
operator fun get(internalName: String): Collection<File> =
(storage[internalName] ?: emptyList()).map(::File)
fun remove(internalName: String) {
storage.remove(internalName)
}
override fun dumpValue(value: Collection<String>): String =
value.dumpCollection()
}
private fun addToClassStorage(kotlinClass: LocalFileKotlinClass, srcFile: File) {
if (!IncrementalCompilation.isExperimental()) return
val classData = JvmProtoBufUtil.readClassDataFrom(kotlinClass.classHeader.data!!, kotlinClass.classHeader.strings!!)
val supertypes = classData.classProto.supertypes(TypeTable(classData.classProto.typeTable))
val parents = supertypes.map { classData.nameResolver.getClassId(it.className).asSingleFqName() }
.filter { it.asString() != "kotlin.Any" }
.toSet()
val child = kotlinClass.classId.asSingleFqName()
parents.forEach { subtypesMap.add(it, child) }
val removedSupertypes = supertypesMap[child].filter { it !in parents }
removedSupertypes.forEach { subtypesMap.removeValues(it, setOf(child)) }
supertypesMap[child] = parents
classFqNameToSourceMap[kotlinClass.className.fqNameForClassNameWithoutDollars] = srcFile
}
private fun removeAllFromClassStorage(removedClasses: Collection<JvmClassName>) {
if (!IncrementalCompilation.isExperimental() || removedClasses.isEmpty()) return
val removedFqNames = removedClasses.map { it.fqNameForClassNameWithoutDollars }.toSet()
for (cache in thisWithDependentCaches) {
val parentsFqNames = hashSetOf<FqName>()
val childrenFqNames = hashSetOf<FqName>()
for (removedFqName in removedFqNames) {
parentsFqNames.addAll(cache.supertypesMap[removedFqName])
childrenFqNames.addAll(cache.subtypesMap[removedFqName])
cache.supertypesMap.remove(removedFqName)
cache.subtypesMap.remove(removedFqName)
}
for (child in childrenFqNames) {
cache.supertypesMap.removeValues(child, removedFqNames)
}
for (parent in parentsFqNames) {
cache.subtypesMap.removeValues(parent, removedFqNames)
}
}
removedFqNames.forEach { classFqNameToSourceMap.remove(it) }
}
private inner class DirtyOutputClassesMap(storageFile: File) : BasicStringMap<Boolean>(storageFile, BooleanDataDescriptor.INSTANCE) {
fun markDirty(className: String) {
storage[className] = true
}
fun notDirty(className: String) {
storage.remove(className)
}
fun getDirtyOutputClasses(): Collection<String> =
storage.keys
fun isDirty(className: String): Boolean =
storage.contains(className)
override fun dumpValue(value: Boolean) = ""
}
private inner class InlineFunctionsMap(storageFile: File) : BasicStringMap<Map<String, Long>>(storageFile, StringToLongMapExternalizer) {
private fun getInlineFunctionsMap(header: KotlinClassHeader, bytes: ByteArray): Map<String, Long> {
val inlineFunctions = inlineFunctionsJvmNames(header)
if (inlineFunctions.isEmpty()) return emptyMap()
val result = HashMap<String, Long>()
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) {
override fun visitMethod(access: Int, name: String, desc: String, signature: String?, exceptions: Array<out String>?): MethodVisitor? {
val dummyClassWriter = ClassWriter(Opcodes.ASM5)
return object : MethodVisitor(Opcodes.ASM5, dummyClassWriter.visitMethod(0, name, desc, null, exceptions)) {
override fun visitEnd() {
val jvmName = name + desc
if (jvmName !in inlineFunctions) return
val dummyBytes = dummyClassWriter.toByteArray()!!
val hash = dummyBytes.md5()
result[jvmName] = hash
}
}
}
}, 0)
return result
}
fun process(kotlinClass: LocalFileKotlinClass, isPackage: Boolean): CompilationResult {
return put(kotlinClass.className, getInlineFunctionsMap(kotlinClass.classHeader, kotlinClass.fileContents), isPackage)
}
private fun put(className: JvmClassName, newMap: Map<String, Long>, isPackage: Boolean): CompilationResult {
val internalName = className.internalName
val oldMap = storage[internalName] ?: emptyMap()
val added = hashSetOf<String>()
val changed = hashSetOf<String>()
val allFunctions = oldMap.keys + newMap.keys
for (fn in allFunctions) {
val oldHash = oldMap[fn]
val newHash = newMap[fn]
when {
oldHash == null -> added.add(fn)
oldHash != newHash -> changed.add(fn)
}
}
when {
newMap.isNotEmpty() -> storage[internalName] = newMap
else -> storage.remove(internalName)
}
val changes =
if (IncrementalCompilation.isExperimental()) {
val fqName = if (isPackage) className.packageFqName else className.fqNameForClassNameWithoutDollars
// TODO get name in better way instead of using substringBefore
(added.asSequence() + changed.asSequence()).map { ChangeInfo.MembersChanged(fqName, listOf(it.substringBefore("("))) }
}
else {
emptySequence<ChangeInfo>()
}
processChangedInlineFunctions(className, changed)
return CompilationResult(inlineChanged = changed.isNotEmpty(),
inlineAdded = added.isNotEmpty(),
changes = changes)
}
fun remove(className: JvmClassName) {
storage.remove(className.internalName)
}
override fun dumpValue(value: Map<String, Long>): String =
value.dumpMap { java.lang.Long.toHexString(it) }
}
protected open fun processChangedInlineFunctions(
className: JvmClassName,
changedFunctions: Collection<String>
) {
}
}
private object PathCollectionExternalizer : CollectionExternalizer<String>(PathStringDescriptor, { THashSet(FileUtil.PATH_HASHING_STRATEGY) })
sealed class ChangeInfo(val fqName: FqName) {
open class MembersChanged(fqName: FqName, val names: Collection<String>) : ChangeInfo(fqName) {
override fun toStringProperties(): String = super.toStringProperties() + ", names = $names"
}
class Removed(fqName: FqName, names: Collection<String>) : MembersChanged(fqName, names)
class SignatureChanged(fqName: FqName, val areSubclassesAffected: Boolean) : ChangeInfo(fqName)
protected open fun toStringProperties(): String = "fqName = $fqName"
override fun toString(): String {
return this.javaClass.simpleName + "(${toStringProperties()})"
}
}
data class CompilationResult(
val protoChanged: Boolean = false,
val constantsChanged: Boolean = false,
val inlineChanged: Boolean = false,
val inlineAdded: Boolean = false,
val changes: Sequence<ChangeInfo> = emptySequence()
) {
companion object {
val NO_CHANGES: CompilationResult = CompilationResult()
}
operator fun plus(other: CompilationResult): CompilationResult =
CompilationResult(protoChanged || other.protoChanged,
constantsChanged || other.constantsChanged,
inlineChanged || other.inlineChanged,
inlineAdded || other.inlineAdded,
changes + other.changes)
}
fun ByteArray.md5(): Long {
val d = MessageDigest.getInstance("MD5").digest(this)!!
return ((d[0].toLong() and 0xFFL)
or ((d[1].toLong() and 0xFFL) shl 8)
or ((d[2].toLong() and 0xFFL) shl 16)
or ((d[3].toLong() and 0xFFL) shl 24)
or ((d[4].toLong() and 0xFFL) shl 32)
or ((d[5].toLong() and 0xFFL) shl 40)
or ((d[6].toLong() and 0xFFL) shl 48)
or ((d[7].toLong() and 0xFFL) shl 56)
)
}
@TestOnly
fun <K : Comparable<K>, V> Map<K, V>.dumpMap(dumpValue: (V)->String): String =
buildString {
append("{")
for (key in keys.sorted()) {
if (length != 1) {
append(", ")
}
val value = get(key)?.let(dumpValue) ?: "null"
append("$key -> $value")
}
append("}")
}
@TestOnly fun <T : Comparable<T>> Collection<T>.dumpCollection(): String =
"[${sorted().joinToString(", ", transform = Any::toString)}]"

View File

@@ -14,22 +14,20 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental
package org.jetbrains.kotlin.incremental
import org.jetbrains.jps.incremental.ModuleBuildTarget
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
import org.jetbrains.kotlin.modules.TargetId
public class IncrementalCompilationComponentsImpl(
caches: Map<ModuleBuildTarget, IncrementalCache>,
class IncrementalCompilationComponentsImpl(
private val caches: Map<TargetId, IncrementalCache>,
private val lookupTracker: LookupTracker
): IncrementalCompilationComponents {
private val caches = caches.mapKeys { TargetId(it.key) }
override fun getIncrementalCache(target: TargetId): IncrementalCache =
caches[target]!!
caches[target] ?: throw Exception("Incremental cache for target ${target.name} not found")
override fun getLookupTracker(): LookupTracker = lookupTracker
}

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.load.kotlin.FileBasedKotlinClass
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
@@ -40,9 +40,10 @@ class LocalFileKotlinClass private constructor(
}
}
public val className: JvmClassName by lazy { JvmClassName.byClassId(classId) }
val className: JvmClassName by lazy { JvmClassName.byClassId(classId) }
override fun getLocation(): String = file.absolutePath
override val location: String
get() = file.absolutePath
public override fun getFileContents(): ByteArray = fileContents

View File

@@ -0,0 +1,217 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import com.intellij.util.containers.MultiMap
import com.intellij.util.containers.StringInterner
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.components.Position
import org.jetbrains.kotlin.incremental.components.ScopeKind
import org.jetbrains.kotlin.incremental.storage.*
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.utils.keysToMap
import java.io.File
import java.util.*
open class LookupStorage(private val targetDataDir: File) : BasicMapsOwner() {
companion object {
private val DELETED_TO_SIZE_TRESHOLD = 0.5
private val MINIMUM_GARBAGE_COLLECTIBLE_SIZE = 10000
}
private val String.storageFile: File
get() = File(targetDataDir, this + "." + CACHE_EXTENSION)
private val countersFile = "counters".storageFile
private val idToFile = registerMap(IdToFileMap("id-to-file".storageFile))
private val fileToId = registerMap(FileToIdMap("file-to-id".storageFile))
private val lookupMap = registerMap(LookupMap("lookups".storageFile))
@Volatile
private var size: Int = 0
@Volatile
private var deletedCount: Int = 0
init {
if (countersFile.exists()) {
val lines = countersFile.readLines()
size = lines[0].toInt()
deletedCount = lines[1].toInt()
}
}
@Synchronized
fun get(lookupSymbol: LookupSymbol): Collection<String> {
val key = LookupSymbolKey(lookupSymbol.name, lookupSymbol.scope)
val fileIds = lookupMap[key] ?: return emptySet()
return fileIds.mapNotNull {
// null means it's outdated
idToFile[it]?.path
}
}
@Synchronized
fun addAll(lookups: Set<Map.Entry<LookupSymbol, Collection<String>>>, allPaths: Set<String>) {
val pathToId = allPaths.keysToMap { addFileIfNeeded(File(it)) }
for ((lookupSymbol, paths) in lookups) {
val key = LookupSymbolKey(lookupSymbol.name, lookupSymbol.scope)
val fileIds = paths.mapTo(HashSet<Int>()) { pathToId[it]!! }
fileIds.addAll(lookupMap[key] ?: emptySet())
lookupMap[key] = fileIds
}
}
@Synchronized
fun removeLookupsFrom(files: Sequence<File>) {
for (file in files) {
val id = fileToId[file] ?: continue
idToFile.remove(id)
fileToId.remove(file)
deletedCount++
}
}
@Synchronized
override fun clean() {
if (countersFile.exists()) {
countersFile.delete()
}
size = 0
deletedCount = 0
super.clean()
}
@Synchronized
override fun flush(memoryCachesOnly: Boolean) {
try {
removeGarbageIfNeeded()
if (size > 0) {
if (!countersFile.exists()) {
countersFile.parentFile.mkdirs()
countersFile.createNewFile()
}
countersFile.writeText("$size\n$deletedCount")
}
}
finally {
super.flush(memoryCachesOnly)
}
}
private fun addFileIfNeeded(file: File): Int {
val existing = fileToId[file]
if (existing != null) return existing
val id = size++
fileToId[file] = id
idToFile[id] = file
return id
}
private fun removeGarbageIfNeeded(force: Boolean = false) {
if (force || (size > MINIMUM_GARBAGE_COLLECTIBLE_SIZE && deletedCount.toDouble() / size > DELETED_TO_SIZE_TRESHOLD)) {
doRemoveGarbage()
}
}
private fun doRemoveGarbage() {
for (hash in lookupMap.keys) {
lookupMap[hash] = lookupMap[hash]!!.filter { it in idToFile }.toSet()
}
val oldFileToId = fileToId.toMap()
val oldIdToNewId = HashMap<Int, Int>(oldFileToId.size)
idToFile.clean()
fileToId.clean()
size = 0
deletedCount = 0
for ((file, oldId) in oldFileToId.entries) {
val newId = addFileIfNeeded(file)
oldIdToNewId[oldId] = newId
}
for (lookup in lookupMap.keys) {
val fileIds = lookupMap[lookup]!!.mapNotNull { oldIdToNewId[it] }.toSet()
if (fileIds.isEmpty()) {
lookupMap.remove(lookup)
}
else {
lookupMap[lookup] = fileIds
}
}
}
@TestOnly fun forceGC() {
removeGarbageIfNeeded(force = true)
flush(false)
}
@TestOnly fun dump(lookupSymbols: Set<LookupSymbol>, basePath: File? = null): String {
flush(false)
val sb = StringBuilder()
val p = Printer(sb)
val lookupsStrings = lookupSymbols.groupBy { LookupSymbolKey(it.name, it.scope) }
for (lookup in lookupMap.keys.sorted()) {
val fileIds = lookupMap[lookup]!!
val key = if (lookup in lookupsStrings) {
lookupsStrings[lookup]!!.map { "${it.scope}#${it.name}" }.sorted().joinToString(", ")
}
else {
lookup.toString()
}
val value = fileIds.map { idToFile[it]?.let { if (basePath == null) it.absolutePath else it.toRelativeString(basePath) } ?: it.toString() }.sorted().joinToString(", ")
p.println("$key -> $value")
}
return sb.toString()
}
}
class LookupTrackerImpl(private val delegate: LookupTracker) : LookupTracker {
val lookups = MultiMap<LookupSymbol, String>()
val pathInterner = StringInterner()
private val interner = StringInterner()
override val requiresPosition: Boolean
get() = delegate.requiresPosition
override fun record(filePath: String, position: Position, scopeFqName: String, scopeKind: ScopeKind, name: String) {
val internedScopeFqName = interner.intern(scopeFqName)
val internedName = interner.intern(name)
val internedFilePath = pathInterner.intern(filePath)
lookups.putValue(LookupSymbol(internedName, internedScopeFqName), internedFilePath)
delegate.record(internedFilePath, position, internedScopeFqName, scopeKind, internedName)
}
}
data class LookupSymbol(val name: String, val scope: String)

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.serialization.ProtoBuf
@@ -25,12 +25,12 @@ import java.util.*
/** This file is generated by org.jetbrains.kotlin.generators.protobuf.GenerateProtoBufCompare. DO NOT MODIFY MANUALLY */
open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, public val newNameResolver: NameResolver) {
open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameResolver: NameResolver) {
private val strings = Interner<String>()
public val oldStringIndexesMap: MutableMap<Int, Int> = hashMapOf()
public val newStringIndexesMap: MutableMap<Int, Int> = hashMapOf()
public val oldClassIdIndexesMap: MutableMap<Int, Int> = hashMapOf()
public val newClassIdIndexesMap: MutableMap<Int, Int> = hashMapOf()
val oldStringIndexesMap: MutableMap<Int, Int> = hashMapOf()
val newStringIndexesMap: MutableMap<Int, Int> = hashMapOf()
val oldClassIdIndexesMap: MutableMap<Int, Int> = hashMapOf()
val newClassIdIndexesMap: MutableMap<Int, Int> = hashMapOf()
private val classIds = Interner<ClassId>()
@@ -44,15 +44,27 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEquals(old.typeTable, new.typeTable)) return false
}
if (old.hasSinceKotlinInfoTable() != new.hasSinceKotlinInfoTable()) return false
if (old.hasSinceKotlinInfoTable()) {
if (!checkEquals(old.sinceKotlinInfoTable, new.sinceKotlinInfoTable)) return false
}
if (old.hasExtension(JvmProtoBuf.packageModuleName) != new.hasExtension(JvmProtoBuf.packageModuleName)) return false
if (old.hasExtension(JvmProtoBuf.packageModuleName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.packageModuleName), new.getExtension(JvmProtoBuf.packageModuleName))) return false
}
return true
}
public enum class ProtoBufPackageKind {
enum class ProtoBufPackageKind {
FUNCTION_LIST,
PROPERTY_LIST,
TYPE_TABLE
TYPE_TABLE,
SINCE_KOTLIN_INFO_TABLE,
PACKAGE_MODULE_NAME
}
public fun difference(old: ProtoBuf.Package, new: ProtoBuf.Package): EnumSet<ProtoBufPackageKind> {
fun difference(old: ProtoBuf.Package, new: ProtoBuf.Package): EnumSet<ProtoBufPackageKind> {
val result = EnumSet.noneOf(ProtoBufPackageKind::class.java)
if (!checkEqualsPackageFunction(old, new)) result.add(ProtoBufPackageKind.FUNCTION_LIST)
@@ -64,6 +76,16 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEquals(old.typeTable, new.typeTable)) result.add(ProtoBufPackageKind.TYPE_TABLE)
}
if (old.hasSinceKotlinInfoTable() != new.hasSinceKotlinInfoTable()) result.add(ProtoBufPackageKind.SINCE_KOTLIN_INFO_TABLE)
if (old.hasSinceKotlinInfoTable()) {
if (!checkEquals(old.sinceKotlinInfoTable, new.sinceKotlinInfoTable)) result.add(ProtoBufPackageKind.SINCE_KOTLIN_INFO_TABLE)
}
if (old.hasExtension(JvmProtoBuf.packageModuleName) != new.hasExtension(JvmProtoBuf.packageModuleName)) result.add(ProtoBufPackageKind.PACKAGE_MODULE_NAME)
if (old.hasExtension(JvmProtoBuf.packageModuleName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.packageModuleName), new.getExtension(JvmProtoBuf.packageModuleName))) result.add(ProtoBufPackageKind.PACKAGE_MODULE_NAME)
}
return result
}
@@ -101,15 +123,24 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEquals(old.typeTable, new.typeTable)) return false
}
if (old.getExtensionCount(JvmProtoBuf.classAnnotation) != new.getExtensionCount(JvmProtoBuf.classAnnotation)) return false
if (old.hasSinceKotlinInfo() != new.hasSinceKotlinInfo()) return false
if (old.hasSinceKotlinInfo()) {
if (old.sinceKotlinInfo != new.sinceKotlinInfo) return false
}
for(i in 0..old.getExtensionCount(JvmProtoBuf.classAnnotation) - 1) {
if (!checkEquals(old.getExtension(JvmProtoBuf.classAnnotation, i), new.getExtension(JvmProtoBuf.classAnnotation, i))) return false
if (old.hasSinceKotlinInfoTable() != new.hasSinceKotlinInfoTable()) return false
if (old.hasSinceKotlinInfoTable()) {
if (!checkEquals(old.sinceKotlinInfoTable, new.sinceKotlinInfoTable)) return false
}
if (old.hasExtension(JvmProtoBuf.classModuleName) != new.hasExtension(JvmProtoBuf.classModuleName)) return false
if (old.hasExtension(JvmProtoBuf.classModuleName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.classModuleName), new.getExtension(JvmProtoBuf.classModuleName))) return false
}
return true
}
public enum class ProtoBufClassKind {
enum class ProtoBufClassKind {
FLAGS,
FQ_NAME,
COMPANION_OBJECT_NAME,
@@ -122,10 +153,12 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
PROPERTY_LIST,
ENUM_ENTRY_LIST,
TYPE_TABLE,
CLASS_ANNOTATION_LIST
SINCE_KOTLIN_INFO,
SINCE_KOTLIN_INFO_TABLE,
CLASS_MODULE_NAME
}
public fun difference(old: ProtoBuf.Class, new: ProtoBuf.Class): EnumSet<ProtoBufClassKind> {
fun difference(old: ProtoBuf.Class, new: ProtoBuf.Class): EnumSet<ProtoBufClassKind> {
val result = EnumSet.noneOf(ProtoBufClassKind::class.java)
if (old.hasFlags() != new.hasFlags()) result.add(ProtoBufClassKind.FLAGS)
@@ -161,10 +194,19 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEquals(old.typeTable, new.typeTable)) result.add(ProtoBufClassKind.TYPE_TABLE)
}
if (old.getExtensionCount(JvmProtoBuf.classAnnotation) != new.getExtensionCount(JvmProtoBuf.classAnnotation)) result.add(ProtoBufClassKind.CLASS_ANNOTATION_LIST)
if (old.hasSinceKotlinInfo() != new.hasSinceKotlinInfo()) result.add(ProtoBufClassKind.SINCE_KOTLIN_INFO)
if (old.hasSinceKotlinInfo()) {
if (old.sinceKotlinInfo != new.sinceKotlinInfo) result.add(ProtoBufClassKind.SINCE_KOTLIN_INFO)
}
for(i in 0..old.getExtensionCount(JvmProtoBuf.classAnnotation) - 1) {
if (!checkEquals(old.getExtension(JvmProtoBuf.classAnnotation, i), new.getExtension(JvmProtoBuf.classAnnotation, i))) result.add(ProtoBufClassKind.CLASS_ANNOTATION_LIST)
if (old.hasSinceKotlinInfoTable() != new.hasSinceKotlinInfoTable()) result.add(ProtoBufClassKind.SINCE_KOTLIN_INFO_TABLE)
if (old.hasSinceKotlinInfoTable()) {
if (!checkEquals(old.sinceKotlinInfoTable, new.sinceKotlinInfoTable)) result.add(ProtoBufClassKind.SINCE_KOTLIN_INFO_TABLE)
}
if (old.hasExtension(JvmProtoBuf.classModuleName) != new.hasExtension(JvmProtoBuf.classModuleName)) result.add(ProtoBufClassKind.CLASS_MODULE_NAME)
if (old.hasExtension(JvmProtoBuf.classModuleName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.classModuleName), new.getExtension(JvmProtoBuf.classModuleName))) result.add(ProtoBufClassKind.CLASS_MODULE_NAME)
}
return result
@@ -176,6 +218,11 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (old.flags != new.flags) return false
}
if (old.hasOldFlags() != new.hasOldFlags()) return false
if (old.hasOldFlags()) {
if (old.oldFlags != new.oldFlags) return false
}
if (!checkStringEquals(old.name, new.name)) return false
if (old.hasReturnType() != new.hasReturnType()) return false
@@ -207,16 +254,16 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEquals(old.typeTable, new.typeTable)) return false
}
if (old.hasSinceKotlinInfo() != new.hasSinceKotlinInfo()) return false
if (old.hasSinceKotlinInfo()) {
if (old.sinceKotlinInfo != new.sinceKotlinInfo) return false
}
if (old.hasExtension(JvmProtoBuf.methodSignature) != new.hasExtension(JvmProtoBuf.methodSignature)) return false
if (old.hasExtension(JvmProtoBuf.methodSignature)) {
if (!checkEquals(old.getExtension(JvmProtoBuf.methodSignature), new.getExtension(JvmProtoBuf.methodSignature))) return false
}
if (old.hasExtension(JvmProtoBuf.methodImplClassName) != new.hasExtension(JvmProtoBuf.methodImplClassName)) return false
if (old.hasExtension(JvmProtoBuf.methodImplClassName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.methodImplClassName), new.getExtension(JvmProtoBuf.methodImplClassName))) return false
}
return true
}
@@ -226,6 +273,11 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (old.flags != new.flags) return false
}
if (old.hasOldFlags() != new.hasOldFlags()) return false
if (old.hasOldFlags()) {
if (old.oldFlags != new.oldFlags) return false
}
if (!checkStringEquals(old.name, new.name)) return false
if (old.hasReturnType() != new.hasReturnType()) return false
@@ -265,16 +317,16 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (old.setterFlags != new.setterFlags) return false
}
if (old.hasSinceKotlinInfo() != new.hasSinceKotlinInfo()) return false
if (old.hasSinceKotlinInfo()) {
if (old.sinceKotlinInfo != new.sinceKotlinInfo) return false
}
if (old.hasExtension(JvmProtoBuf.propertySignature) != new.hasExtension(JvmProtoBuf.propertySignature)) return false
if (old.hasExtension(JvmProtoBuf.propertySignature)) {
if (!checkEquals(old.getExtension(JvmProtoBuf.propertySignature), new.getExtension(JvmProtoBuf.propertySignature))) return false
}
if (old.hasExtension(JvmProtoBuf.propertyImplClassName) != new.hasExtension(JvmProtoBuf.propertyImplClassName)) return false
if (old.hasExtension(JvmProtoBuf.propertyImplClassName)) {
if (!checkStringEquals(old.getExtension(JvmProtoBuf.propertyImplClassName), new.getExtension(JvmProtoBuf.propertyImplClassName))) return false
}
return true
}
@@ -289,6 +341,12 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
open fun checkEquals(old: ProtoBuf.SinceKotlinInfoTable, new: ProtoBuf.SinceKotlinInfoTable): Boolean {
if (!checkEqualsSinceKotlinInfoTableInfo(old, new)) return false
return true
}
open fun checkEquals(old: ProtoBuf.TypeParameter, new: ProtoBuf.TypeParameter): Boolean {
if (old.id != new.id) return false
@@ -387,6 +445,11 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkEqualsConstructorValueParameter(old, new)) return false
if (old.hasSinceKotlinInfo() != new.hasSinceKotlinInfo()) return false
if (old.hasSinceKotlinInfo()) {
if (old.sinceKotlinInfo != new.sinceKotlinInfo) return false
}
if (old.hasExtension(JvmProtoBuf.constructorSignature) != new.hasExtension(JvmProtoBuf.constructorSignature)) return false
if (old.hasExtension(JvmProtoBuf.constructorSignature)) {
if (!checkEquals(old.getExtension(JvmProtoBuf.constructorSignature), new.getExtension(JvmProtoBuf.constructorSignature))) return false
@@ -395,10 +458,11 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
open fun checkEquals(old: ProtoBuf.Annotation, new: ProtoBuf.Annotation): Boolean {
if (!checkClassIdEquals(old.id, new.id)) return false
if (!checkEqualsAnnotationArgument(old, new)) return false
open fun checkEquals(old: ProtoBuf.EnumEntry, new: ProtoBuf.EnumEntry): Boolean {
if (old.hasName() != new.hasName()) return false
if (old.hasName()) {
if (!checkStringEquals(old.name, new.name)) return false
}
return true
}
@@ -431,11 +495,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (old.varargElementTypeId != new.varargElementTypeId) return false
}
if (old.hasExtension(JvmProtoBuf.index) != new.hasExtension(JvmProtoBuf.index)) return false
if (old.hasExtension(JvmProtoBuf.index)) {
if (old.getExtension(JvmProtoBuf.index) != new.getExtension(JvmProtoBuf.index)) return false
}
return true
}
@@ -477,6 +536,43 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
open fun checkEquals(old: ProtoBuf.SinceKotlinInfo, new: ProtoBuf.SinceKotlinInfo): Boolean {
if (old.hasVersion() != new.hasVersion()) return false
if (old.hasVersion()) {
if (old.version != new.version) return false
}
if (old.hasVersionFull() != new.hasVersionFull()) return false
if (old.hasVersionFull()) {
if (old.versionFull != new.versionFull) return false
}
if (old.hasLevel() != new.hasLevel()) return false
if (old.hasLevel()) {
if (old.level != new.level) return false
}
if (old.hasErrorCode() != new.hasErrorCode()) return false
if (old.hasErrorCode()) {
if (old.errorCode != new.errorCode) return false
}
if (old.hasMessage() != new.hasMessage()) return false
if (old.hasMessage()) {
if (!checkStringEquals(old.message, new.message)) return false
}
return true
}
open fun checkEquals(old: ProtoBuf.Annotation, new: ProtoBuf.Annotation): Boolean {
if (!checkClassIdEquals(old.id, new.id)) return false
if (!checkEqualsAnnotationArgument(old, new)) return false
return true
}
open fun checkEquals(old: ProtoBuf.Type.Argument, new: ProtoBuf.Type.Argument): Boolean {
if (old.hasProjection() != new.hasProjection()) return false
if (old.hasProjection()) {
@@ -496,14 +592,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
open fun checkEquals(old: ProtoBuf.Annotation.Argument, new: ProtoBuf.Annotation.Argument): Boolean {
if (!checkStringEquals(old.nameId, new.nameId)) return false
if (!checkEquals(old.value, new.value)) return false
return true
}
open fun checkEquals(old: JvmProtoBuf.JvmFieldSignature, new: JvmProtoBuf.JvmFieldSignature): Boolean {
if (old.hasName() != new.hasName()) return false
if (old.hasName()) {
@@ -515,10 +603,13 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (!checkStringEquals(old.desc, new.desc)) return false
}
if (old.hasIsStaticInOuter() != new.hasIsStaticInOuter()) return false
if (old.hasIsStaticInOuter()) {
if (old.isStaticInOuter != new.isStaticInOuter) return false
}
return true
}
open fun checkEquals(old: ProtoBuf.Annotation.Argument, new: ProtoBuf.Annotation.Argument): Boolean {
if (!checkStringEquals(old.nameId, new.nameId)) return false
if (!checkEquals(old.value, new.value)) return false
return true
}
@@ -663,7 +754,7 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
if (old.enumEntryCount != new.enumEntryCount) return false
for(i in 0..old.enumEntryCount - 1) {
if (!checkStringEquals(old.getEnumEntry(i), new.getEnumEntry(i))) return false
if (!checkEquals(old.getEnumEntry(i), new.getEnumEntry(i))) return false
}
return true
@@ -709,6 +800,16 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
open fun checkEqualsSinceKotlinInfoTableInfo(old: ProtoBuf.SinceKotlinInfoTable, new: ProtoBuf.SinceKotlinInfoTable): Boolean {
if (old.infoCount != new.infoCount) return false
for(i in 0..old.infoCount - 1) {
if (!checkEquals(old.getInfo(i), new.getInfo(i))) return false
}
return true
}
open fun checkEqualsTypeParameterUpperBound(old: ProtoBuf.TypeParameter, new: ProtoBuf.TypeParameter): Boolean {
if (old.upperBoundCount != new.upperBoundCount) return false
@@ -769,10 +870,10 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return true
}
public fun oldGetIndexOfString(index: Int): Int = getIndexOfString(index, oldStringIndexesMap, oldNameResolver)
public fun newGetIndexOfString(index: Int): Int = getIndexOfString(index, newStringIndexesMap, newNameResolver)
fun oldGetIndexOfString(index: Int): Int = getIndexOfString(index, oldStringIndexesMap, oldNameResolver)
fun newGetIndexOfString(index: Int): Int = getIndexOfString(index, newStringIndexesMap, newNameResolver)
public fun getIndexOfString(index: Int, map: MutableMap<Int, Int>, nameResolver: NameResolver): Int {
fun getIndexOfString(index: Int, map: MutableMap<Int, Int>, nameResolver: NameResolver): Int {
map[index]?.let { return it }
val result = strings.intern(nameResolver.getString(index))
@@ -780,10 +881,10 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
return result
}
public fun oldGetIndexOfClassId(index: Int): Int = getIndexOfClassId(index, oldClassIdIndexesMap, oldNameResolver)
public fun newGetIndexOfClassId(index: Int): Int = getIndexOfClassId(index, newClassIdIndexesMap, newNameResolver)
fun oldGetIndexOfClassId(index: Int): Int = getIndexOfClassId(index, oldClassIdIndexesMap, oldNameResolver)
fun newGetIndexOfClassId(index: Int): Int = getIndexOfClassId(index, newClassIdIndexesMap, newNameResolver)
public fun getIndexOfClassId(index: Int, map: MutableMap<Int, Int>, nameResolver: NameResolver): Int {
fun getIndexOfClassId(index: Int, map: MutableMap<Int, Int>, nameResolver: NameResolver): Int {
map[index]?.let { return it }
val result = classIds.intern(nameResolver.getClassId(index))
@@ -800,7 +901,7 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi
}
}
public fun ProtoBuf.Package.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Package.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
for(i in 0..functionCount - 1) {
@@ -815,10 +916,18 @@ public fun ProtoBuf.Package.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes:
hashCode = 31 * hashCode + typeTable.hashCode(stringIndexes, fqNameIndexes)
}
if (hasSinceKotlinInfoTable()) {
hashCode = 31 * hashCode + sinceKotlinInfoTable.hashCode(stringIndexes, fqNameIndexes)
}
if (hasExtension(JvmProtoBuf.packageModuleName)) {
hashCode = 31 * hashCode + stringIndexes(getExtension(JvmProtoBuf.packageModuleName))
}
return hashCode
}
public fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasFlags()) {
@@ -860,27 +969,39 @@ public fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (
}
for(i in 0..enumEntryCount - 1) {
hashCode = 31 * hashCode + stringIndexes(getEnumEntry(i))
hashCode = 31 * hashCode + getEnumEntry(i).hashCode(stringIndexes, fqNameIndexes)
}
if (hasTypeTable()) {
hashCode = 31 * hashCode + typeTable.hashCode(stringIndexes, fqNameIndexes)
}
for(i in 0..getExtensionCount(JvmProtoBuf.classAnnotation) - 1) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.classAnnotation, i).hashCode(stringIndexes, fqNameIndexes)
if (hasSinceKotlinInfo()) {
hashCode = 31 * hashCode + sinceKotlinInfo
}
if (hasSinceKotlinInfoTable()) {
hashCode = 31 * hashCode + sinceKotlinInfoTable.hashCode(stringIndexes, fqNameIndexes)
}
if (hasExtension(JvmProtoBuf.classModuleName)) {
hashCode = 31 * hashCode + stringIndexes(getExtension(JvmProtoBuf.classModuleName))
}
return hashCode
}
public fun ProtoBuf.Function.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Function.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasFlags()) {
hashCode = 31 * hashCode + flags
}
if (hasOldFlags()) {
hashCode = 31 * hashCode + oldFlags
}
hashCode = 31 * hashCode + stringIndexes(name)
if (hasReturnType()) {
@@ -911,24 +1032,28 @@ public fun ProtoBuf.Function.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes
hashCode = 31 * hashCode + typeTable.hashCode(stringIndexes, fqNameIndexes)
}
if (hasExtension(JvmProtoBuf.methodSignature)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.methodSignature).hashCode(stringIndexes, fqNameIndexes)
if (hasSinceKotlinInfo()) {
hashCode = 31 * hashCode + sinceKotlinInfo
}
if (hasExtension(JvmProtoBuf.methodImplClassName)) {
hashCode = 31 * hashCode + stringIndexes(getExtension(JvmProtoBuf.methodImplClassName))
if (hasExtension(JvmProtoBuf.methodSignature)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.methodSignature).hashCode(stringIndexes, fqNameIndexes)
}
return hashCode
}
public fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasFlags()) {
hashCode = 31 * hashCode + flags
}
if (hasOldFlags()) {
hashCode = 31 * hashCode + oldFlags
}
hashCode = 31 * hashCode + stringIndexes(name)
if (hasReturnType()) {
@@ -963,18 +1088,18 @@ public fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes
hashCode = 31 * hashCode + setterFlags
}
if (hasExtension(JvmProtoBuf.propertySignature)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.propertySignature).hashCode(stringIndexes, fqNameIndexes)
if (hasSinceKotlinInfo()) {
hashCode = 31 * hashCode + sinceKotlinInfo
}
if (hasExtension(JvmProtoBuf.propertyImplClassName)) {
hashCode = 31 * hashCode + stringIndexes(getExtension(JvmProtoBuf.propertyImplClassName))
if (hasExtension(JvmProtoBuf.propertySignature)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.propertySignature).hashCode(stringIndexes, fqNameIndexes)
}
return hashCode
}
public fun ProtoBuf.TypeTable.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.TypeTable.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
for(i in 0..typeCount - 1) {
@@ -988,7 +1113,17 @@ public fun ProtoBuf.TypeTable.hashCode(stringIndexes: (Int) -> Int, fqNameIndexe
return hashCode
}
public fun ProtoBuf.TypeParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.SinceKotlinInfoTable.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
for(i in 0..infoCount - 1) {
hashCode = 31 * hashCode + getInfo(i).hashCode(stringIndexes, fqNameIndexes)
}
return hashCode
}
fun ProtoBuf.TypeParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
hashCode = 31 * hashCode + id
@@ -1018,7 +1153,7 @@ public fun ProtoBuf.TypeParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIn
return hashCode
}
public fun ProtoBuf.Type.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Type.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
for(i in 0..argumentCount - 1) {
@@ -1072,7 +1207,7 @@ public fun ProtoBuf.Type.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (I
return hashCode
}
public fun ProtoBuf.Constructor.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Constructor.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasFlags()) {
@@ -1083,6 +1218,10 @@ public fun ProtoBuf.Constructor.hashCode(stringIndexes: (Int) -> Int, fqNameInde
hashCode = 31 * hashCode + getValueParameter(i).hashCode(stringIndexes, fqNameIndexes)
}
if (hasSinceKotlinInfo()) {
hashCode = 31 * hashCode + sinceKotlinInfo
}
if (hasExtension(JvmProtoBuf.constructorSignature)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.constructorSignature).hashCode(stringIndexes, fqNameIndexes)
}
@@ -1090,19 +1229,17 @@ public fun ProtoBuf.Constructor.hashCode(stringIndexes: (Int) -> Int, fqNameInde
return hashCode
}
public fun ProtoBuf.Annotation.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.EnumEntry.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
hashCode = 31 * hashCode + fqNameIndexes(id)
for(i in 0..argumentCount - 1) {
hashCode = 31 * hashCode + getArgument(i).hashCode(stringIndexes, fqNameIndexes)
if (hasName()) {
hashCode = 31 * hashCode + stringIndexes(name)
}
return hashCode
}
public fun ProtoBuf.ValueParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.ValueParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasFlags()) {
@@ -1127,14 +1264,10 @@ public fun ProtoBuf.ValueParameter.hashCode(stringIndexes: (Int) -> Int, fqNameI
hashCode = 31 * hashCode + varargElementTypeId
}
if (hasExtension(JvmProtoBuf.index)) {
hashCode = 31 * hashCode + getExtension(JvmProtoBuf.index)
}
return hashCode
}
public fun JvmProtoBuf.JvmMethodSignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun JvmProtoBuf.JvmMethodSignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasName()) {
@@ -1148,7 +1281,7 @@ public fun JvmProtoBuf.JvmMethodSignature.hashCode(stringIndexes: (Int) -> Int,
return hashCode
}
public fun JvmProtoBuf.JvmPropertySignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun JvmProtoBuf.JvmPropertySignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasField()) {
@@ -1170,7 +1303,45 @@ public fun JvmProtoBuf.JvmPropertySignature.hashCode(stringIndexes: (Int) -> Int
return hashCode
}
public fun ProtoBuf.Type.Argument.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.SinceKotlinInfo.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasVersion()) {
hashCode = 31 * hashCode + version
}
if (hasVersionFull()) {
hashCode = 31 * hashCode + versionFull
}
if (hasLevel()) {
hashCode = 31 * hashCode + level.hashCode()
}
if (hasErrorCode()) {
hashCode = 31 * hashCode + errorCode
}
if (hasMessage()) {
hashCode = 31 * hashCode + stringIndexes(message)
}
return hashCode
}
fun ProtoBuf.Annotation.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
hashCode = 31 * hashCode + fqNameIndexes(id)
for(i in 0..argumentCount - 1) {
hashCode = 31 * hashCode + getArgument(i).hashCode(stringIndexes, fqNameIndexes)
}
return hashCode
}
fun ProtoBuf.Type.Argument.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasProjection()) {
@@ -1188,17 +1359,7 @@ public fun ProtoBuf.Type.Argument.hashCode(stringIndexes: (Int) -> Int, fqNameIn
return hashCode
}
public fun ProtoBuf.Annotation.Argument.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
hashCode = 31 * hashCode + stringIndexes(nameId)
hashCode = 31 * hashCode + value.hashCode(stringIndexes, fqNameIndexes)
return hashCode
}
public fun JvmProtoBuf.JvmFieldSignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun JvmProtoBuf.JvmFieldSignature.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasName()) {
@@ -1209,14 +1370,20 @@ public fun JvmProtoBuf.JvmFieldSignature.hashCode(stringIndexes: (Int) -> Int, f
hashCode = 31 * hashCode + stringIndexes(desc)
}
if (hasIsStaticInOuter()) {
hashCode = 31 * hashCode + isStaticInOuter.hashCode()
}
return hashCode
}
fun ProtoBuf.Annotation.Argument.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
hashCode = 31 * hashCode + stringIndexes(nameId)
hashCode = 31 * hashCode + value.hashCode(stringIndexes, fqNameIndexes)
return hashCode
}
public fun ProtoBuf.Annotation.Argument.Value.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
fun ProtoBuf.Annotation.Argument.Value.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
var hashCode = 1
if (hasType()) {

View File

@@ -0,0 +1,30 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler
class SourceRetentionAnnotationHandlerImpl : SourceRetentionAnnotationHandler {
private val mutableSourceRetentionAnnotations = mutableSetOf<String>()
val sourceRetentionAnnotations: Set<String>
get() = mutableSourceRetentionAnnotations
override fun register(internalName: String) {
mutableSourceRetentionAnnotations += internalName
}
}

View File

@@ -0,0 +1,288 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// these functions are used in the kotlin gradle plugin
@file:Suppress("unused")
package org.jetbrains.kotlin.incremental
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil
import org.jetbrains.kotlin.build.GeneratedFile
import org.jetbrains.kotlin.build.GeneratedJvmClass
import org.jetbrains.kotlin.build.JvmSourceRoot
import org.jetbrains.kotlin.build.isModuleMappingFile
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.config.Services
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
import org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder
import org.jetbrains.kotlin.modules.TargetId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
import org.jetbrains.kotlin.utils.keysToMap
import java.io.File
import java.util.*
fun Iterable<File>.javaSourceRoots(roots: Iterable<File>): Iterable<File> =
filter { it.isJavaFile() }
.map { findSrcDirRoot(it, roots) }
.filterNotNull()
fun makeModuleFile(name: String, isTest: Boolean, outputDir: File, sourcesToCompile: Iterable<File>, javaSourceRoots: Iterable<File>, classpath: Iterable<File>, friendDirs: Iterable<File>): File {
val builder = KotlinModuleXmlBuilder()
builder.addModule(
name,
outputDir.absolutePath,
sourcesToCompile,
javaSourceRoots.map { JvmSourceRoot(it) },
classpath,
"java-production",
isTest,
// this excludes the output directories from the class path, to be removed for true incremental compilation
setOf(outputDir),
friendDirs
)
val scriptFile = File.createTempFile("kjps", StringUtil.sanitizeJavaIdentifier(name) + ".script.xml")
FileUtil.writeToFile(scriptFile, builder.asText().toString())
return scriptFile
}
fun makeCompileServices(
incrementalCaches: Map<TargetId, IncrementalCache>,
lookupTracker: LookupTracker,
compilationCanceledStatus: CompilationCanceledStatus?,
sourceRetentionAnnotationHandler: SourceRetentionAnnotationHandler? = null
): Services =
with(Services.Builder()) {
register(IncrementalCompilationComponents::class.java,
IncrementalCompilationComponentsImpl(incrementalCaches, lookupTracker))
compilationCanceledStatus?.let {
register(CompilationCanceledStatus::class.java, it)
}
sourceRetentionAnnotationHandler?.let {
register(SourceRetentionAnnotationHandler::class.java, it)
}
build()
}
fun makeLookupTracker(parentLookupTracker: LookupTracker = LookupTracker.DO_NOTHING): LookupTracker =
if (IncrementalCompilation.isExperimental()) LookupTrackerImpl(parentLookupTracker)
else parentLookupTracker
fun<Target> makeIncrementalCachesMap(
targets: Iterable<Target>,
getDependencies: (Target) -> Iterable<Target>,
getCache: (Target) -> IncrementalCacheImpl<Target>,
getTargetId: Target.() -> TargetId
): Map<TargetId, IncrementalCacheImpl<Target>>
{
val dependents = targets.keysToMap { hashSetOf<Target>() }
val targetsWithDependents = targets.toHashSet()
for (target in targets) {
for (dependency in getDependencies(target)) {
if (dependency !in targets) continue
dependents[dependency]!!.add(target)
targetsWithDependents.add(target)
}
}
val caches = targetsWithDependents.keysToMap { getCache(it) }
for ((target, cache) in caches) {
dependents[target]?.forEach {
cache.addDependentCache(caches[it]!!)
}
}
return caches.mapKeys { it.key.getTargetId() }
}
fun<Target> updateIncrementalCaches(
targets: Iterable<Target>,
generatedFiles: List<GeneratedFile<Target>>,
compiledWithErrors: Boolean,
getIncrementalCache: (Target) -> IncrementalCacheImpl<Target>
): CompilationResult {
var changesInfo = CompilationResult.NO_CHANGES
for (generatedFile in generatedFiles) {
val ic = getIncrementalCache(generatedFile.target)
when {
generatedFile is GeneratedJvmClass<Target> -> changesInfo += ic.saveFileToCache(generatedFile)
generatedFile.outputFile.isModuleMappingFile() -> changesInfo += ic.saveModuleMappingToCache(generatedFile.sourceFiles, generatedFile.outputFile)
}
}
if (!compiledWithErrors) {
targets.forEach {
val newChangesInfo = getIncrementalCache(it).clearCacheForRemovedClasses()
changesInfo += newChangesInfo
}
}
return changesInfo
}
fun LookupStorage.update(
lookupTracker: LookupTracker,
filesToCompile: Iterable<File>,
removedFiles: Iterable<File>
) {
if (lookupTracker !is LookupTrackerImpl) throw AssertionError("Lookup tracker is expected to be LookupTrackerImpl, got ${lookupTracker.javaClass}")
removeLookupsFrom(filesToCompile.asSequence() + removedFiles.asSequence())
addAll(lookupTracker.lookups.entrySet(), lookupTracker.pathInterner.values)
}
fun<Target> OutputItemsCollectorImpl.generatedFiles(
targets: Collection<Target>,
representativeTarget: Target,
getSources: (Target) -> Iterable<File>,
getOutputDir: (Target) -> File?
): List<GeneratedFile<Target>> {
// If there's only one target, this map is empty: get() always returns null, and the representativeTarget will be used below
val sourceToTarget =
if (targets.size >1) targets.flatMap { target -> getSources(target).map { Pair(it, target) } }.toMap()
else mapOf<File, Target>()
return outputs.map { outputItem ->
val target =
outputItem.sourceFiles.firstOrNull()?.let { sourceToTarget[it] } ?:
targets.filter { getOutputDir(it)?.let { outputItem.outputFile.startsWith(it) } ?: false }.singleOrNull() ?:
representativeTarget
if (outputItem.outputFile.name.endsWith(".class"))
GeneratedJvmClass(target, outputItem.sourceFiles, outputItem.outputFile)
else
GeneratedFile(target, outputItem.sourceFiles, outputItem.outputFile)
}
}
data class DirtyData(
val dirtyLookupSymbols: Collection<LookupSymbol> = emptyList(),
val dirtyClassesFqNames: Collection<FqName> = emptyList()
)
fun <Target> CompilationResult.getDirtyData(
caches: Iterable<IncrementalCacheImpl<Target>>,
reporter: IncReporter
): DirtyData {
val dirtyLookupSymbols = HashSet<LookupSymbol>()
val dirtyClassesFqNames = HashSet<FqName>()
for (change in changes) {
reporter.report { "Process $change" }
if (change is ChangeInfo.SignatureChanged) {
val fqNames = if (!change.areSubclassesAffected) listOf(change.fqName) else withSubtypes(change.fqName, caches)
for (classFqName in fqNames) {
assert(!classFqName.isRoot) { "$classFqName is root when processing $change" }
val scope = classFqName.parent().asString()
val name = classFqName.shortName().identifier
dirtyLookupSymbols.add(LookupSymbol(name, scope))
}
}
else if (change is ChangeInfo.MembersChanged) {
val fqNames = withSubtypes(change.fqName, caches)
// need to recompile subtypes because changed member might break override
dirtyClassesFqNames.addAll(fqNames)
for (name in change.names) {
for (fqName in fqNames) {
dirtyLookupSymbols.add(LookupSymbol(name, fqName.asString()))
}
}
}
}
return DirtyData(dirtyLookupSymbols, dirtyClassesFqNames)
}
fun mapLookupSymbolsToFiles(
lookupStorage: LookupStorage,
lookupSymbols: Iterable<LookupSymbol>,
reporter: IncReporter,
excludes: Set<File> = emptySet()
): Set<File> {
val dirtyFiles = HashSet<File>()
for (lookup in lookupSymbols) {
val affectedFiles = lookupStorage.get(lookup).map(::File).filter { it !in excludes }
reporter.report { "${lookup.scope}#${lookup.name} caused recompilation of: ${reporter.pathsAsString(affectedFiles)}" }
dirtyFiles.addAll(affectedFiles)
}
return dirtyFiles
}
fun <Target> mapClassesFqNamesToFiles(
caches: Iterable<IncrementalCacheImpl<Target>>,
classesFqNames: Iterable<FqName>,
reporter: IncReporter,
excludes: Set<File> = emptySet()
): Set<File> {
val dirtyFiles = HashSet<File>()
for (cache in caches) {
for (dirtyClassFqName in classesFqNames) {
val srcFile = cache.getSourceFileIfClass(dirtyClassFqName)
if (srcFile == null || srcFile in excludes) continue
reporter.report { ("Class $dirtyClassFqName caused recompilation of: ${reporter.pathsAsString(srcFile)}") }
dirtyFiles.add(srcFile)
}
}
return dirtyFiles
}
private fun File.isJavaFile() = extension.equals(JavaFileType.INSTANCE.defaultExtension, ignoreCase = true)
private fun findSrcDirRoot(file: File, roots: Iterable<File>): File? =
roots.firstOrNull { FileUtil.isAncestor(it, file, false) }
fun <Target> withSubtypes(
typeFqName: FqName,
caches: Iterable<IncrementalCacheImpl<Target>>
): Set<FqName> {
val types = LinkedList(listOf(typeFqName))
val subtypes = hashSetOf<FqName>()
while (types.isNotEmpty()) {
val unprocessedType = types.pollFirst()
caches.asSequence()
.flatMap { it.getSubtypesOf(unprocessedType) }
.filter { it !in subtypes }
.forEach { types.addLast(it) }
subtypes.add(unprocessedType)
}
return subtypes
}

View File

@@ -0,0 +1,275 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufClassKind
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufPackageKind
import org.jetbrains.kotlin.incremental.storage.ProtoMapValue
import org.jetbrains.kotlin.protobuf.MessageLite
import org.jetbrains.kotlin.serialization.Flags
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.Deserialization
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
import java.util.*
data class Difference(
val isClassAffected: Boolean = false,
val areSubclassesAffected: Boolean = false,
val changedMembersNames: Set<String> = emptySet()
)
fun difference(oldData: ProtoMapValue, newData: ProtoMapValue): Difference {
if (!oldData.isPackageFacade && newData.isPackageFacade) return Difference(isClassAffected = true, areSubclassesAffected = true)
if (oldData.isPackageFacade && !newData.isPackageFacade) return Difference(isClassAffected = true)
val differenceObject =
if (oldData.isPackageFacade) {
DifferenceCalculatorForPackageFacade(oldData, newData)
}
else {
DifferenceCalculatorForClass(oldData, newData)
}
return differenceObject.difference()
}
internal val MessageLite.isPrivate: Boolean
get() = Visibilities.isPrivate(Deserialization.visibility(
when (this) {
is ProtoBuf.Constructor -> Flags.VISIBILITY.get(flags)
is ProtoBuf.Function -> Flags.VISIBILITY.get(flags)
is ProtoBuf.Property -> Flags.VISIBILITY.get(flags)
else -> error("Unknown message: $this")
}))
private fun MessageLite.name(nameResolver: NameResolver): String {
return when (this) {
is ProtoBuf.Constructor -> "<init>"
is ProtoBuf.Function -> nameResolver.getString(name)
is ProtoBuf.Property -> nameResolver.getString(name)
else -> error("Unknown message: $this")
}
}
internal fun List<MessageLite>.names(nameResolver: NameResolver): List<String> = map { it.name(nameResolver) }
private abstract class DifferenceCalculator() {
protected abstract val oldNameResolver: NameResolver
protected abstract val newNameResolver: NameResolver
protected val compareObject by lazy { ProtoCompareGenerated(oldNameResolver, newNameResolver) }
abstract fun difference(): Difference
protected fun calcDifferenceForMembers(oldList: List<MessageLite>, newList: List<MessageLite>): Collection<String> {
val result = hashSetOf<String>()
val oldMap =
oldList.groupBy { it.getHashCode({ compareObject.oldGetIndexOfString(it) }, { compareObject.oldGetIndexOfClassId(it) }) }
val newMap =
newList.groupBy { it.getHashCode({ compareObject.newGetIndexOfString(it) }, { compareObject.newGetIndexOfClassId(it) }) }
val hashes = oldMap.keys + newMap.keys
for (hash in hashes) {
val oldMembers = oldMap[hash]
val newMembers = newMap[hash]
val differentMembers = when {
newMembers == null -> oldMembers!!.names(compareObject.oldNameResolver)
oldMembers == null -> newMembers.names(compareObject.newNameResolver)
else -> calcDifferenceForEqualHashes(oldMembers, newMembers)
}
result.addAll(differentMembers)
}
return result
}
private fun calcDifferenceForEqualHashes(
oldList: List<MessageLite>,
newList: List<MessageLite>
): Collection<String> {
val result = hashSetOf<String>()
val newSet = HashSet(newList)
oldList.forEach { oldMember ->
val newMember = newSet.firstOrNull { compareObject.checkEquals(oldMember, it) }
if (newMember != null) {
newSet.remove(newMember)
}
else {
result.add(oldMember.name(compareObject.oldNameResolver))
}
}
newSet.forEach { newMember ->
result.add(newMember.name(compareObject.newNameResolver))
}
return result
}
protected fun calcDifferenceForNames(
oldList: List<Int>,
newList: List<Int>
): Collection<String> {
val oldNames = oldList.map { compareObject.oldNameResolver.getString(it) }.toSet()
val newNames = newList.map { compareObject.newNameResolver.getString(it) }.toSet()
return oldNames.union(newNames) - oldNames.intersect(newNames)
}
private fun MessageLite.getHashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> Int): Int {
return when (this) {
is ProtoBuf.Constructor -> hashCode(stringIndexes, fqNameIndexes)
is ProtoBuf.Function -> hashCode(stringIndexes, fqNameIndexes)
is ProtoBuf.Property -> hashCode(stringIndexes, fqNameIndexes)
else -> error("Unknown message: $this")
}
}
private fun ProtoCompareGenerated.checkEquals(old: MessageLite, new: MessageLite): Boolean {
return when {
old is ProtoBuf.Constructor && new is ProtoBuf.Constructor -> checkEquals(old, new)
old is ProtoBuf.Function && new is ProtoBuf.Function -> checkEquals(old, new)
old is ProtoBuf.Property && new is ProtoBuf.Property -> checkEquals(old, new)
else -> error("Unknown message: $this")
}
}
}
private class DifferenceCalculatorForClass(oldData: ProtoMapValue, newData: ProtoMapValue) : DifferenceCalculator() {
val oldClassData = JvmProtoBufUtil.readClassDataFrom(oldData.bytes, oldData.strings)
val newClassData = JvmProtoBufUtil.readClassDataFrom(newData.bytes, newData.strings)
val oldProto = oldClassData.classProto
val newProto = newClassData.classProto
override val oldNameResolver = oldClassData.nameResolver
override val newNameResolver = newClassData.nameResolver
val diff = compareObject.difference(oldProto, newProto)
override fun difference(): Difference {
var isClassAffected = false
var areSubclassesAffected = false
val names = hashSetOf<String>()
val classIsSealed = newProto.isSealed && oldProto.isSealed
fun Int.oldToNames() = names.add(oldNameResolver.getString(this))
fun Int.newToNames() = names.add(newNameResolver.getString(this))
fun calcDifferenceForNonPrivateMembers(members: (ProtoBuf.Class) -> List<MessageLite>): Collection<String> {
val oldMembers = members(oldProto).filterNot { it.isPrivate }
val newMembers = members(newProto).filterNot { it.isPrivate }
return calcDifferenceForMembers(oldMembers, newMembers)
}
for (kind in diff) {
when (kind!!) {
ProtoBufClassKind.COMPANION_OBJECT_NAME -> {
if (oldProto.hasCompanionObjectName()) oldProto.companionObjectName.oldToNames()
if (newProto.hasCompanionObjectName()) newProto.companionObjectName.newToNames()
isClassAffected = true
}
ProtoBufClassKind.NESTED_CLASS_NAME_LIST -> {
if (classIsSealed) {
// when class is sealed, adding an implementation can break exhaustive when expressions
// the workaround is to recompile all class usages
isClassAffected = true
}
names.addAll(calcDifferenceForNames(oldProto.nestedClassNameList, newProto.nestedClassNameList))
}
ProtoBufClassKind.CONSTRUCTOR_LIST -> {
val differentNonPrivateConstructors = calcDifferenceForNonPrivateMembers(ProtoBuf.Class::getConstructorList)
if (differentNonPrivateConstructors.isNotEmpty()) {
isClassAffected = true
}
}
ProtoBufClassKind.FUNCTION_LIST ->
names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Class::getFunctionList))
ProtoBufClassKind.PROPERTY_LIST ->
names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Class::getPropertyList))
ProtoBufClassKind.ENUM_ENTRY_LIST -> {
isClassAffected = true
}
ProtoBufClassKind.TYPE_TABLE -> {
// TODO
}
ProtoBufClassKind.FLAGS,
ProtoBufClassKind.FQ_NAME,
ProtoBufClassKind.TYPE_PARAMETER_LIST,
ProtoBufClassKind.SUPERTYPE_LIST,
ProtoBufClassKind.SUPERTYPE_ID_LIST-> {
isClassAffected = true
areSubclassesAffected = true
}
ProtoBufClassKind.CLASS_MODULE_NAME -> {
// TODO
}
}
}
return Difference(isClassAffected, areSubclassesAffected, names)
}
}
private class DifferenceCalculatorForPackageFacade(oldData: ProtoMapValue, newData: ProtoMapValue) : DifferenceCalculator() {
val oldPackageData = JvmProtoBufUtil.readPackageDataFrom(oldData.bytes, oldData.strings)
val newPackageData = JvmProtoBufUtil.readPackageDataFrom(newData.bytes, newData.strings)
val oldProto = oldPackageData.packageProto
val newProto = newPackageData.packageProto
override val oldNameResolver = oldPackageData.nameResolver
override val newNameResolver = newPackageData.nameResolver
val diff = compareObject.difference(oldProto, newProto)
override fun difference(): Difference {
val names = hashSetOf<String>()
fun calcDifferenceForNonPrivateMembers(members: (ProtoBuf.Package) -> List<MessageLite>): Collection<String> {
val oldMembers = members(oldProto).filterNot { it.isPrivate }
val newMembers = members(newProto).filterNot { it.isPrivate }
return calcDifferenceForMembers(oldMembers, newMembers)
}
for (kind in diff) {
when (kind!!) {
ProtoBufPackageKind.FUNCTION_LIST ->
names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Package::getFunctionList))
ProtoBufPackageKind.PROPERTY_LIST ->
names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Package::getPropertyList))
ProtoBufPackageKind.TYPE_TABLE,
ProtoBufPackageKind.PACKAGE_MODULE_NAME -> {
// TODO
}
else -> throw IllegalArgumentException("Unsupported kind: $kind")
}
}
return Difference(changedMembersNames = names)
}
}
private val ProtoBuf.Class.isSealed: Boolean
get() = ProtoBuf.Modality.SEALED == Flags.MODALITY.get(flags)

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental.storage
package org.jetbrains.kotlin.incremental.storage
import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.EnumeratorStringDescriptor
@@ -23,14 +23,14 @@ import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.utils.Printer
import java.io.File
internal abstract class BasicMap<K : Comparable<K>, V>(
abstract class BasicMap<K : Comparable<K>, V>(
storageFile: File,
keyDescriptor: KeyDescriptor<K>,
valueExternalizer: DataExternalizer<V>
) {
protected val storage = LazyStorage(storageFile, keyDescriptor, valueExternalizer)
open fun clean() {
fun clean() {
storage.clean()
}
@@ -60,19 +60,22 @@ internal abstract class BasicMap<K : Comparable<K>, V>(
}.toString()
}
@TestOnly
protected abstract fun dumpKey(key: K): String
@TestOnly
protected abstract fun dumpValue(value: V): String
}
internal abstract class BasicStringMap<V>(
abstract class BasicStringMap<V>(
storageFile: File,
keyDescriptor: KeyDescriptor<String>,
valueExternalizer: DataExternalizer<V>
) : BasicMap<String, V>(storageFile, keyDescriptor, valueExternalizer) {
public constructor(
constructor(
storageFile: File,
valueExternalizer: DataExternalizer<V>
) : this(storageFile, EnumeratorStringDescriptor.INSTANCE, valueExternalizer)
override fun dumpKey(key: String): String = key
}
}

View File

@@ -0,0 +1,46 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.storage
import org.jetbrains.annotations.TestOnly
open class BasicMapsOwner {
private val maps = arrayListOf<BasicMap<*, *>>()
companion object {
val CACHE_EXTENSION = "tab"
}
protected fun <K, V, M : BasicMap<K, V>> registerMap(map: M): M {
maps.add(map)
return map
}
open fun clean() {
maps.forEach { it.clean() }
}
open fun close() {
maps.forEach { it.close() }
}
open fun flush(memoryCachesOnly: Boolean) {
maps.forEach { it.flush(memoryCachesOnly) }
}
@TestOnly fun dump(): String = maps.map { it.dump() }.joinToString("\n\n")
}

View File

@@ -0,0 +1,55 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.storage
import org.jetbrains.kotlin.incremental.dumpCollection
import org.jetbrains.kotlin.name.FqName
import java.io.File
internal open class ClassOneToManyMap(
storageFile: File
) : BasicStringMap<Collection<String>>(storageFile, StringCollectionExternalizer) {
override fun dumpValue(value: Collection<String>): String = value.dumpCollection()
fun add(key: FqName, value: FqName) {
storage.append(key.asString(), value.asString())
}
operator fun get(key: FqName): Collection<FqName> =
storage[key.asString()]?.map(::FqName) ?: setOf()
operator fun set(key: FqName, values: Collection<FqName>) {
if (values.isEmpty()) {
remove(key)
return
}
storage[key.asString()] = values.map(FqName::asString)
}
fun remove(key: FqName) {
storage.remove(key.asString())
}
fun removeValues(key: FqName, removed: Set<FqName>) {
val notRemoved = this[key].filter { it !in removed }
this[key] = notRemoved
}
}
internal class SubtypesMap(storageFile: File) : ClassOneToManyMap(storageFile)
internal class SupertypesMap(storageFile: File) : ClassOneToManyMap(storageFile)

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental.storage
package org.jetbrains.kotlin.incremental.storage
import org.jetbrains.kotlin.utils.keysToMap
import java.io.File
@@ -24,15 +24,15 @@ internal class FileToIdMap(file: File) : BasicMap<File, Int>(file, FileKeyDescri
override fun dumpValue(value: Int): String = value.toString()
public operator fun get(file: File): Int? = storage[file]
operator fun get(file: File): Int? = storage[file]
public operator fun set(file: File, id: Int) {
operator fun set(file: File, id: Int) {
storage[file] = id
}
public fun remove(file: File) {
fun remove(file: File) {
storage.remove(file)
}
public fun toMap(): Map<File, Int> = storage.keys.keysToMap { storage[it]!! }
fun toMap(): Map<File, Int> = storage.keys.keysToMap { storage[it]!! }
}

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental.storage
package org.jetbrains.kotlin.incremental.storage
import com.intellij.util.io.ExternalIntegerKeyDescriptor
import java.io.File
@@ -24,15 +24,15 @@ internal class IdToFileMap(file: File) : BasicMap<Int, File>(file, ExternalInteg
override fun dumpValue(value: File): String = value.toString()
public operator fun get(id: Int): File? = storage[id]
operator fun get(id: Int): File? = storage[id]
public operator fun contains(id: Int): Boolean = id in storage
operator fun contains(id: Int): Boolean = id in storage
public operator fun set(id: Int, file: File) {
operator fun set(id: Int, file: File) {
storage[id] = file
}
public fun remove(id: Int) {
fun remove(id: Int) {
storage.remove(id)
}
}

View File

@@ -14,9 +14,10 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.incremental.storage
package org.jetbrains.kotlin.incremental.storage
import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.IOUtil
import com.intellij.util.io.KeyDescriptor
import com.intellij.util.io.PersistentHashMap
import java.io.DataOutput
@@ -27,7 +28,7 @@ import java.io.IOException
/**
* It's lazy in a sense that PersistentHashMap is created only on write
*/
internal class LazyStorage<K, V>(
class LazyStorage<K, V>(
private val storageFile: File,
private val keyDescriptor: KeyDescriptor<K>,
private val valueExternalizer: DataExternalizer<V>
@@ -73,8 +74,12 @@ internal class LazyStorage<K, V>(
getStorageIfExists()?.remove(key)
}
fun append(key: K, append: (DataOutput)->Unit) {
getStorageOrCreateNew().appendData(key, append)
fun append(key: K, value: String) {
append(key) { out -> IOUtil.writeUTF(out, value) }
}
fun append(key: K, value: Int) {
append(key) { out -> out.writeInt(value) }
}
@Synchronized
@@ -110,4 +115,8 @@ internal class LazyStorage<K, V>(
private fun createMap(): PersistentHashMap<K, V> =
PersistentHashMap(storageFile, keyDescriptor, valueExternalizer)
private fun append(key: K, append: (DataOutput)->Unit) {
getStorageOrCreateNew().appendData(key, append)
}
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.storage
import java.io.File
internal class LookupMap(storage: File) : BasicMap<LookupSymbolKey, Collection<Int>>(storage, LookupSymbolKeyDescriptor, IntCollectionExternalizer) {
override fun dumpKey(key: LookupSymbolKey): String = key.toString()
override fun dumpValue(value: Collection<Int>): String = value.toString()
fun add(name: String, scope: String, fileId: Int) {
storage.append(LookupSymbolKey(name, scope), fileId)
}
operator fun get(key: LookupSymbolKey): Collection<Int>? = storage[key]
operator fun set(key: LookupSymbolKey, fileIds: Set<Int>) {
storage[key] = fileIds
}
fun remove(key: LookupSymbolKey) {
storage.remove(key)
}
val keys: Collection<LookupSymbolKey>
get() = storage.keys
}

View File

@@ -0,0 +1,216 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.storage
import com.intellij.openapi.util.io.FileUtil
import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.EnumeratorStringDescriptor
import com.intellij.util.io.IOUtil
import com.intellij.util.io.KeyDescriptor
import java.io.DataInput
import java.io.DataInputStream
import java.io.DataOutput
import java.io.File
import java.util.*
object LookupSymbolKeyDescriptor : KeyDescriptor<LookupSymbolKey> {
override fun read(input: DataInput): LookupSymbolKey {
val first = input.readInt()
val second = input.readInt()
return LookupSymbolKey(first, second)
}
override fun save(output: DataOutput, value: LookupSymbolKey) {
output.writeInt(value.nameHash)
output.writeInt(value.scopeHash)
}
override fun getHashCode(value: LookupSymbolKey): Int = value.hashCode()
override fun isEqual(val1: LookupSymbolKey, val2: LookupSymbolKey): Boolean = val1 == val2
}
object ProtoMapValueExternalizer : DataExternalizer<ProtoMapValue> {
override fun save(output: DataOutput, value: ProtoMapValue) {
output.writeBoolean(value.isPackageFacade)
output.writeInt(value.bytes.size)
output.write(value.bytes)
output.writeInt(value.strings.size)
for (string in value.strings) {
output.writeUTF(string)
}
}
override fun read(input: DataInput): ProtoMapValue {
val isPackageFacade = input.readBoolean()
val bytesLength = input.readInt()
val bytes = ByteArray(bytesLength)
input.readFully(bytes, 0, bytesLength)
val stringsLength = input.readInt()
val strings = Array<String>(stringsLength) { input.readUTF() }
return ProtoMapValue(isPackageFacade, bytes, strings)
}
}
abstract class StringMapExternalizer<T> : DataExternalizer<Map<String, T>> {
override fun save(output: DataOutput, map: Map<String, T>?) {
output.writeInt(map!!.size)
for ((key, value) in map.entries) {
IOUtil.writeString(key, output)
writeValue(output, value)
}
}
override fun read(input: DataInput): Map<String, T>? {
val size = input.readInt()
val map = HashMap<String, T>(size)
repeat(size) {
val name = IOUtil.readString(input)!!
map[name] = readValue(input)
}
return map
}
protected abstract fun writeValue(output: DataOutput, value: T)
protected abstract fun readValue(input: DataInput): T
}
object StringToLongMapExternalizer : StringMapExternalizer<Long>() {
override fun readValue(input: DataInput): Long = input.readLong()
override fun writeValue(output: DataOutput, value: Long) {
output.writeLong(value)
}
}
object ConstantsMapExternalizer : DataExternalizer<Map<String, Any>> {
override fun save(output: DataOutput, map: Map<String, Any>?) {
output.writeInt(map!!.size)
for (name in map.keys.sorted()) {
IOUtil.writeString(name, output)
val value = map[name]!!
when (value) {
is Int -> {
output.writeByte(Kind.INT.ordinal)
output.writeInt(value)
}
is Float -> {
output.writeByte(Kind.FLOAT.ordinal)
output.writeFloat(value)
}
is Long -> {
output.writeByte(Kind.LONG.ordinal)
output.writeLong(value)
}
is Double -> {
output.writeByte(Kind.DOUBLE.ordinal)
output.writeDouble(value)
}
is String -> {
output.writeByte(Kind.STRING.ordinal)
IOUtil.writeString(value, output)
}
else -> throw IllegalStateException("Unexpected constant class: ${value.javaClass}")
}
}
}
override fun read(input: DataInput): Map<String, Any>? {
val size = input.readInt()
val map = HashMap<String, Any>(size)
repeat(size) {
val name = IOUtil.readString(input)!!
val kind = Kind.values()[input.readByte().toInt()]
val value: Any = when (kind) {
Kind.INT -> input.readInt()
Kind.FLOAT -> input.readFloat()
Kind.LONG -> input.readLong()
Kind.DOUBLE -> input.readDouble()
Kind.STRING -> IOUtil.readString(input)!!
}
map[name] = value
}
return map
}
private enum class Kind {
INT, FLOAT, LONG, DOUBLE, STRING
}
}
object IntExternalizer : DataExternalizer<Int> {
override fun read(input: DataInput): Int = input.readInt()
override fun save(output: DataOutput, value: Int) {
output.writeInt(value)
}
}
object PathStringDescriptor : EnumeratorStringDescriptor() {
override fun getHashCode(value: String) = FileUtil.pathHashCode(value)
override fun isEqual(val1: String, val2: String?) = FileUtil.pathsEqual(val1, val2)
}
object FileKeyDescriptor : KeyDescriptor<File> {
override fun read(input: DataInput): File = File(input.readUTF())
override fun save(output: DataOutput, value: File) {
output.writeUTF(value.canonicalPath)
}
override fun getHashCode(value: File?): Int =
FileUtil.FILE_HASHING_STRATEGY.computeHashCode(value)
override fun isEqual(val1: File?, val2: File?): Boolean =
FileUtil.FILE_HASHING_STRATEGY.equals(val1, val2)
}
open class CollectionExternalizer<T>(
private val elementExternalizer: DataExternalizer<T>,
private val newCollection: () -> MutableCollection<T>
) : DataExternalizer<Collection<T>> {
override fun read(input: DataInput): Collection<T> {
val result = newCollection()
val stream = input as DataInputStream
while (stream.available() > 0) {
result.add(elementExternalizer.read(stream))
}
return result
}
override fun save(output: DataOutput, value: Collection<T>) {
value.forEach { elementExternalizer.save(output, it) }
}
}
object StringCollectionExternalizer : CollectionExternalizer<String>(EnumeratorStringDescriptor(), { HashSet() })
object IntCollectionExternalizer : CollectionExternalizer<Int>(IntExternalizer, { HashSet() })

View File

@@ -0,0 +1,31 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.storage
data class LookupSymbolKey(val nameHash: Int, val scopeHash: Int) : Comparable<LookupSymbolKey> {
constructor(name: String, scope: String) : this(name.hashCode(), scope.hashCode())
override fun compareTo(other: LookupSymbolKey): Int {
val nameCmp = nameHash.compareTo(other.nameHash)
if (nameCmp != 0) return nameCmp
return scopeHash.compareTo(other.scopeHash)
}
}
data class ProtoMapValue(val isPackageFacade: Boolean, val bytes: ByteArray, val strings: Array<String>)

View File

@@ -0,0 +1,131 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.modules
import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName
import com.intellij.openapi.util.text.StringUtil.escapeXml
import org.jetbrains.kotlin.build.JvmSourceRoot
import org.jetbrains.kotlin.cli.common.modules.ModuleXmlParser.*
import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.utils.Printer
import java.io.File
class KotlinModuleXmlBuilder {
private val xml = StringBuilder()
private val p = Printer(xml)
private var done = false
init {
openTag(p, MODULES)
}
fun addModule(
moduleName: String,
outputDir: String,
sourceFiles: Iterable<File>,
javaSourceRoots: Iterable<JvmSourceRoot>,
classpathRoots: Iterable<File>,
targetTypeId: String,
isTests: Boolean,
directoriesToFilterOut: Set<File>,
friendDirs: Iterable<File>): KotlinModuleXmlBuilder {
assert(!done) { "Already done" }
p.println("<!-- Module script for ${if (isTests) "tests" else "production"} -->")
p.println("<", MODULE, " ",
NAME, "=\"", escapeXml(moduleName), "\" ",
TYPE, "=\"", escapeXml(targetTypeId), "\" ",
OUTPUT_DIR, "=\"", getEscapedPath(File(outputDir)), "\">")
p.pushIndent()
for (friendDir in friendDirs) {
p.println("<", FRIEND_DIR, " ", PATH, "=\"", getEscapedPath(friendDir), "\"/>")
}
for (sourceFile in sourceFiles) {
p.println("<", SOURCES, " ", PATH, "=\"", getEscapedPath(sourceFile), "\"/>")
}
processJavaSourceRoots(javaSourceRoots)
processClasspath(classpathRoots, directoriesToFilterOut)
closeTag(p, MODULE)
return this
}
private fun processClasspath(
files: Iterable<File>,
directoriesToFilterOut: Set<File>) {
p.println("<!-- Classpath -->")
for (file in files) {
val isOutput = directoriesToFilterOut.contains(file) && !IncrementalCompilation.isEnabled()
if (isOutput) {
// For IDEA's make (incremental compilation) purposes, output directories of the current module and its dependencies
// appear on the class path, so we are at risk of seeing the results of the previous build, i.e. if some class was
// removed in the sources, it may still be there in binaries. Thus, we delete these entries from the classpath.
p.println("<!-- Output directory, commented out -->")
p.println("<!-- ")
p.pushIndent()
}
p.println("<", CLASSPATH, " ", PATH, "=\"", getEscapedPath(file), "\"/>")
if (isOutput) {
p.popIndent()
p.println("-->")
}
}
}
private fun processJavaSourceRoots(roots: Iterable<JvmSourceRoot>) {
p.println("<!-- Java source roots -->")
for (root in roots) {
p.print("<")
p.printWithNoIndent(JAVA_SOURCE_ROOTS, " ", PATH, "=\"", getEscapedPath(root.file), "\"")
if (root.packagePrefix != null) {
p.printWithNoIndent(" ", JAVA_SOURCE_PACKAGE_PREFIX, "=\"", root.packagePrefix, "\"")
}
p.printWithNoIndent("/>")
p.println()
}
}
fun asText(): CharSequence {
if (!done) {
closeTag(p, MODULES)
done = true
}
return xml
}
private fun openTag(p: Printer, tag: String) {
p.println("<$tag>")
p.pushIndent()
}
private fun closeTag(p: Printer, tag: String) {
p.popIndent()
p.println("</$tag>")
}
private fun getEscapedPath(sourceFile: File): String {
return escapeXml(toSystemIndependentName(sourceFile.path))
}
}

View File

@@ -0,0 +1,47 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.testingUtils
import java.io.File
class BuildLogFinder(
private val isExperimentalEnabled: Boolean = false,
private val isDataContainerBuildLogEnabled: Boolean = false,
private val isGradleEnabled: Boolean = false
) {
companion object {
private const val GRADLE_LOG = "gradle-build.log"
private const val DATA_CONTAINER_LOG = "data-container-version-build.log"
private const val EXPERIMENTAL_LOG = "experimental-ic-build.log"
private const val SIMPLE_LOG = "build.log"
}
fun findBuildLog(dir: File): File? {
val names = dir.list() ?: arrayOf()
val files = names.filter { File(dir, it).isFile }.toSet()
val matchedName = when {
isGradleEnabled && GRADLE_LOG in files -> GRADLE_LOG
isDataContainerBuildLogEnabled && DATA_CONTAINER_LOG in files -> DATA_CONTAINER_LOG
isExperimentalEnabled && EXPERIMENTAL_LOG in files -> EXPERIMENTAL_LOG
SIMPLE_LOG in files -> SIMPLE_LOG
else -> null
}
return File(dir, matchedName ?: return null)
}
}

View File

@@ -0,0 +1,181 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.testingUtils
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.incremental.LocalFileKotlinClass
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
import org.jetbrains.kotlin.protobuf.ExtensionRegistry
import org.jetbrains.kotlin.serialization.DebugProtoBuf
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.serialization.jvm.DebugJvmProtoBuf
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.org.objectweb.asm.ClassReader
import org.jetbrains.org.objectweb.asm.util.TraceClassVisitor
import org.junit.Assert
import org.junit.Assert.assertNotNull
import java.io.ByteArrayInputStream
import java.io.File
import java.io.PrintWriter
import java.io.StringWriter
import java.util.*
import java.util.zip.CRC32
import kotlin.comparisons.compareBy
// Set this to true if you want to dump all bytecode (test will fail in this case)
private val DUMP_ALL = System.getProperty("comparison.dump.all") == "true"
fun assertEqualDirectories(expected: File, actual: File, forgiveExtraFiles: Boolean) {
val pathsInExpected = getAllRelativePaths(expected)
val pathsInActual = getAllRelativePaths(actual)
val commonPaths = pathsInExpected.intersect(pathsInActual)
val changedPaths = commonPaths
.filter { DUMP_ALL || !Arrays.equals(File(expected, it).readBytes(), File(actual, it).readBytes()) }
.sorted()
val expectedString = getDirectoryString(expected, changedPaths)
val actualString = getDirectoryString(actual, changedPaths)
if (DUMP_ALL) {
Assert.assertEquals(expectedString, actualString + " ")
}
if (forgiveExtraFiles) {
// If compilation fails, output may be different for full rebuild and partial make. Parsing output (directory string) for simplicity.
if (changedPaths.isEmpty()) {
val expectedListingLines = expectedString.split('\n').toList()
val actualListingLines = actualString.split('\n').toList()
if (actualListingLines.containsAll(expectedListingLines)) {
return
}
}
}
Assert.assertEquals(expectedString, actualString)
}
private fun File.checksumString(): String {
val crc32 = CRC32()
crc32.update(this.readBytes())
return java.lang.Long.toHexString(crc32.value)
}
private fun getDirectoryString(dir: File, interestingPaths: List<String>): String {
val buf = StringBuilder()
val p = Printer(buf)
fun addDirContent(dir: File) {
p.pushIndent()
val listFiles = dir.listFiles()
assertNotNull("$dir does not exist", listFiles)
val children = listFiles!!.sortedWith(compareBy({ it.isDirectory }, { it.name }))
for (child in children) {
if (child.isDirectory) {
if ((child.list()?.isNotEmpty() ?: false)) {
p.println(child.name)
addDirContent(child)
}
}
else {
p.println(child.name, " ", child.checksumString())
}
}
p.popIndent()
}
p.println(".")
addDirContent(dir)
for (path in interestingPaths) {
p.println("================", path, "================")
p.println(fileToStringRepresentation(File(dir, path)))
p.println()
p.println()
}
return buf.toString()
}
private fun getAllRelativePaths(dir: File): Set<String> {
val result = HashSet<String>()
FileUtil.processFilesRecursively(dir) {
if (it!!.isFile) {
result.add(FileUtil.getRelativePath(dir, it)!!)
}
true
}
return result
}
private fun classFileToString(classFile: File): String {
val out = StringWriter()
val traceVisitor = TraceClassVisitor(PrintWriter(out))
ClassReader(classFile.readBytes()).accept(traceVisitor, 0)
val classHeader = LocalFileKotlinClass.create(classFile)?.classHeader
val annotationDataEncoded = classHeader?.data
if (annotationDataEncoded != null) {
ByteArrayInputStream(BitEncoding.decodeBytes(annotationDataEncoded)).use {
input ->
out.write("\n------ string table types proto -----\n${DebugJvmProtoBuf.StringTableTypes.parseDelimitedFrom(input)}")
if (!classHeader!!.metadataVersion.isCompatible()) {
error("Incompatible class ($classHeader): $classFile")
}
when (classHeader.kind) {
KotlinClassHeader.Kind.FILE_FACADE ->
out.write("\n------ file facade proto -----\n${DebugProtoBuf.Package.parseFrom(input, getExtensionRegistry())}")
KotlinClassHeader.Kind.CLASS ->
out.write("\n------ class proto -----\n${DebugProtoBuf.Class.parseFrom(input, getExtensionRegistry())}")
KotlinClassHeader.Kind.MULTIFILE_CLASS_PART ->
out.write("\n------ multi-file part proto -----\n${DebugProtoBuf.Package.parseFrom(input, getExtensionRegistry())}")
else -> throw IllegalStateException()
}
}
}
return out.toString()
}
private fun getExtensionRegistry(): ExtensionRegistry {
val registry = ExtensionRegistry.newInstance()!!
DebugJvmProtoBuf.registerAllExtensions(registry)
return registry
}
private fun fileToStringRepresentation(file: File): String {
return when {
file.name.endsWith(".class") -> {
classFileToString(file)
}
else -> {
file.readText()
}
}
}

View File

@@ -0,0 +1,181 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.incremental.testingUtils
import com.intellij.openapi.util.io.FileUtil
import java.io.File
import java.util.*
private val COMMANDS = listOf("new", "touch", "delete")
private val COMMANDS_AS_REGEX_PART = COMMANDS.joinToString("|")
private val COMMANDS_AS_MESSAGE_PART = COMMANDS.joinToString("/") { "\".$it\"" }
enum class TouchPolicy {
TIMESTAMP,
CHECKSUM
}
fun copyTestSources(testDataDir: File, sourceDestinationDir: File, filePrefix: String): Map<File, File> {
val mapping = hashMapOf<File, File>()
FileUtil.copyDir(testDataDir, sourceDestinationDir) {
it.isDirectory || it.name.startsWith(filePrefix) && (it.name.endsWith(".kt") || it.name.endsWith(".java"))
}
for (file in sourceDestinationDir.walk()) {
if (!file.isFile) continue
val renamedFile =
if (filePrefix.isEmpty()) {
file
}
else {
File(sourceDestinationDir, file.name.removePrefix(filePrefix)).apply {
file.renameTo(this)
}
}
mapping[renamedFile] = File(testDataDir, file.name)
}
return mapping
}
fun getModificationsToPerform(
testDataDir: File,
moduleNames: Collection<String>?,
allowNoFilesWithSuffixInTestData: Boolean,
touchPolicy: TouchPolicy
): List<List<Modification>> {
fun getModificationsForIteration(newSuffix: String, touchSuffix: String, deleteSuffix: String): List<Modification> {
fun splitToModuleNameAndFileName(fileName: String): Pair<String?, String> {
val underscore = fileName.indexOf("_")
if (underscore != -1) {
val module = fileName.substring(0, underscore)
assert(moduleNames != null) { "File name has module prefix, but multi-module environment is absent" }
assert(module in moduleNames!!) { "Module not found for file with prefix: $fileName" }
return Pair(module, fileName.substring(underscore + 1))
}
assert(moduleNames == null) { "Test is multi-module, but file has no module prefix: $fileName" }
return Pair(null, fileName)
}
val rules = mapOf<String, (String, File) -> Modification>(
newSuffix to { path, file -> ModifyContent(path, file) },
touchSuffix to { path, file -> TouchFile(path, touchPolicy) },
deleteSuffix to { path, file -> DeleteFile(path) }
)
val modifications = ArrayList<Modification>()
for (file in testDataDir.walkTopDown()) {
if (!file.isFile) continue
val relativeFilePath = file.toRelativeString(testDataDir)
val (suffix, createModification) = rules.entries.firstOrNull { file.path.endsWith(it.key) } ?: continue
val (moduleName, fileName) = splitToModuleNameAndFileName(relativeFilePath)
val srcDir = moduleName?.let { "$it/src" } ?: "src"
modifications.add(createModification(srcDir + "/" + fileName.removeSuffix(suffix), file))
}
return modifications
}
val haveFilesWithoutNumbers = testDataDir.walkTopDown().any { it.name.matches(".+\\.($COMMANDS_AS_REGEX_PART)$".toRegex()) }
val haveFilesWithNumbers = testDataDir.walkTopDown().any { it.name.matches(".+\\.($COMMANDS_AS_REGEX_PART)\\.\\d+$".toRegex()) }
if (haveFilesWithoutNumbers && haveFilesWithNumbers) {
throw IllegalStateException("Bad test data format: files ending with both unnumbered and numbered ${COMMANDS_AS_MESSAGE_PART} were found")
}
if (!haveFilesWithoutNumbers && !haveFilesWithNumbers) {
if (allowNoFilesWithSuffixInTestData) {
return listOf(listOf())
}
else {
throw IllegalStateException("Bad test data format: no files ending with ${COMMANDS_AS_MESSAGE_PART} found")
}
}
if (haveFilesWithoutNumbers) {
return listOf(getModificationsForIteration(".new", ".touch", ".delete"))
}
else {
return (1..10)
.map { getModificationsForIteration(".new.$it", ".touch.$it", ".delete.$it") }
.filter { it.isNotEmpty() }
}
}
abstract class Modification(val path: String) {
abstract fun perform(workDir: File, mapping: MutableMap<File, File>)
override fun toString(): String = "${javaClass.simpleName} $path"
}
class ModifyContent(path: String, val dataFile: File) : Modification(path) {
override fun perform(workDir: File, mapping: MutableMap<File, File>) {
val file = File(workDir, path)
val oldLastModified = file.lastModified()
file.delete()
dataFile.copyTo(file)
val newLastModified = file.lastModified()
if (newLastModified <= oldLastModified) {
//Mac OS and some versions of Linux truncate timestamp to nearest second
file.setLastModified(oldLastModified + 1000)
}
mapping[file] = dataFile
}
}
class TouchFile(path: String, private val touchPolicy: TouchPolicy) : Modification(path) {
override fun perform(workDir: File, mapping: MutableMap<File, File>) {
val file = File(workDir, path)
when (touchPolicy) {
TouchPolicy.TIMESTAMP -> {
val oldLastModified = file.lastModified()
//Mac OS and some versions of Linux truncate timestamp to nearest second
file.setLastModified(Math.max(System.currentTimeMillis(), oldLastModified + 1000))
}
TouchPolicy.CHECKSUM -> {
file.appendText(" ")
}
}
}
}
class DeleteFile(path: String) : Modification(path) {
override fun perform(workDir: File, mapping: MutableMap<File, File>) {
val fileToDelete = File(workDir, path)
if (!fileToDelete.delete()) {
throw AssertionError("Couldn't delete $fileToDelete")
}
mapping.remove(fileToDelete)
}
}

View File

@@ -0,0 +1,100 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: core/deserialization/src/ext_options.debug.proto
package org.jetbrains.kotlin.serialization;
public final class DebugExtOptionsProtoBuf {
private DebugExtOptionsProtoBuf() {}
public static void registerAllExtensions(
org.jetbrains.kotlin.protobuf.ExtensionRegistry registry) {
registry.add(org.jetbrains.kotlin.serialization.DebugExtOptionsProtoBuf.skipInComparison);
registry.add(org.jetbrains.kotlin.serialization.DebugExtOptionsProtoBuf.nameIdInTable);
registry.add(org.jetbrains.kotlin.serialization.DebugExtOptionsProtoBuf.fqNameIdInTable);
registry.add(org.jetbrains.kotlin.serialization.DebugExtOptionsProtoBuf.stringIdInTable);
}
public static final int SKIP_IN_COMPARISON_FIELD_NUMBER = 50000;
/**
* <code>extend .google.protobuf.FieldOptions { ... }</code>
*/
public static final
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.kotlin.protobuf.DescriptorProtos.FieldOptions,
java.lang.Boolean> skipInComparison = org.jetbrains.kotlin.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
java.lang.Boolean.class,
null);
public static final int NAME_ID_IN_TABLE_FIELD_NUMBER = 50001;
/**
* <code>extend .google.protobuf.FieldOptions { ... }</code>
*/
public static final
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.kotlin.protobuf.DescriptorProtos.FieldOptions,
java.lang.Boolean> nameIdInTable = org.jetbrains.kotlin.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
java.lang.Boolean.class,
null);
public static final int FQ_NAME_ID_IN_TABLE_FIELD_NUMBER = 50002;
/**
* <code>extend .google.protobuf.FieldOptions { ... }</code>
*/
public static final
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.kotlin.protobuf.DescriptorProtos.FieldOptions,
java.lang.Boolean> fqNameIdInTable = org.jetbrains.kotlin.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
java.lang.Boolean.class,
null);
public static final int STRING_ID_IN_TABLE_FIELD_NUMBER = 50003;
/**
* <code>extend .google.protobuf.FieldOptions { ... }</code>
*/
public static final
org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.kotlin.protobuf.DescriptorProtos.FieldOptions,
java.lang.Boolean> stringIdInTable = org.jetbrains.kotlin.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
java.lang.Boolean.class,
null);
public static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n0core/deserialization/src/ext_options.d" +
"ebug.proto\022\"org.jetbrains.kotlin.seriali" +
"zation\032 google/protobuf/descriptor.proto" +
":;\n\022skip_in_comparison\022\035.google.protobuf" +
".FieldOptions\030\320\206\003 \001(\010:9\n\020name_id_in_tabl" +
"e\022\035.google.protobuf.FieldOptions\030\321\206\003 \001(\010" +
":<\n\023fq_name_id_in_table\022\035.google.protobu" +
"f.FieldOptions\030\322\206\003 \001(\010:;\n\022string_id_in_t" +
"able\022\035.google.protobuf.FieldOptions\030\323\206\003 " +
"\001(\010B\031B\027DebugExtOptionsProtoBuf"
};
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
public org.jetbrains.kotlin.protobuf.ExtensionRegistry assignDescriptors(
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
return null;
}
};
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor[] {
org.jetbrains.kotlin.protobuf.DescriptorProtos.getDescriptor(),
}, assigner);
skipInComparison.internalInit(descriptor.getExtensions().get(0));
nameIdInTable.internalInit(descriptor.getExtensions().get(1));
fqNameIdInTable.internalInit(descriptor.getExtensions().get(2));
stringIdInTable.internalInit(descriptor.getExtensions().get(3));
org.jetbrains.kotlin.protobuf.DescriptorProtos.getDescriptor();
}
// @@protoc_insertion_point(outer_class_scope)
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -6,12 +6,12 @@ package org.jetbrains.kotlin.serialization.jvm;
public final class DebugJvmPackageTable {
private DebugJvmPackageTable() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
org.jetbrains.kotlin.protobuf.ExtensionRegistry registry) {
}
public interface PackageTableOrBuilder
extends com.google.protobuf.MessageOrBuilder {
public interface PackageTableOrBuilder extends
// @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.jvm.PackageTable)
org.jetbrains.kotlin.protobuf.MessageOrBuilder {
// repeated .org.jetbrains.kotlin.serialization.jvm.PackageParts package_parts = 1;
/**
* <code>repeated .org.jetbrains.kotlin.serialization.jvm.PackageParts package_parts = 1;</code>
*/
@@ -40,14 +40,15 @@ public final class DebugJvmPackageTable {
* Protobuf type {@code org.jetbrains.kotlin.serialization.jvm.PackageTable}
*/
public static final class PackageTable extends
com.google.protobuf.GeneratedMessage
implements PackageTableOrBuilder {
org.jetbrains.kotlin.protobuf.GeneratedMessage implements
// @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.jvm.PackageTable)
PackageTableOrBuilder {
// Use PackageTable.newBuilder() to construct.
private PackageTable(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
private PackageTable(org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder<?> builder) {
super(builder);
this.unknownFields = builder.getUnknownFields();
}
private PackageTable(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
private PackageTable(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.UnknownFieldSet.getDefaultInstance(); }
private static final PackageTable defaultInstance;
public static PackageTable getDefaultInstance() {
@@ -58,20 +59,20 @@ public final class DebugJvmPackageTable {
return defaultInstance;
}
private final com.google.protobuf.UnknownFieldSet unknownFields;
private final org.jetbrains.kotlin.protobuf.UnknownFieldSet unknownFields;
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
public final org.jetbrains.kotlin.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private PackageTable(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
initFields();
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
org.jetbrains.kotlin.protobuf.UnknownFieldSet.Builder unknownFields =
org.jetbrains.kotlin.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
@@ -97,10 +98,10 @@ public final class DebugJvmPackageTable {
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
@@ -110,34 +111,33 @@ public final class DebugJvmPackageTable {
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_fieldAccessorTable
.ensureFieldAccessorsInitialized(
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable.class, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable.Builder.class);
}
public static com.google.protobuf.Parser<PackageTable> PARSER =
new com.google.protobuf.AbstractParser<PackageTable>() {
public static org.jetbrains.kotlin.protobuf.Parser<PackageTable> PARSER =
new org.jetbrains.kotlin.protobuf.AbstractParser<PackageTable>() {
public PackageTable parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return new PackageTable(input, extensionRegistry);
}
};
@java.lang.Override
public com.google.protobuf.Parser<PackageTable> getParserForType() {
public org.jetbrains.kotlin.protobuf.Parser<PackageTable> getParserForType() {
return PARSER;
}
// repeated .org.jetbrains.kotlin.serialization.jvm.PackageParts package_parts = 1;
public static final int PACKAGE_PARTS_FIELD_NUMBER = 1;
private java.util.List<org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts> packageParts_;
/**
@@ -179,7 +179,8 @@ public final class DebugJvmPackageTable {
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
for (int i = 0; i < getPackagePartsCount(); i++) {
if (!getPackageParts(i).isInitialized()) {
@@ -191,7 +192,7 @@ public final class DebugJvmPackageTable {
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
for (int i = 0; i < packageParts_.size(); i++) {
@@ -207,7 +208,7 @@ public final class DebugJvmPackageTable {
size = 0;
for (int i = 0; i < packageParts_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeMessageSize(1, packageParts_.get(i));
}
size += getUnknownFields().getSerializedSize();
@@ -223,24 +224,24 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ByteString data)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ByteString data,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(java.io.InputStream input)
@@ -249,7 +250,7 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
@@ -259,18 +260,18 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
com.google.protobuf.CodedInputStream input)
org.jetbrains.kotlin.protobuf.CodedInputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
@@ -284,7 +285,7 @@ public final class DebugJvmPackageTable {
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
org.jetbrains.kotlin.protobuf.GeneratedMessage.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@@ -292,14 +293,15 @@ public final class DebugJvmPackageTable {
* Protobuf type {@code org.jetbrains.kotlin.serialization.jvm.PackageTable}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder>
implements org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTableOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.jvm.PackageTable)
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTableOrBuilder {
public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@@ -312,12 +314,12 @@ public final class DebugJvmPackageTable {
}
private Builder(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
org.jetbrains.kotlin.protobuf.GeneratedMessage.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
if (org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getPackagePartsFieldBuilder();
}
}
@@ -340,7 +342,7 @@ public final class DebugJvmPackageTable {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
public org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor;
}
@@ -373,7 +375,7 @@ public final class DebugJvmPackageTable {
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
public Builder mergeFrom(org.jetbrains.kotlin.protobuf.Message other) {
if (other instanceof org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable) {
return mergeFrom((org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable)other);
} else {
@@ -403,7 +405,7 @@ public final class DebugJvmPackageTable {
packageParts_ = other.packageParts_;
bitField0_ = (bitField0_ & ~0x00000001);
packagePartsBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getPackagePartsFieldBuilder() : null;
} else {
packagePartsBuilder_.addAllMessages(other.packageParts_);
@@ -425,13 +427,13 @@ public final class DebugJvmPackageTable {
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageTable) e.getUnfinishedMessage();
throw e;
} finally {
@@ -443,7 +445,6 @@ public final class DebugJvmPackageTable {
}
private int bitField0_;
// repeated .org.jetbrains.kotlin.serialization.jvm.PackageParts package_parts = 1;
private java.util.List<org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts> packageParts_ =
java.util.Collections.emptyList();
private void ensurePackagePartsIsMutable() {
@@ -453,7 +454,7 @@ public final class DebugJvmPackageTable {
}
}
private com.google.protobuf.RepeatedFieldBuilder<
private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder<
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts.Builder, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackagePartsOrBuilder> packagePartsBuilder_;
/**
@@ -585,7 +586,8 @@ public final class DebugJvmPackageTable {
java.lang.Iterable<? extends org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts> values) {
if (packagePartsBuilder_ == null) {
ensurePackagePartsIsMutable();
super.addAll(values, packageParts_);
org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
values, packageParts_);
onChanged();
} else {
packagePartsBuilder_.addAllMessages(values);
@@ -668,11 +670,11 @@ public final class DebugJvmPackageTable {
getPackagePartsBuilderList() {
return getPackagePartsFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
private org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder<
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts.Builder, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackagePartsOrBuilder>
getPackagePartsFieldBuilder() {
if (packagePartsBuilder_ == null) {
packagePartsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
packagePartsBuilder_ = new org.jetbrains.kotlin.protobuf.RepeatedFieldBuilder<
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts.Builder, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackagePartsOrBuilder>(
packageParts_,
((bitField0_ & 0x00000001) == 0x00000001),
@@ -694,10 +696,10 @@ public final class DebugJvmPackageTable {
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.jvm.PackageTable)
}
public interface PackagePartsOrBuilder
extends com.google.protobuf.MessageOrBuilder {
public interface PackagePartsOrBuilder extends
// @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.jvm.PackageParts)
org.jetbrains.kotlin.protobuf.MessageOrBuilder {
// required string package_fq_name = 1;
/**
* <code>required string package_fq_name = 1;</code>
*/
@@ -709,15 +711,14 @@ public final class DebugJvmPackageTable {
/**
* <code>required string package_fq_name = 1;</code>
*/
com.google.protobuf.ByteString
org.jetbrains.kotlin.protobuf.ByteString
getPackageFqNameBytes();
// repeated string class_name = 2;
/**
* <code>repeated string class_name = 2;</code>
*/
java.util.List<java.lang.String>
getClassNameList();
org.jetbrains.kotlin.protobuf.ProtocolStringList
getClassNameList();
/**
* <code>repeated string class_name = 2;</code>
*/
@@ -729,21 +730,22 @@ public final class DebugJvmPackageTable {
/**
* <code>repeated string class_name = 2;</code>
*/
com.google.protobuf.ByteString
org.jetbrains.kotlin.protobuf.ByteString
getClassNameBytes(int index);
}
/**
* Protobuf type {@code org.jetbrains.kotlin.serialization.jvm.PackageParts}
*/
public static final class PackageParts extends
com.google.protobuf.GeneratedMessage
implements PackagePartsOrBuilder {
org.jetbrains.kotlin.protobuf.GeneratedMessage implements
// @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.jvm.PackageParts)
PackagePartsOrBuilder {
// Use PackageParts.newBuilder() to construct.
private PackageParts(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
private PackageParts(org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder<?> builder) {
super(builder);
this.unknownFields = builder.getUnknownFields();
}
private PackageParts(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
private PackageParts(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.UnknownFieldSet.getDefaultInstance(); }
private static final PackageParts defaultInstance;
public static PackageParts getDefaultInstance() {
@@ -754,20 +756,20 @@ public final class DebugJvmPackageTable {
return defaultInstance;
}
private final com.google.protobuf.UnknownFieldSet unknownFields;
private final org.jetbrains.kotlin.protobuf.UnknownFieldSet unknownFields;
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
public final org.jetbrains.kotlin.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private PackageParts(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
initFields();
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
org.jetbrains.kotlin.protobuf.UnknownFieldSet.Builder unknownFields =
org.jetbrains.kotlin.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
@@ -784,62 +786,63 @@ public final class DebugJvmPackageTable {
break;
}
case 10: {
org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
bitField0_ |= 0x00000001;
packageFqName_ = input.readBytes();
packageFqName_ = bs;
break;
}
case 18: {
org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
className_ = new com.google.protobuf.LazyStringArrayList();
className_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000002;
}
className_.add(input.readBytes());
className_.add(bs);
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
className_ = new com.google.protobuf.UnmodifiableLazyStringList(className_);
className_ = className_.getUnmodifiableView();
}
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_fieldAccessorTable
.ensureFieldAccessorsInitialized(
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts.class, org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts.Builder.class);
}
public static com.google.protobuf.Parser<PackageParts> PARSER =
new com.google.protobuf.AbstractParser<PackageParts>() {
public static org.jetbrains.kotlin.protobuf.Parser<PackageParts> PARSER =
new org.jetbrains.kotlin.protobuf.AbstractParser<PackageParts>() {
public PackageParts parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return new PackageParts(input, extensionRegistry);
}
};
@java.lang.Override
public com.google.protobuf.Parser<PackageParts> getParserForType() {
public org.jetbrains.kotlin.protobuf.Parser<PackageParts> getParserForType() {
return PARSER;
}
private int bitField0_;
// required string package_fq_name = 1;
public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 1;
private java.lang.Object packageFqName_;
/**
@@ -856,8 +859,8 @@ public final class DebugJvmPackageTable {
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
org.jetbrains.kotlin.protobuf.ByteString bs =
(org.jetbrains.kotlin.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
packageFqName_ = s;
@@ -868,27 +871,26 @@ public final class DebugJvmPackageTable {
/**
* <code>required string package_fq_name = 1;</code>
*/
public com.google.protobuf.ByteString
public org.jetbrains.kotlin.protobuf.ByteString
getPackageFqNameBytes() {
java.lang.Object ref = packageFqName_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
org.jetbrains.kotlin.protobuf.ByteString b =
org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
packageFqName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
return (org.jetbrains.kotlin.protobuf.ByteString) ref;
}
}
// repeated string class_name = 2;
public static final int CLASS_NAME_FIELD_NUMBER = 2;
private com.google.protobuf.LazyStringList className_;
private org.jetbrains.kotlin.protobuf.LazyStringList className_;
/**
* <code>repeated string class_name = 2;</code>
*/
public java.util.List<java.lang.String>
public org.jetbrains.kotlin.protobuf.ProtocolStringList
getClassNameList() {
return className_;
}
@@ -907,19 +909,20 @@ public final class DebugJvmPackageTable {
/**
* <code>repeated string class_name = 2;</code>
*/
public com.google.protobuf.ByteString
public org.jetbrains.kotlin.protobuf.ByteString
getClassNameBytes(int index) {
return className_.getByteString(index);
}
private void initFields() {
packageFqName_ = "";
className_ = com.google.protobuf.LazyStringArrayList.EMPTY;
className_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
if (!hasPackageFqName()) {
memoizedIsInitialized = 0;
@@ -929,7 +932,7 @@ public final class DebugJvmPackageTable {
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
@@ -948,13 +951,13 @@ public final class DebugJvmPackageTable {
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
size += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeBytesSize(1, getPackageFqNameBytes());
}
{
int dataSize = 0;
for (int i = 0; i < className_.size(); i++) {
dataSize += com.google.protobuf.CodedOutputStream
dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream
.computeBytesSizeNoTag(className_.getByteString(i));
}
size += dataSize;
@@ -973,24 +976,24 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ByteString data)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ByteString data,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(java.io.InputStream input)
@@ -999,7 +1002,7 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
@@ -1009,18 +1012,18 @@ public final class DebugJvmPackageTable {
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input, extensionRegistry);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
com.google.protobuf.CodedInputStream input)
org.jetbrains.kotlin.protobuf.CodedInputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
@@ -1034,7 +1037,7 @@ public final class DebugJvmPackageTable {
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
org.jetbrains.kotlin.protobuf.GeneratedMessage.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@@ -1042,14 +1045,15 @@ public final class DebugJvmPackageTable {
* Protobuf type {@code org.jetbrains.kotlin.serialization.jvm.PackageParts}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder>
implements org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackagePartsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
org.jetbrains.kotlin.protobuf.GeneratedMessage.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.jvm.PackageParts)
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackagePartsOrBuilder {
public static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
protected org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@@ -1062,12 +1066,12 @@ public final class DebugJvmPackageTable {
}
private Builder(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
org.jetbrains.kotlin.protobuf.GeneratedMessage.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
if (org.jetbrains.kotlin.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
}
}
private static Builder create() {
@@ -1078,7 +1082,7 @@ public final class DebugJvmPackageTable {
super.clear();
packageFqName_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
className_ = com.google.protobuf.LazyStringArrayList.EMPTY;
className_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000002);
return this;
}
@@ -1087,7 +1091,7 @@ public final class DebugJvmPackageTable {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
public org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor;
}
@@ -1113,8 +1117,7 @@ public final class DebugJvmPackageTable {
}
result.packageFqName_ = packageFqName_;
if (((bitField0_ & 0x00000002) == 0x00000002)) {
className_ = new com.google.protobuf.UnmodifiableLazyStringList(
className_);
className_ = className_.getUnmodifiableView();
bitField0_ = (bitField0_ & ~0x00000002);
}
result.className_ = className_;
@@ -1123,7 +1126,7 @@ public final class DebugJvmPackageTable {
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
public Builder mergeFrom(org.jetbrains.kotlin.protobuf.Message other) {
if (other instanceof org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts) {
return mergeFrom((org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts)other);
} else {
@@ -1162,13 +1165,13 @@ public final class DebugJvmPackageTable {
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
org.jetbrains.kotlin.protobuf.CodedInputStream input,
org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
} catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (org.jetbrains.kotlin.serialization.jvm.DebugJvmPackageTable.PackageParts) e.getUnfinishedMessage();
throw e;
} finally {
@@ -1180,7 +1183,6 @@ public final class DebugJvmPackageTable {
}
private int bitField0_;
// required string package_fq_name = 1;
private java.lang.Object packageFqName_ = "";
/**
* <code>required string package_fq_name = 1;</code>
@@ -1194,9 +1196,12 @@ public final class DebugJvmPackageTable {
public java.lang.String getPackageFqName() {
java.lang.Object ref = packageFqName_;
if (!(ref instanceof java.lang.String)) {
java.lang.String s = ((com.google.protobuf.ByteString) ref)
.toStringUtf8();
packageFqName_ = s;
org.jetbrains.kotlin.protobuf.ByteString bs =
(org.jetbrains.kotlin.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
packageFqName_ = s;
}
return s;
} else {
return (java.lang.String) ref;
@@ -1205,17 +1210,17 @@ public final class DebugJvmPackageTable {
/**
* <code>required string package_fq_name = 1;</code>
*/
public com.google.protobuf.ByteString
public org.jetbrains.kotlin.protobuf.ByteString
getPackageFqNameBytes() {
java.lang.Object ref = packageFqName_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
org.jetbrains.kotlin.protobuf.ByteString b =
org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
packageFqName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
return (org.jetbrains.kotlin.protobuf.ByteString) ref;
}
}
/**
@@ -1244,7 +1249,7 @@ public final class DebugJvmPackageTable {
* <code>required string package_fq_name = 1;</code>
*/
public Builder setPackageFqNameBytes(
com.google.protobuf.ByteString value) {
org.jetbrains.kotlin.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
@@ -1254,20 +1259,19 @@ public final class DebugJvmPackageTable {
return this;
}
// repeated string class_name = 2;
private com.google.protobuf.LazyStringList className_ = com.google.protobuf.LazyStringArrayList.EMPTY;
private org.jetbrains.kotlin.protobuf.LazyStringList className_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
private void ensureClassNameIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
className_ = new com.google.protobuf.LazyStringArrayList(className_);
className_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList(className_);
bitField0_ |= 0x00000002;
}
}
/**
* <code>repeated string class_name = 2;</code>
*/
public java.util.List<java.lang.String>
public org.jetbrains.kotlin.protobuf.ProtocolStringList
getClassNameList() {
return java.util.Collections.unmodifiableList(className_);
return className_.getUnmodifiableView();
}
/**
* <code>repeated string class_name = 2;</code>
@@ -1284,7 +1288,7 @@ public final class DebugJvmPackageTable {
/**
* <code>repeated string class_name = 2;</code>
*/
public com.google.protobuf.ByteString
public org.jetbrains.kotlin.protobuf.ByteString
getClassNameBytes(int index) {
return className_.getByteString(index);
}
@@ -1320,7 +1324,8 @@ public final class DebugJvmPackageTable {
public Builder addAllClassName(
java.lang.Iterable<java.lang.String> values) {
ensureClassNameIsMutable();
super.addAll(values, className_);
org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
values, className_);
onChanged();
return this;
}
@@ -1328,7 +1333,7 @@ public final class DebugJvmPackageTable {
* <code>repeated string class_name = 2;</code>
*/
public Builder clearClassName() {
className_ = com.google.protobuf.LazyStringArrayList.EMPTY;
className_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
@@ -1337,7 +1342,7 @@ public final class DebugJvmPackageTable {
* <code>repeated string class_name = 2;</code>
*/
public Builder addClassNameBytes(
com.google.protobuf.ByteString value) {
org.jetbrains.kotlin.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
@@ -1358,22 +1363,22 @@ public final class DebugJvmPackageTable {
// @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.jvm.PackageParts)
}
private static com.google.protobuf.Descriptors.Descriptor
private static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
private static final org.jetbrains.kotlin.protobuf.Descriptors.Descriptor
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor
public static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
private static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
@@ -1386,31 +1391,31 @@ public final class DebugJvmPackageTable {
"\nclass_name\030\002 \003(\tB\026B\024DebugJvmPackageTabl" +
"e"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor,
new java.lang.String[] { "PackageParts", });
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor,
new java.lang.String[] { "PackageFqName", "ClassName", });
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
public org.jetbrains.kotlin.protobuf.ExtensionRegistry assignDescriptors(
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
return null;
}
};
org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageTable_descriptor,
new java.lang.String[] { "PackageParts", });
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_fieldAccessorTable = new
org.jetbrains.kotlin.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_org_jetbrains_kotlin_serialization_jvm_PackageParts_descriptor,
new java.lang.String[] { "PackageFqName", "ClassName", });
}
// @@protoc_insertion_point(outer_class_scope)
}
}

520
build.xml
View File

@@ -1,4 +1,5 @@
<project name="Kotlin" default="dist" xmlns:if="ant:if" xmlns:unless="ant:unless">
<import file="common.xml" optional="false"/>
<property file="resources/kotlinManifest.properties"/>
<!-- Set to false to disable proguard run on kotlin-compiler.jar. Speeds up the build -->
@@ -6,27 +7,28 @@
<!-- Set to false to disable compiler's javadoc generation. Speeds up the build -->
<property name="generate.javadoc" value="true"/>
<!-- Set to false to prevent jarjar and metadata stripping on kotlin-reflect.jar and reflection sources. Use to debug reflection -->
<property name="obfuscate.reflect" value="true"/>
<property name="max.heap.size.for.forked.jvm" value="1024m"/>
<property name="bootstrap.home" value="${basedir}/dependencies/bootstrap-compiler"/>
<property name="bootstrap.compiler.home" value="${bootstrap.home}/Kotlin/kotlinc"/>
<property name="bootstrap.runtime" value="${bootstrap.compiler.home}/lib/kotlin-runtime.jar"/>
<property name="bootstrap.reflect" value="${bootstrap.compiler.home}/lib/kotlin-reflect.jar"/>
<property name="bootstrap.kotlin.test" value="${bootstrap.compiler.home}/lib/kotlin-test.jar" />
<property name="output" value="${basedir}/dist"/>
<property name="intermediate-sources" value="out/src" />
<property name="kotlin-home" value="${output}/kotlinc"/>
<property name="build.number" value="snapshot"/>
<property name="bootstrap.build.no.tests" value="false"/>
<property name="idea.sdk" value="${basedir}/ideaSDK"/>
<property name="protobuf.jar" value="${idea.sdk}/lib/protobuf-2.5.0.jar"/>
<property name="protobuf-lite.jar" value="${basedir}/dependencies/protobuf-2.5.0-lite.jar"/>
<property name="protobuf.jar" value="${basedir}/dependencies/protobuf-2.6.1.jar"/>
<property name="protobuf-lite.jar" value="${basedir}/dependencies/protobuf-2.6.1-lite.jar"/>
<property name="javax.inject.jar" value="${basedir}/lib/javax.inject.jar"/>
<property name="java.target" value="1.6"/>
<property name="dependencies.dir" value="${basedir}/dependencies"/>
<condition property="bootstrap.or.local.build" value="true">
<or>
<istrue value="${bootstrap.build.no.tests}"/>
@@ -38,6 +40,10 @@
<include file="jslib_files.xml" />
<property name="compiled.stdlib.js" value="stdlib.js"/>
<property name="compiled.stdlib.meta.js" value="kotlin.meta.js"/>
<property name="stdlib.js.dir" value="${basedir}/js/js.translator/testData"/>
<!--
The compiler produced on the first step of the build (Bootstrap No Tests) is only guaranteed to work against the OLD runtime
located in dependencies/bootstrap-compiler/.../kotlin-runtime.jar, because the newly built compiler is just a Kotlin application,
@@ -55,14 +61,15 @@
<path id="classpath">
<file file="${bootstrap.runtime}"/>
<file file="${bootstrap.kotlin.test}" />
<file file="${bootstrap.reflect}"/>
<fileset dir="${idea.sdk}" includes="core/*.jar"/>
<pathelement location="${protobuf.jar}"/>
<fileset dir="${basedir}/lib" includes="**/*.jar"/>
<fileset dir="${dependencies.dir}" includes="jansi.jar"/>
<fileset dir="${dependencies.dir}" includes="jline.jar"/>
<fileset dir="${dependencies.dir}" includes="cli-parser-1.1.1.jar"/>
<fileset dir="${dependencies}" includes="jansi.jar"/>
<fileset dir="${dependencies}" includes="jline.jar"/>
<fileset dir="${dependencies}" includes="cli-parser-1.1.2.jar"/>
<fileset dir="${basedir}/ideaSDK/jps" includes="jps-model.jar"/>
</path>
@@ -88,6 +95,7 @@
<include name="compiler/conditional-preprocessor/src/"/>
<include name="compiler/container/src"/>
<include name="compiler/frontend/src"/>
<include name="compiler/resolution/src"/>
<include name="compiler/frontend.java/src"/>
<include name="compiler/light-classes/src"/>
<include name="compiler/plugin-api/src"/>
@@ -107,6 +115,7 @@
<property name="idea.out" value="${basedir}/out/production"/>
<patternset id="compilerClassesFromIDEA.fileset">
<include name="frontend/**"/>
<include name="resolution/**"/>
<include name="container/**"/>
<include name="descriptors/**"/>
<include name="deserialization/**"/>
@@ -119,6 +128,7 @@
<include name="cli-common/**"/>
<include name="conditional-preprocessor/**"/>
<include name="daemon/**"/>
<include name="daemon-common/**"/>
<include name="util/**"/>
<include name="util.runtime/**"/>
<include name="light-classes/**"/>
@@ -177,19 +187,33 @@
<sequential if:true="${bootstrap.or.local.build}">
<copy file="${bootstrap.runtime}" tofile="${kotlin-home}/lib/kotlin-runtime-internal-bootstrap.jar"/>
<copy file="${bootstrap.reflect}" tofile="${kotlin-home}/lib/kotlin-reflect-internal-bootstrap.jar"/>
<copy file="${bootstrap.kotlin.test}" tofile="${kotlin-home}/lib/kotlin-test-internal-bootstrap.jar" failonerror="false"/>
<jar destfile="${kotlin-home}/lib/kotlin-reflect-internal-bootstrap.jar" update="true">
<manifest>
<attribute name="Class-Path" value="kotlin-runtime-internal-bootstrap.jar"/>
</manifest>
</jar>
<jar destfile="${kotlin-home}/lib/kotlin-test-internal-bootstrap.jar" update="true">
<manifest>
<attribute name="Class-Path" value="kotlin-runtime-internal-bootstrap.jar"/>
</manifest>
</jar>
</sequential>
<sequential unless:true="${bootstrap.or.local.build}">
<copy file="${bootstrap.runtime}" todir="${kotlin-home}/lib"/>
<copy file="${bootstrap.reflect}" todir="${kotlin-home}/lib"/>
<copy file="${bootstrap.kotlin.test}" todir="${kotlin-home}/lib"/>
</sequential>
</target>
<target name="copy-dist-to-bootstrap">
<delete dir="${basedir}/dependencies/bootstrap-compiler/Kotlin/kotlinc" />
<copy todir="${basedir}/dependencies/bootstrap-compiler/Kotlin/kotlinc">
<fileset dir="${basedir}/dist/kotlinc" />
</copy>
</target>
<target name="compiler-sources">
<jar jarfile="${output}/kotlin-compiler-sources.jar">
<!-- TODO How to convert it from pathset or dirset ? -->
@@ -207,6 +231,7 @@
<fileset dir="compiler/daemon/daemon-common/src"/>
<fileset dir="compiler/container/src"/>
<fileset dir="compiler/frontend/src"/>
<fileset dir="compiler/resolution/src"/>
<fileset dir="compiler/frontend.java/src"/>
<fileset dir="compiler/light-classes/src"/>
<fileset dir="compiler/plugin-api/src"/>
@@ -292,49 +317,32 @@
<arg value="-output"/>
<arg value="@{output}"/>
<arg value="-no-stdlib"/>
<arg value="-version"/>
<arg value="-meta-info"/>
<arg value="-kjsm"/>
<arg line="-main noCall"/>
<arg line="-module-kind commonjs"/>
</java>
</sequential>
</macrodef>
<target name="js-stdlib">
<property name="compiled.builtins.js" value="builtins.js"/>
<property name="compiled.builtins.meta.js" value="builtins.meta.js"/>
<property name="compiled.stdlib.js" value="stdlib.js"/>
<property name="compiled.stdlib.meta.js" value="stdlib.meta.js"/>
<property name="stdlib.js.dir" value="${basedir}/js/js.translator/testData"/>
<kotlin-pp src="libraries/stdlib/src" output="${intermediate-sources}/stdlib/js" profile="JS" />
<new-kotlin2js output="${output}/js/${compiled.builtins.js}">
<src>
<fileset refid="kotlin.builtin.files"/>
</src>
</new-kotlin2js>
<new-kotlin2js output="${output}/js/${compiled.stdlib.js}">
<src>
<resources refid="js.lib.files"/>
</src>
</new-kotlin2js>
<taskdef name="closure-compiler"
classname="com.google.javascript.jscomp.ant.CompileTask"
classpath="${dependencies.dir}/closure-compiler.jar"/>
<target name="js-stdlib-merge">
<!-- value should be one of: whitespace, simple, advanced -->
<property name="compilationLevel" value="whitespace"/>
<!-- value should be one of: default, quiet, verbose -->
<property name="warningLevel" value="default"/>
<taskdef name="closure-compiler"
classname="com.google.javascript.jscomp.ant.CompileTask"
classpath="${dependencies}/closure-compiler.jar"/>
<closure-compiler
compilationLevel="${compilationLevel}"
prettyprint="true"
languagein="ECMASCRIPT5_STRICT"
warning="${warningLevel}"
output="${output}/js/kotlin.js">
output="${js.stdlib.output.dir}/kotlin.js"
outputWrapperFile="${stdlib.js.dir}/closure-wrapper.txt">
<sources dir="${stdlib.js.dir}">
<file name="kotlin_lib_ecma5.js"/>
@@ -343,33 +351,66 @@
<file name="long.js"/>
</sources>
<sources dir="${output}/js">
<file name="${compiled.builtins.js}"/>
</sources>
<sources dir="${output}/js">
<sources dir="${js.stdlib.output.dir}">
<file name="${compiled.stdlib.js}"/>
</sources>
<sources dir="${stdlib.js.dir}">
<file name="export_Kotlin_if_possible.js"/>
<file name="merge.js"/>
</sources>
<externs dir="${stdlib.js.dir}">
<file name="externs.js"/>
</externs>
</closure-compiler>
</target>
<target name="js-stdlib">
<property environment="env"/>
<kotlin-pp src="libraries/stdlib/src" output="${intermediate-sources}/stdlib/js" profile="JS" />
<new-kotlin2js output="${js.stdlib.output.dir}/tmp/kotlin.js">
<src>
<union>
<fileset refid="kotlin.builtin.files"/>
<resources refid="js.lib.files"/>
</union>
</src>
</new-kotlin2js>
<move file="${js.stdlib.output.dir}/tmp/kotlin.js" tofile="${js.stdlib.output.dir}/${compiled.stdlib.js}" />
<move file="${js.stdlib.output.dir}/tmp/kotlin" todir="${js.stdlib.output.dir}" />
<move file="${js.stdlib.output.dir}/tmp/${compiled.stdlib.meta.js}" tofile="${js.stdlib.output.dir}/${compiled.stdlib.meta.js}" />
<condition property="jdk17" value="${env.JDK_17}" else="${env.JAVA_HOME}">
<isset property="env.JDK_17" />
</condition>
<java classname="org.apache.tools.ant.launch.Launcher"
fork="true"
failonerror="true"
timeout="4000000"
taskname="startAnt"
jvm="${jdk17}/bin/java">
<env key="JAVA_HOME" value="${jdk17}"/>
<classpath>
<pathelement location="${ant.home}/lib/ant-launcher.jar"/>
</classpath>
<arg line="-f" />
<arg line="build.xml" />
<arg line="js-stdlib-merge" />
</java>
<jar jarfile="${kotlin-home}/lib/kotlin-jslib.jar" duplicate="fail">
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<zipfileset dir="${output}/js" prefix="">
<zipfileset dir="${js.stdlib.output.dir}" prefix="">
<include name="kotlin.js"/>
<include name="${compiled.stdlib.meta.js}"/>
<include name="stdlib/**"/>
<include name="kotlin/**"/>
</zipfileset>
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="${manifest.impl.attribute.kotlin.version}" value="${manifest.impl.value.kotlin.version}"/>
<attribute name="${manifest.impl.attribute.kotlin.runtime.component}" value="${manifest.impl.value.kotlin.runtime.component.core}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.javascript.stdlib}"/>
@@ -386,6 +427,8 @@
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="${manifest.impl.attribute.kotlin.version}" value="${manifest.impl.value.kotlin.version}"/>
<attribute name="${manifest.impl.attribute.kotlin.runtime.component}" value="${manifest.impl.value.kotlin.runtime.component.core}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.jvm.runtime.sources}"/>
@@ -469,7 +512,6 @@
<fileset dir="${output}/classes/compiler"/>
<fileset dir="${output}/builtins">
<include name="kotlin/**"/>
<exclude name="kotlin/internal/**"/>
</fileset>
<fileset dir="${basedir}/core/descriptor.loader.java/src" includes="META-INF/services/**"/>
<fileset dir="${basedir}/compiler/frontend.java/src" includes="META-INF/services/**"/>
@@ -488,8 +530,8 @@
<zipfileset src="${idea.sdk}/lib/jna-platform.jar"/>
<zipfileset src="${idea.sdk}/lib/oromatcher.jar"/>
<zipfileset src="${idea.sdk}/jps/jps-model.jar"/>
<zipfileset src="${dependencies.dir}/jline.jar"/>
<zipfileset src="${dependencies.dir}/cli-parser-1.1.1.jar"/>
<zipfileset src="${dependencies}/jline.jar"/>
<zipfileset src="${dependencies}/cli-parser-1.1.2.jar"/>
<zipfileset src="${protobuf.jar}"/>
<manifest>
@@ -522,8 +564,8 @@
<target name="compiler">
<taskdef resource="proguard/ant/task.properties">
<classpath>
<pathelement path="${dependencies.dir}/proguard.jar"/>
<pathelement path="${dependencies.dir}/proguard-anttask.jar"/>
<pathelement path="${dependencies}/proguard.jar"/>
<pathelement path="${dependencies}/proguard-anttask.jar"/>
</classpath>
</taskdef>
@@ -531,8 +573,10 @@
<javac2 destdir="${output}/classes/compiler" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}">
<withKotlin modulename="kotlin-compiler"/>
<skip pattern="kotlin/jvm/internal/.*"/>
<withKotlin modulename="kotlin-compiler">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src refid="compilerSources.path"/>
<classpath refid="classpath"/>
</javac2>
@@ -583,6 +627,89 @@
</jar>
</target>
<target name="kotlin-build-common">
<cleandir dir="${output}/classes/kotlin-build-common"/>
<javac2 destdir="${output}/classes/kotlin-build-common" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}">
<withKotlin modulename="kotlin-build-common">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<pathelement path="build-common/src"/>
</src>
<classpath>
<pathelement path="${bootstrap.runtime}"/>
<pathelement path="${bootstrap.reflect}"/>
<pathelement path="${idea.sdk}/lib/util.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
</classpath>
</javac2>
<jar destfile="${kotlin-home}/lib/kotlin-build-common.jar">
<fileset dir="${output}/classes/kotlin-build-common"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.build.common}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
<jar jarfile="${output}/kotlin-build-common-sources.jar">
<fileset dir="build-common/src"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.build.common.sources}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<target name="kotlin-build-common-test">
<cleandir dir="${output}/classes/kotlin-build-common-test"/>
<javac2 destdir="${output}/classes/kotlin-build-common-test" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}">
<withKotlin modulename="kotlin-build-common"/>
<skip pattern="kotlin/Metadata"/>
<src path="build-common/test"/>
<classpath>
<pathelement path="${bootstrap.runtime}"/>
<pathelement path="${bootstrap.reflect}"/>
<pathelement path="${bootstrap.kotlin.test}"/>
<pathelement path="${protobuf.jar}"/>
<pathelement path="${idea.sdk}/lib/junit-4.12.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-build-common.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
</classpath>
</javac2>
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="dependencies/jarjar.jar"/>
<jarjar jarfile="${kotlin-home}/lib/kotlin-build-common-test.jar">
<fileset dir="${output}/classes/kotlin-build-common-test"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<zipfileset src="${protobuf.jar}"/>
<rule pattern="com.intellij.**" result="org.jetbrains.kotlin.com.intellij.@1"/>
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.build.common}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jarjar>
</target>
<target name="daemon-client">
<cleandir dir="${output}/classes/daemon-client"/>
@@ -591,40 +718,145 @@
<pathelement path="compiler/daemon/daemon-client/src"/>
</src>
<classpath>
<pathelement path="${bootstrap.runtime}"/>
<pathelement path="${bootstrap.reflect}"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
<pathelement path="${dependencies.dir}/native-platform-uberjar.jar"/>
<pathelement path="${dependencies}/native-platform-uberjar.jar"/>
</classpath>
</kotlinc>
<jar destfile="${kotlin-home}/lib/kotlin-daemon-client.jar">
<fileset dir="${output}/classes/daemon-client"/>
<zipfileset src="${dependencies.dir}/native-platform-uberjar.jar" includes="**" />
<zipfileset src="${dependencies}/native-platform-uberjar.jar" includes="**" />
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.daemon-client}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<target name="android-compiler-plugin">
<cleandir dir="${output}/classes/android-compiler-plugin"/>
<javac2 destdir="${output}/classes/android-compiler-plugin" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false">
<withKotlin modulename="kotlin-android-compiler-plugin"/>
<skip pattern="kotlin/jvm/internal/.*"/>
<target name="android-extensions-compiler">
<cleandir dir="${output}/classes/android-extensions/android-extensions-compiler"/>
<javac2 destdir="${output}/classes/android-extensions/android-extensions-compiler" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false">
<withKotlin modulename="kotlin-android-extensions-compiler">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<pathelement path="plugins/android-compiler-plugin/src"/>
<pathelement path="plugins/android-extensions/android-extensions-compiler/src"/>
</src>
<classpath>
<pathelement path="${idea.sdk}/core/intellij-core.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
</classpath>
</javac2>
<jar destfile="${kotlin-home}/lib/android-extensions-compiler.jar">
<fileset dir="${output}/classes/android-extensions/android-extensions-compiler"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<fileset dir="${basedir}/plugins/android-extensions/android-extensions-compiler/src" includes="META-INF/services/**"/>
</jar>
</target>
<target name="allopen-compiler-plugin">
<cleandir dir="${output}/classes/allopen-compiler-plugin"/>
<javac2 destdir="${output}/classes/allopen-compiler-plugin" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false">
<withKotlin modulename="allopen">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<pathelement path="plugins/allopen/allopen-cli/src"/>
</src>
<classpath>
<pathelement path="${idea.sdk}/core/intellij-core.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
</classpath>
</javac2>
<jar destfile="${kotlin-home}/lib/allopen-compiler-plugin.jar">
<fileset dir="${output}/classes/allopen-compiler-plugin"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<fileset dir="${basedir}/plugins/allopen/allopen-cli/src" includes="META-INF/services/**"/>
</jar>
</target>
<target name="noarg-compiler-plugin">
<cleandir dir="${output}/classes/noarg-compiler-plugin"/>
<javac2 destdir="${output}/classes/noarg-compiler-plugin" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false">
<withKotlin modulename="noarg">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<pathelement path="plugins/noarg/noarg-cli/src"/>
</src>
<classpath>
<pathelement path="${idea.sdk}/core/intellij-core.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
</classpath>
</javac2>
<jar destfile="${kotlin-home}/lib/noarg-compiler-plugin.jar">
<fileset dir="${output}/classes/noarg-compiler-plugin"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<fileset dir="${basedir}/plugins/noarg/noarg-cli/src" includes="META-INF/services/**"/>
</jar>
</target>
<target name="annotation-processing-under-jdk8">
<property environment="env"/>
<condition property="jdk18" value="${env.JDK_18}" else="${env.JAVA_HOME}">
<isset property="env.JDK_18" />
</condition>
<java classname="org.apache.tools.ant.launch.Launcher"
fork="true"
failonerror="true"
timeout="4000000"
taskname="startAnt"
jvm="${jdk18}/bin/java">
<env key="JAVA_HOME" value="${jdk18}"/>
<classpath>
<pathelement location="${ant.home}/lib/ant-launcher.jar"/>
</classpath>
<arg line="-f" />
<arg line="build.xml" />
<arg line="annotation-processing" />
</java>
</target>
<target name="annotation-processing">
<cleandir dir="${output}/classes/annotation-processing"/>
<property environment="env"/>
<javac2 destdir="${output}/classes/annotation-processing" debug="true" debuglevel="lines,vars,source"
includeAntRuntime="false" source="${java.target}" target="${java.target}">
<withKotlin modulename="annotation-processing">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<pathelement path="plugins/kapt3/src"/>
</src>
<classpath>
<!-- JAVA_HOME is set in annotation-processing-under-jdk8 -->
<pathelement path="${env.JAVA_HOME}/lib/tools.jar"/>
<pathelement path="${idea.sdk}/core/intellij-core.jar"/>
<pathelement path="${kotlin-home}/lib/kotlin-compiler.jar"/>
<pathelement path="${bootstrap.runtime}"/>
<pathelement path="${bootstrap.reflect}"/>
</classpath>
</javac2>
<jar destfile="${kotlin-home}/lib/android-compiler-plugin.jar">
<fileset dir="${output}/classes/android-compiler-plugin"/>
<jar destfile="${kotlin-home}/lib/kotlin-annotation-processing.jar">
<fileset dir="${output}/classes/annotation-processing"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<fileset dir="${basedir}/plugins/android-compiler-plugin/src" includes="META-INF/services/**"/>
<fileset dir="${basedir}/plugins/kapt3/src" includes="META-INF/services/**"/>
</jar>
</target>
@@ -632,8 +864,10 @@
<cleandir dir="${output}/classes/ant"/>
<javac2 destdir="${output}/classes/ant" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}">
<withKotlin modulename="kotlin-ant-tools"/>
<skip pattern="kotlin/jvm/internal/.*"/>
<withKotlin modulename="kotlin-ant-tools">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<dirset dir="${basedir}/ant">
<include name="src"/>
@@ -641,9 +875,7 @@
</src>
<compilerarg value="-Xlint:all"/>
<classpath>
<file file="${bootstrap.runtime}"/>
<file file="${bootstrap.reflect}"/>
<pathelement location="${dependencies.dir}/ant-1.8/lib/ant.jar"/>
<pathelement location="${dependencies}/ant-1.8/lib/ant.jar"/>
<pathelement location="${kotlin-home}/lib/kotlin-preloader.jar"/>
</classpath>
</javac2>
@@ -665,30 +897,6 @@
</jar>
</target>
<target name="jdk-annotations">
<jar destfile="${kotlin-home}/lib/kotlin-jdk-annotations.jar">
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.jdk.annotations}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<target name="android-sdk-annotations">
<jar destfile="${kotlin-home}/lib/kotlin-android-sdk-annotations.jar">
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.android.sdk.annotations}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<macrodef name="new-kotlinc">
<attribute name="output"/>
<attribute name="moduleName"/>
@@ -725,16 +933,18 @@
<arg value="-d"/>
<arg value="@{output}"/>
<arg value="-no-stdlib"/>
<arg value="-version"/>
<arg line="@{additionalOptions}"/>
<arg value="-classpath"/>
<arg value="${toString:classpath.path}"/>
<arg value="-module-name"/>
<arg value="@{moduleName}"/>
<arg value="-Xallow-kotlin-package"/>
</java>
<javac2 srcdir="${toString:src.dirset}" destdir="@{output}" debug="true" debuglevel="lines,vars,source"
includeAntRuntime="false" source="${java.target}" target="${java.target}">
<skip pattern="kotlin/jvm/internal/.*"/>
<skip pattern="kotlin/Metadata"/>
<classpath>
<path refid="classpath.path"/>
<!-- Include @{output} here for Java compiler to resolve symbols from Kotlin sources -->
@@ -781,7 +991,7 @@
</target>
<target name="stdlib">
<new-kotlinc output="${output}/classes/stdlib" moduleName="kotlin-stdlib">
<new-kotlinc output="${output}/classes/stdlib" moduleName="kotlin-stdlib" additionalOptions="-Xmultifile-parts-inherit -Xdump-declarations-to ${output}/declarations/stdlib-declarations.json">
<src>
<include name="libraries/stdlib/src"/>
</src>
@@ -791,6 +1001,26 @@
</new-kotlinc>
</target>
<target name="kotlin-test">
<new-kotlinc output="${output}/classes/kotlin-test" moduleName="kotlin-test">
<src>
<include name="libraries/kotlin.test/shared/src/main/kotlin" />
<include name="libraries/kotlin.test/shared/src/main/kotlin.jvm" />
<include name="libraries/kotlin.test/junit/src/main/kotlin" />
</src>
<class-path>
<pathelement path="${output}/classes/builtins"/>
<pathelement path="libraries/lib/junit-4.11.jar"/>
</class-path>
</new-kotlinc>
<pack-runtime-jar jar-name="kotlin-test.jar" implementation-title="${manifest.impl.title.kotlin.test}">
<jar-content>
<fileset dir="${output}/classes/kotlin-test" includes="**/*" excludes="kotlin/internal/OnlyInputTypes*,kotlin/internal/InlineOnly*,kotlin/internal"/>
</jar-content>
</pack-runtime-jar>
</target>
<target name="core">
<new-kotlinc output="${output}/classes/core" moduleName="kotlin-core">
<src>
@@ -838,6 +1068,9 @@
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="${manifest.impl.attribute.kotlin.version}" value="${manifest.impl.value.kotlin.version}"/>
<attribute name="${manifest.impl.attribute.kotlin.runtime.component}" value="${manifest.impl.value.kotlin.runtime.component.core}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="@{implementation-title}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
@@ -853,7 +1086,6 @@
<fileset dir="${output}/classes/stdlib"/>
<zipfileset dir="${output}/builtins">
<include name="kotlin/**"/>
<exclude name="kotlin/internal/**"/>
<!-- TODO: load metadata from @KotlinClass annotation in KotlinBuiltIns on JVM and restore this exclusion -->
<!-- exclude name="kotlin/reflect/**"/ -->
</zipfileset>
@@ -877,31 +1109,46 @@
</jar>
<delete file="${output}/kotlin-reflect-jarjar.jar" failonerror="false"/>
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="dependencies/jarjar.jar"/>
<jarjar jarfile="${output}/kotlin-reflect-jarjar.jar" filesonly="true" filesetmanifest="merge">
<zipfileset src="${output}/kotlin-reflect-before-jarjar.jar"/>
<rule pattern="org.jetbrains.kotlin.**" result="kotlin.reflect.jvm.internal.impl.@1"/>
<rule pattern="com.google.protobuf.**" result="kotlin.reflect.jvm.internal.impl.com.google.protobuf.@1"/>
<rule pattern="javax.inject.**" result="kotlin.reflect.jvm.internal.impl.javax.inject.@1"/>
</jarjar>
<kotlinc src="${basedir}/generators/infrastructure/strip-kotlin-annotations.kts" output="">
<compilerarg value="-script"/>
<compilerarg value="kotlin/jvm/internal/.*"/> <!-- Annotations to strip -->
<compilerarg value="kotlin/reflect/jvm/internal/impl/.*"/> <!-- Classes to strip from -->
<compilerarg value="${output}/kotlin-reflect-jarjar.jar"/>
<compilerarg value="${kotlin-home}/lib/kotlin-reflect.jar"/>
<classpath>
<pathelement location="${idea.sdk}/lib/asm-all.jar"/>
</classpath>
</kotlinc>
<sequential if:true="${obfuscate.reflect}">
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="dependencies/jarjar.jar"/>
<jarjar jarfile="${output}/kotlin-reflect-jarjar.jar" filesonly="true" filesetmanifest="merge">
<zipfileset src="${output}/kotlin-reflect-before-jarjar.jar"/>
<rule pattern="org.jetbrains.kotlin.**" result="kotlin.reflect.jvm.internal.impl.@1"/>
<rule pattern="javax.inject.**" result="kotlin.reflect.jvm.internal.impl.javax.inject.@1"/>
</jarjar>
<kotlinc src="${basedir}/generators/infrastructure/strip-kotlin-annotations.kts" output="">
<compilerarg value="-version"/>
<compilerarg value="-script"/>
<compilerarg value="kotlin/Metadata"/> <!-- Annotation to strip -->
<compilerarg value="kotlin/reflect/jvm/internal/impl/.*"/> <!-- Classes to strip from -->
<compilerarg value="${output}/kotlin-reflect-jarjar.jar"/>
<compilerarg value="${kotlin-home}/lib/kotlin-reflect.jar"/>
<classpath>
<pathelement location="${idea.sdk}/lib/asm-all.jar"/>
</classpath>
</kotlinc>
</sequential>
<sequential unless:true="${obfuscate.reflect}">
<echo message="Obfuscation of kotlin-reflect is disabled"/>
<copy file="${output}/kotlin-reflect-before-jarjar.jar" tofile="${output}/kotlin-reflect-jarjar.jar" overwrite="true"/>
<copy file="${output}/kotlin-reflect-before-jarjar.jar" tofile="${kotlin-home}/lib/kotlin-reflect.jar" overwrite="true"/>
</sequential>
</target>
<target name="pack-runtime-sources">
<!-- Rename packages in the sources of reflection impl (core) -->
<delete dir="${output}/core.src" failonerror="false"/>
<copy todir="${output}/core.src/kotlin/reflect/jvm/internal/impl">
<local name="runtime.sources.base.dir"/>
<condition property="runtime.sources.base.dir"
value="${output}/core.src/kotlin/reflect/jvm/internal/impl"
else="${output}/core.src/org/jetbrains/kotlin">
<istrue value="${obfuscate.reflect}"/>
</condition>
<copy todir="${runtime.sources.base.dir}">
<fileset dir="core">
<include name="descriptor.loader.java/src/**"/>
<include name="descriptors/src/**"/>
@@ -911,9 +1158,13 @@
</fileset>
<cutdirsmapper dirs="5"/> <!-- module/src/org/jetbrains/kotlin -->
</copy>
<replaceregexp match="org\.jetbrains\.kotlin" replace="kotlin.reflect.jvm.internal.impl" flags="g">
<fileset dir="${output}/core.src"/>
</replaceregexp>
<sequential if:true="${obfuscate.reflect}">
<!-- Rename packages in the sources of reflection impl (core) -->
<replaceregexp match="org\.jetbrains\.kotlin" replace="kotlin.reflect.jvm.internal.impl" flags="g">
<fileset dir="${output}/core.src"/>
</replaceregexp>
</sequential>
<pack-runtime-jar jar-name="kotlin-runtime-sources.jar" implementation-title="${manifest.impl.title.kotlin.jvm.runtime.sources}">
<jar-content>
@@ -936,14 +1187,14 @@
</target>
<target name="runtime"
depends="builtins,stdlib,core,reflection,pack-runtime,pack-runtime-sources"/>
depends="builtins,stdlib,kotlin-test,core,reflection,pack-runtime,pack-runtime-sources,mock-runtime-for-test"/>
<target name="dist"
depends="clean,init,prepare-dist,preloader,runner,serialize-builtins,compiler,compiler-sources,ant-tools,jdk-annotations,android-sdk-annotations,runtime,kotlin-js-stdlib,android-compiler-plugin,daemon-client"
depends="clean,init,prepare-dist,preloader,runner,serialize-builtins,compiler,compiler-sources,kotlin-build-common,ant-tools,runtime,kotlin-js-stdlib,android-extensions-compiler,allopen-compiler-plugin,noarg-compiler-plugin,annotation-processing-under-jdk8,daemon-client,kotlin-build-common-test"
description="Builds redistributables from sources"/>
<target name="dist-quick"
depends="clean,init,prepare-dist,preloader,serialize-builtins,compiler-quick,ant-tools,jdk-annotations,android-sdk-annotations,runtime,kotlin-js-stdlib,android-compiler-plugin"
depends="clean,init,prepare-dist,preloader,serialize-builtins,compiler-quick,ant-tools,runtime,kotlin-js-stdlib,android-extensions-compiler,allopen-compiler-plugin,noarg-compiler-plugin,annotation-processing-under-jdk8"
description="Builds everything, but classes are reused from project out dir, doesn't run proguard and javadoc"/>
<target name="dist-quick-compiler-only"
@@ -963,8 +1214,10 @@
<javac2 destdir="${output}/classes/idea-analysis" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false"
source="${java.target}" target="${java.target}">
<withKotlin modulename="kotlin-for-upsource"/>
<skip pattern="kotlin/jvm/internal/.*"/>
<withKotlin modulename="kotlin-for-upsource">
<compilerarg value="-version"/>
</withKotlin>
<skip pattern="kotlin/Metadata"/>
<src>
<dirset dir="${basedir}/idea/ide-common" includes="src"/>
<dirset dir="${basedir}/idea/idea-analysis" includes="src"/>
@@ -985,7 +1238,6 @@
<fileset dir="${output}/classes/compiler"/>
<fileset dir="${output}/builtins">
<include name="kotlin/**"/>
<exclude name="kotlin/internal/**"/>
</fileset>
<fileset dir="${basedir}/core/descriptor.loader.java/src" includes="META-INF/services/**"/>
<fileset dir="${basedir}/compiler/frontend.java/src" includes="META-INF/services/**"/>
@@ -1035,6 +1287,28 @@
</zip>
</target>
<target name="mock-runtime-for-test">
<delete dir="${output}/mock-runtime-src" failonerror="false"/>
<mkdir dir="${output}/mock-runtime-src"/>
<copy file="${basedir}/libraries/stdlib/src/kotlin/util/Standard.kt" todir="${output}/mock-runtime-src"/>
<copy file="${basedir}/libraries/stdlib/src/kotlin/internal/Annotations.kt" todir="${output}/mock-runtime-src"/>
<new-kotlinc output="${output}/classes/mock-runtime" moduleName="kotlin-stdlib">
<src>
<include name="dist/mock-runtime-src"/>
</src>
<class-path>
<pathelement path="${output}/classes/builtins"/>
</class-path>
</new-kotlinc>
<pack-runtime-jar jar-dir="${output}" jar-name="kotlin-mock-runtime-for-test.jar" implementation-title="Kotlin Mock Runtime">
<jar-content>
<fileset dir="${output}/classes/mock-runtime"/>
</jar-content>
</pack-runtime-jar>
</target>
<target name="build-bootstrap-artifacts" depends="dist,zip-compiler"/>
<target name="build-artifacts" depends="dist,zip-compiler,kotlin-for-upsource,zip-test-data"/>

29
common.xml Normal file
View File

@@ -0,0 +1,29 @@
<project name="Commons">
<condition property="isWindows">
<os family="windows"/>
</condition>
<condition property="isMac">
<os family="mac"/>
</condition>
<condition property="isLinux">
<and>
<os family="unix"/>
<not>
<os family="mac"/>
</not>
</and>
</condition>
<property name="dependencies" value="${basedir}/dependencies"/>
<property name="output" value="${basedir}/dist"/>
<property name="js.stdlib.output.dir" value="${output}/js"/>
<target name="make-dependency-dirs">
<mkdir dir="${dependencies}"/>
<mkdir dir="${dependencies}/download"/>
</target>
</project>

Some files were not shown because too many files have changed in this diff Show More