Commit Graph

396 Commits

Author SHA1 Message Date
Andrey Breslav d5eea09146 Imports moved from under the script node to top level 2014-04-01 12:36:52 +04:00
Andrey Breslav b8119a57ab Script parameters supported in LAZY mode 2014-04-01 12:36:51 +04:00
Natalia Ukhorskaya 32a6205d81 SmartStepInto in top level functions. Add test for debugger
#KT-4737 Fixed
2014-04-01 10:41:34 +04:00
Mikhael Bogdanov 5b5ecca12a Inline test: check that no any inline method is called directly 2014-03-31 20:04:23 +04:00
gavinkeusch a6a1bb2b7c KT-4574 New Intention: Split If - converts if statement containing one or more conjunction operators into two nested if statements 2014-03-31 14:40:00 +04:00
Valentin Kipyatkov 50bb90a1e3 Smart completion: support for overloaded method calls 2014-03-27 15:21:57 +04:00
Alexey Sedunov 15364ceae6 Fix bug in test generation (as introduced by earlier commit) 2014-03-27 13:00:37 +04:00
Alexey Sedunov a0bc6a7b39 Base classes for Kotlin inspections 2014-03-25 16:49:40 +04:00
kuity 48b9dcf5ae Added KT-4549 SwapBinaryExpression Intention 2014-03-25 15:55:53 +04:00
Evgeny Gerashchenko d62bc07437 Partial compilation of package (only functions supported). 2014-03-25 14:31:38 +04:00
Ross Hanson 55e888604e KT-4568: Created the ConvertNegatedExpressionWithDemorgansLaw intention. Converts an expression of the form !(a &&,|| b) to its expanded equivalent under DeMorgan's law. 2014-03-25 10:25:47 +04:00
Ross Hanson 2147a88ed8 KT-4568: Created the ConvertNegatedBooleanSequence intention. This intention takes an expression of the form !a &&,|| !b &&,|| ... and converts it to the DeMorgan equivalent !(a &&,|| b ...). 2014-03-25 10:25:47 +04:00
Ilya Ryzhenkov 98c54f39bb Unify script file extensions to "kts" so that IDEA, compiler and tests agree when to parse as SCRIPT.
Include kt* files into formatter test generation, to test scripting formatting
2014-03-24 18:17:50 +04:00
Pavel V. Talanov fd5aea7c14 Refactor: use generated approach for stubs test
Remove meaningless assertion
Add comment to NotStorePropertyFromDelegate test
2014-03-24 17:06:07 +04:00
Natalia Ukhorskaya e8d2ba197e Debugger: implement Smart Step Into
#KT-4639 Fixed
2014-03-21 16:08:01 +04:00
Steven Allen d198465522 Add an intention to simplify negated binary expressions
Given an expression of the form `!(a op b)`, replace it with `a !op b`.

For example:

    !(a < b)    -> a >= b
    !(a is Int) -> a !is int
2014-03-19 12:10:28 -04:00
Natalia Ukhorskaya 6089f5e3ef Remove DescriptorSerializationTest 2014-03-13 10:07:03 +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
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
Svetlana Isakova 88f2c32724 added DataFlowInfoTest 2014-03-07 21:08:16 +04:00
Alexander Udalov 64ac223895 Move DebugProtoBuf to module "compiler-tests"
To help debug serialization-related code in compiler tests
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 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
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
Pavel V. Talanov 016fa4b817 Add test for decompiled text 2014-03-04 21:19:46 +04:00
Tal Man 8cf965db7e 2 intentions for moving lambda functions;
moves lambda functions in function calls inside and outside of the
parenthesis: foo({ it }) <-> foo() { it }
2014-03-04 20:07:42 +04:00
Valentin Kipyatkov a2f6b99862 Convert to block body intention action 2014-03-04 19:13:54 +04:00
Mikhael Bogdanov 4f5b20a8db Test framework for inline 2014-03-03 15:43:35 +04:00
Alexander Udalov d5e2c4ad4c Generate built-in sources of arrays
Extract Array class into a separate file, move arrayOfNulls to Library.kt, fix
formatting and generate Arrays.kt
2014-03-02 19:55:27 +04:00
Alexander Udalov 6b0fce8cd5 Unsorted replacements "jet" -> "kotlin"
#KT-2896 Fixed
2014-03-02 19:55:15 +04:00
Alexander Udalov 0490d4c989 Rewrite ProgressionUtil to Kotlin, move to "kotlin.internal"
Use reflection in ProgressionUtilTest instead of calling methods on the class
from the class path, because in the latter case we were just testing
ProgressionUtil from bootstrap runtime (which, presumably, always works
correctly since it's a bootstrap distribution)

With this change, compilable built-ins (under core/builtins/src) are fully
written in Kotlin
2014-03-02 19:54:59 +04:00
Alexander Udalov d8066c8d56 Delete unused DefaultJetObject 2014-03-02 19:54:58 +04:00
Alexander Udalov 19acc8c6c4 Move jet.runtime.ArrayIterator to package "kotlin.jvm.internal" 2014-03-02 19:54:57 +04:00
Alexander Udalov 5d6d4406cb Move FunctionImpl classes from package "jet" to "kotlin" 2014-03-02 19:54:56 +04:00
Alexander Udalov 3dcd85bdb4 Add toString() to Any, fix all tests
#KT-4517 Fixed
2014-03-02 19:54:49 +04:00
Alexander Udalov 83d2436fb9 Don't produce trailing spaces in GenerateOperationsMap 2014-03-02 19:54:48 +04:00
Alexander Udalov c3e5b4bed2 Fix function receiver type in GenerateOperationsMap
It was wrong for fake overrides of equals and hashCode. Also operations map was
regenerated after removal of Hashable and moving its members to Any
2014-03-02 19:54:48 +04:00
Alexander Udalov ec30d52978 Delete Hashable, pull up its members to Any
Extensions on nullable types remain in Library.kt

 #KT-1741 Obsolete
 #KT-2805 Obsolete
 #KT-1365 Fixed
 #KT-4517 In Progress
2014-03-02 19:54:08 +04:00
Alexander Udalov 9efdd136ba Delete jet.runtime.Ranges intrinsics
All these "rangeTo" methods were pretty small and could be generated just right
into "rangeTo" function calls
2014-02-28 21:48:32 +04:00
Alexey Sedunov d7aa8e7fc8 Testing framework for Move refactoring 2014-02-27 17:00:31 +04:00
Tuomas Tynkkynen 998d2c5ec8 Add tests for JetRefactoringUtil.selectExpression
Add tests for JetRefactoringUtil.selectExpression, which is invoked by
e.g. extract variable when some text is selected.

Test cases under idea/testData/expressionSelection/ should contain
Kotlin files with the usual <selection> tags, with the expected result
of selectExpression in the last comment of the file.
2014-02-24 22:40:05 +04:00
Tal Man 89779b5013 2 Intentions for string templates:
the first removes curly braces from a simple name variable, ${x} -> $x
and the second does the opposite $x -> ${x}
2014-02-24 21:20:40 +04:00
Andrey Breslav 50a160afb1 Do not pass TopDownAnalysisParameters to injectors 2014-02-24 17:26:04 +04:00
Andrey Breslav 4e0df6fd80 Do not create TopDownAnalysisContext in injectors 2014-02-24 15:52:57 +04:00
Andrey Breslav f32d8b1d06 Do not inject BodiesResolveContext into BodyResolver 2014-02-24 15:52:53 +04:00
Andrey Breslav 5b67cf67eb Usages of expressionTypingServices from ExpressionTypingContext are replaced with injection
The basic principle behind this change is that no context object should store components.
Components should be injected instead, and contexts only carry parameters around.

Particular changes:
- resolveCallWithGivenName() and resolveBinaryCall() moved to CallResolver
- ForLoopConventionsChecker introduced to confine checking conventions for Iterator and Iterable
- ExpressionTypingComponents introduced to deliver necessary components to ExpressionTypingVisitor's
- Some static methods became non-static to get access to injected components
- ExpressionTypingUtils and ControlStructureTypingUtils became components (got state injected) to avoid passing parameters around
2014-02-24 15:52:52 +04:00