Commit Graph

4508 Commits

Author SHA1 Message Date
asedunov 85dbd8cf49 Merge pull request #410 from kuity/unnecessaryParensInWhenToIf
Fix KT-4385 "Unnecessary parentheses in "replace when with if"
2014-03-17 13:00:10 +01:00
Alexander Udalov 307f52895a Refactor KotlinJvmBinaryClass, VirtualFileKotlinClass, etc.
VirtualFileKotlinClass now reads its header and name on creation. This is not
lazy enough and may be slower in some circumstances, but has the following
advantage: if anything is wrong in the header, a VirtualFileKotlinClass
instance will not be created at all, making it nearly impossible for the client
code to operate on invalid data causing all kinds of exceptions
2014-03-14 16:00:20 +04:00
Lingzhang 877b9f2d99 KT4385 Bug Fix for Unnecessary Parentheses in WhenToIfIntention 2014-03-13 21:26:03 -04:00
Mikhael Bogdanov f475f3ba31 Inline checkbox in BytecodeToolWindow 2014-03-13 14:06:57 +04:00
Natalia Ukhorskaya 000dd4478a Rename 2014-03-13 10:07:13 +04:00
Natalia Ukhorskaya a2879f229a Add serializer for compile-time constant initializer 2014-03-13 10:07:05 +04:00
Natalia Ukhorskaya 073d345841 Extract BaseDeserializer from AnnotationDeserializer. Move storage to separate class 2014-03-13 10:07:04 +04:00
Nikolay Krasko 569f139d8a Update to idea 135.406, support 135 and 136 branch 2014-03-12 18:39:32 +04:00
Zack Grannan 6156a56a4b Generated tests 2014-03-12 16:02:57 +04:00
Zack Grannan 3862a3b5bc Added ifThenToSafeAccessIntention 2014-03-12 16:02:56 +04:00
Zack Grannan 1f720c8559 Added safeAccessToIfThen intention 2014-03-12 16:02:55 +04:00
Zack Grannan 1ca4bb0e79 Added ifThenToElvisIntention 2014-03-12 16:02:55 +04:00
Zack Grannan 673369affe Added elvisToIfThenIntention 2014-03-12 16:02:54 +04:00
Zack Grannan 6b5e46da50 Added IfThenUtils 2014-03-12 16:02:53 +04:00
Zack Grannan fcbd7b357a Modified doRefactoring to allow occurrences to be specified 2014-03-12 14:43:08 +04:00
Zalim Bashorov 33360c2528 Dropped some TODOs
#KT-2564 Obsolete. Looks like, it's fixed in dcddd04.
2014-03-11 20:03:58 +04:00
Steven Allen 84a8911822 Add replacement intentions for operator functions
Add intentions for replacing attribute calls that correspond to
overloadable operators with their respective operators.

This commit includes call replacements for:
 * Binary Infix Operators: plus, minus, times, rangeTo, mod, div
 * Unary Prefix Operators: plus, minus, not
 * Array Index Operator: get
 * In Operator: contains
2014-03-10 11:15:11 -04:00
Steven Allen 162ed64706 Add ability to test for expected intention text
If a testData file contains `// INTENTION_TEXT: ...`, the tested
intention's description must match `...`.
2014-03-10 10:46:28 -04:00
Steven Allen 8b88dff205 Add ability to test for expected errors in intentions
If an intention test contains `// SHOULD_FAIL_WITH: my_string`, the test
is expected to throw `IntentionTestException("my_string")`. This is
useful for testing whether or not a function that should be called, is
called (a pop-up dialog is displayed, etc.).
2014-03-10 10:46:28 -04:00
Nikolay Krasko bbe9be5150 Fix 'No type in binding context for: <some class> from light class generation' exception
#KT-4668 Fixed
2014-03-08 02:55:29 +04:00
Alexey Sedunov 8b0e8ed398 Keep original expression when attempting to bind reference to empty FqName 2014-03-07 19:24:37 +04:00
Alexey Sedunov ca65e27214 Minor refactoring 2014-03-07 19:24:36 +04:00
Alexey Sedunov 09574d72b8 Translate JetSimpleNameReference to Kotlin 2014-03-07 19:24:35 +04:00
Alexey Sedunov c9d10cfcd3 Do not postpone reference lengthening
Do not shorten references located in import/package directives
2014-03-07 19:24:34 +04:00
Alexey Sedunov 5327031300 Update references when moving Kotlin file
#KT-1696 Fixed
2014-03-07 19:24:33 +04:00
Alexey Sedunov e4df997ad0 Fix warnings 2014-03-07 19:24:31 +04:00
Alexey Sedunov 99b8c47276 Extract reference resolver from ShortenReferences 2014-03-07 19:24:30 +04:00
Natalia Ukhorskaya d9d045cbb2 Fix line separators for windows in tests 2014-03-07 18:05:12 +04:00
Alexander Udalov 4937812414 Rewrite KotlinClassHeader to Kotlin 2014-03-07 03:43:41 +04:00
Alexander Udalov 39cd3b1e13 Add tests that there's no PSI for all kinds of synthetic classes 2014-03-07 03:43:28 +04:00
Alexander Udalov cbfb626d50 Write KotlinSyntheticClass to generated classes for functions
That is SAM wrappers, callable reference wrappers, local functions and
anonymous functions
2014-03-07 03:08:18 +04:00
Alexander Udalov 36936e0a6b Minor fix in tests for sources appearing in libraries 2014-03-07 03:08:16 +04:00
gavinkeusch 2f613638c2 KT-4562 New Intention: Add and Remove braces from control statements that have single line bodies 2014-03-06 23:45:45 +04:00
Pavel V. Talanov d05697d3ac Optimize Imports tests: add test for qualified expression with nested enum 2014-03-06 18:45:37 +04:00
Pavel V. Talanov 6f9b3f1bae Optimize Imports: simplify code 2014-03-06 16:01:07 +04:00
Pavel V. Talanov 809be9b069 Optimize Imports: do not keep imports of unimportable entities 2014-03-06 16:01:06 +04:00
Pavel V. Talanov c87cc0dde1 Optimize Imports tests: Switch to generated approach
Move test and rename test data
Delete unused testdata
Rewrite OptimizeImportOnFlyTest
2014-03-06 16:01:05 +04:00
Pavel V. Talanov 3155a66319 Move, rewrite and rename JetImportOptimizer
Rewrite it to Kotlin and rename to KotlinImportOptimizer, move to imports package
Create ImportsUtils.kt
2014-03-06 16:01:04 +04:00
Pavel V. Talanov f5c8557ff7 Rewrite optimize imports using JetReference#resolveToDescriptors
#KT-4451 Fixed
2014-03-06 16:01:03 +04:00
Pavel V. Talanov 6f2ed9a5a9 Add JetMultiDeclarationReference
A reference to component* functions
2014-03-06 16:01:02 +04:00
Nikolay Krasko ea5788f86c Assert with framework statements
Should work even if -ea is not enabled
2014-03-05 17:31:26 +04:00
Tuomas Tynkkynen 8ce0d43118 Add intention for converting an implicit 'it' parameter to an explicitly named parameter
Kotlin's function literals have a shortcut for one-argument literals:
the single argument doesn't need to be explicitly named, but can be
referred via the 'it' contextual keyword. Add an intention action for
converting an implicit 'it' parameter to an explicitly named one.

For example, 'array(1, 2, 3).filter { it % 2 == 0 }'
          -> 'array(1, 2, 3).filter { x -> x % 2 == 0 }'
2014-03-05 17:31:25 +04:00
Tuomas Tynkkynen c6d6a32314 Add intention for replacing explicit function literal parameter with 'it'
Kotlin's function literals have a shortcut for one-argument literals:
the single argument doesn't need to be explicitly named, but can be
referred via the 'it' contextual keyword.

For example, 'array(1, 2, 3).filter { x -> x % 2 == 0 }'
          -> 'array(1, 2, 3).filter { it % 2 == 0 }'

Add an intention action for this transformation.
2014-03-05 17:31:21 +04:00
Andrey Breslav f752527e48 Test data fixed after adding a new intention 2014-03-05 12:02:14 +04:00
Pavel V. Talanov dab6716664 Minor: fix test data for PropertyMetadata completion test 2014-03-04 21:20:01 +04:00
Pavel V. Talanov 0cfac5f9c7 Decompiler: show java file with a comment when kotlin file has incompatible abi version
Introduce JetDecompilerForWrongAbiVersion
2014-03-04 21:19:59 +04:00
Pavel V. Talanov 825dacfd13 Migrate to newer API 2014-03-04 21:19:58 +04:00
Pavel V. Talanov 7db9d31a70 Decompiler: allow java decompiler to process trait impl classes 2014-03-04 21:19:57 +04:00
Pavel V. Talanov 50d59c789a Decompiler: do not create decompiled files for inner classes and anonymous functions
Rewrite DecompiledUtils to Kotlin
2014-03-04 21:19:56 +04:00
Pavel V. Talanov 80bc7b286a Test for reference to nested class in library 2014-03-04 21:19:55 +04:00