2372 Commits

Author SHA1 Message Date
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
Nikolay Krasko a2c567da93 Common injector for lazy resolve with java lazy resolve 2014-02-20 16:31:22 +04:00
Alexander Udalov 8c97d9ebb3 Fix rangeTo between Float and Long
Float.rangeTo(Long) and Long.rangeTo(Float) now both return FloatRange for
consistency with other binary operations between floats and longs which, in
turn, return float to be consistent with Java
2014-02-19 17:46:18 +04:00
Andrey Breslav 5478204e2d PlatformToKotlinClassMap can be obtained from the module 2014-02-18 19:51:49 +04:00
Nikolay Krasko f14f2c19a8 Fix goto class action in Idea 13.1 2014-02-18 14:39:19 +04:00
Nikolay Krasko bd859efb39 Generator for goto symbols test 2014-02-17 22:12:09 +04:00
max-kammerer 1c7bb85193 Merge pull request #372 from pk382/replace-dot-qualified-call-intention
New Intention Action: Replace a dot-qualified function call with an infix function call.
2014-02-17 13:20:02 +03:00
Pavel V. Talanov 4c57aa9f23 Generate Injectors: minor, remove redundant GenerateInjectors class 2014-02-14 16:47:23 +04:00
Pavel V. Talanov f8a8bbe9b0 Generate Injectors: add ability to specify that a field is a context
Context field's properties can injected into other components
Use it in GenerateInjectors.kt
2014-02-14 16:47:22 +04:00
Pavel V. Talanov 6c77ea91c5 Generate Injectors: simplify and remove redundancy 2014-02-14 16:47:21 +04:00
Pavel V. Talanov 1ab4c2763f Generate Injectors: rewrite facade to Kotlin 2014-02-14 16:47:19 +04:00
Pavel V. Talanov 73dd8a051a Remove useless InjectorForJvmCodegen 2014-02-14 16:47:18 +04:00
Pradyoth Kukkapalli 44234c7c0a New Intention Action: Replace a dot-qualified function call with an infix function call. 2014-02-14 00:18:09 -05:00
Evgeny Gerashchenko 846ee2c8ac Introduced protobuf generating script.
It generates two variants: lite (for runtime usage) and debug (for
tests).
2014-02-13 20:46:28 +04:00
Svetlana Isakova 9832676701 generate constraint system tests
more tests added
2014-02-12 12:48:13 +04:00
Pavel V. Talanov 4a3ccc4eac JDR: do not create package fragment for class statics if class cannot be resolved
This keeps behaviour consistent in rare cases when JavaClass can be found but not resolved
As of now this can happen in IDE if we take PsiClass from index but file structure is wrong so we can't resolve the class
Add test which documents this case
2014-02-11 17:17:34 +04:00
Pavel V. Talanov 2fe2a50b14 Refactor JDR: use JavaResolverCache in LazyJavaPackageFragmentProvider directly
Remove LazyJavaClassResolverWithCache
This actually can affect behaviour because JavaResolverCache has slightly different logic (uses CLASS key in BindingContext as opposed to FQNAME_TO_CLASS_DESCRIPTOR)
2014-02-11 17:17:01 +04:00
Pavel V. Talanov 18d088cb71 Refactor JDR: create LazyJavaPackageFragmentProvider in injector 2014-02-11 17:17:00 +04:00
Pradyoth Kukkapalli 8b6bd8a184 New Intention Action: Replace an infix function call with a dot qualified method call. 2014-02-09 09:05:19 -08:00
Tuomas Tynkkynen 85c46019d3 Add test suite for smart expression selector
Add test suite for smart expression selector (the small expression list
popup in e.g. Extract Variable.)

The test file format is similar to that in JetNameSuggesterTest: a .kt
file with the usual <caret> marker specifying the place where the smart
selector will be run. Then, the last comment in the file should contain
the expected outcome.
2014-02-09 17:22:24 +04:00
Andrey Breslav 9f918d48b5 JavaDescriptorResolver always uses lazy mode 2014-02-05 18:12:01 +04:00
Pavel V. Talanov 61153c87e0 Insert imports on copy/paste
Introduce KotlinCopyPasteReferenceProcessor
2014-02-04 20:19:52 +04:00
Pavel V. Talanov 4638806d11 Shorten references: Do not lookup packages when searching for conflicting declarations
Minor: use JetTreeVisitor
2014-02-04 17:09:37 +04:00
Andrey Breslav e60bd514fa StorageManager&ExceptionTracker delivered where needed
- GlobalContext introduced to group the two
- Caches track exceptions
2014-02-04 15:24:27 +04:00
Andrey Breslav 364182e3f0 Unneeded public parameters made private 2014-02-04 15:23:15 +04:00