Andrey Breslav
d28ca5bdfa
Empty parameter list should go before '->' in a lambda
...
Example:
val x = { -> foo() }
2014-04-14 19:15:08 +04:00
Alexander Udalov
4a60c59f39
Minor, fix KotlinSignature of DFS methods
2014-04-14 16:02:10 +04:00
Alexander Udalov
79e7ee91e4
Generate bridges for trait implementations properly
...
The intent was to keep the bridge codegen model as simple as possible: we
should be able to figure out all necessary bridges only by a minimal interface
that FunctionHandle provides (isAbstract, isDeclaration, getOverridden)
Add different tests for bridges
#KT-318 Obsolete
2014-04-11 21:57:47 +04:00
Alexander Udalov
4a12ea9bda
Don't generate bridges in light classes mode
2014-04-11 21:57:46 +04:00
Alexander Udalov
b0db6a4526
Rewrite bridge generation to Kotlin, make it abstract
2014-04-11 21:57:46 +04:00
Alexander Udalov
fc838dbb53
Refactor ImplementationBodyCodegen.getTraitImplementations()
...
Make it static, extract a method which finds an implementation in a trait for a
fake override
2014-04-11 21:57:46 +04:00
Alexander Udalov
5967befa6a
Minor, catch all exceptions in asm verification in tests
...
E.g. ClassFormatError
2014-04-11 21:57:45 +04:00
Alexander Udalov
28940256e3
Minor, add bytecode text test on bridges for fake overrides
2014-04-11 21:57:45 +04:00
Alexander Udalov
478766815d
Consider all real functions, not only declarations in bridge codegen
...
There should be bridges to all of the functions present in bytecode
2014-04-11 21:57:45 +04:00
Alexander Udalov
04c237cc22
Generate bridges for fake overrides when needed
...
#KT-3985 Fixed
#KT-4145 Fixed
2014-04-11 21:57:44 +04:00
Alexander Udalov
2c2c918447
Refactor bridges algorithm in codegen
...
- fix a typo (which apparently didn't matter)
- queue now always contains originals, no need to invoke getOriginal()
- no need to add current descriptor's original anymore, this was a hack working
around a problem with trait-impl which was fixed by another change
- a small optimization: don't do anything for constructors
2014-04-11 21:57:44 +04:00
Alexander Udalov
320a17739d
Minor, move and rename getExceptions
...
Should only be used in FunctionCodegen from now on, because every method
generation should go through FunctionCodegen
2014-04-11 21:57:43 +04:00
Alexander Udalov
11386c0f7a
Simplify codegen for trait methods with implementations
...
- use existing framework (FunctionCodegen.generateMethod) which will take care
of all subtleties of method generation (bridges, annotations, thrown
exceptions, etc)
- call to "generateThisOrOuter" was not needed, since when we're generating
delegation to TImpl, "this" is always "ALOAD 0"
2014-04-11 21:57:43 +04:00
Alexander Udalov
089cba5791
Warn about unwrapFakeOverride in a comment
2014-04-11 21:39:56 +04:00
Evgeny Gerashchenko
b9ddc107ba
Merge pull request #443 from Stebalien/fix-eqeqeq
...
Accepted, thank you
2014-04-11 21:06:42 +04:00
Steven Allen
6de114366f
Correctly unparse EQEQEQ and EXCLEQEQEQ into === and !== (instead of == and !=).
...
Reported by Pradyoth Kukkapalli on the kotlin-students mailing list.
2014-04-11 12:46:26 -04:00
Natalia Ukhorskaya
ed7a156553
Merge remote-tracking branch 'origin/pr/435'
...
Conflicts:
idea/src/META-INF/plugin.xml
idea/tests/org/jetbrains/jet/plugin/codeInsight/JetInspectionTestGenerated.java
2014-04-11 12:11:44 +04:00
Natalia Ukhorskaya
f6a4cce3ae
Merge pull request #434 from zgrannan/if_then_to_elvis_inspection
...
KT-4555 Inspection to detect if's that are foldable to elvis operator
2014-04-11 11:59:42 +04:00
Zack Grannan
867925d5a1
Added ifThenToSafeAccessInspection
2014-04-10 15:44:59 -07:00
Zack Grannan
328607a3ab
Added ifThenToElvisInspection
...
Conflicts:
idea/src/META-INF/plugin.xml
2014-04-10 14:43:18 -07:00
Tal Man
cfc16b410e
Intention for adding explicit type arguments at function calls
2014-04-10 16:28:42 +04:00
Natalia Ukhorskaya
f8db722011
Merge pull request #392 from wutalman/simplify_booleans
...
KT-4569: Intention to simplify boolean expressions with constants #KT-4569 Fixed
2014-04-10 11:00:16 +04:00
Tal Man
0feb0d35e6
Intention to simplify boolean expressions that have expressions in them that can be simplified to constants
2014-04-09 14:47:13 -04:00
Tal Man
aeb5bae556
Refactoring of CompileTimeConstant, introduce flag to represent a constant being referenced by a variable
2014-04-09 14:47:05 -04:00
Pavel Talanov
32651ec05f
Merge pull request #431 from gavinkeusch/split_if_new
...
KT-4794: Added functionality to KT-4574: Split If. Intention is now offered inside IF keyword
2014-04-09 09:10:50 -07:00
gavinkeusch
216ea4940d
KT-4794: Added functionality to KT-4574: Split If. Intention is now offered inside IF keyword
2014-04-08 11:29:30 -07:00
Evgeny Gerashchenko
c32bb67365
Updated to IDEA 135.667 (13.1.2 EAP)
2014-04-08 19:29:44 +04:00
Alexey Sedunov
f5fb2ea0ab
Reuse intention test data in inspection tests
2014-04-08 15:34:51 +04:00
asedunov
32a2e63ae5
Merge pull request #386 from pk382/operator-assign-intention
...
Intention: Convert between "+=" and "a = a + b"
#KT-4563 Fixed
2014-04-08 11:03:08 +02:00
Pradyoth Kukkapalli
eb3ddf50bf
New Intention Action: Replace with traditional assign.
...
This takes an expression of the form a += b and converts it to an
expression form a = a + b.
2014-04-07 09:43:02 -04:00
Pradyoth Kukkapalli
249af96d3c
New Intention Action: Replace with operator assign
...
Replaces a statement of the form a = a + b with a statement of the form
a += b.
2014-04-07 09:43:01 -04:00
Andrey Breslav
8777ab9ee8
Extra instructions added
2014-04-05 12:39:33 +03:00
Nikolay Krasko
f41f48b112
Use lazy resolve in name suggester
2014-04-05 04:41:31 +04:00
Nikolay Krasko
dd45da01d1
Fix "Extract variable" for anonymous object suggests name "nonameprovided" (KT-4813)
...
#KT-4813 Fixed
2014-04-05 04:41:31 +04:00
zarechenskiy
43b41f6db9
Implement formatMethod in JavaSignatureFormatter without PSI
2014-04-04 17:40:37 +04:00
zarechenskiy
fe48051041
Remove acces to JavaPropertyInitializerEvaluator through ServiceLoader by injecting it in GenerateInjectors
2014-04-04 17:40:37 +04:00
zarechenskiy
2e4028ba3a
Move method createArrayType to JavaType and drop JavaElementFactory
2014-04-04 17:40:36 +04:00
zarechenskiy
735df2e340
Drop getExternal method from JavaSignatureFormatter
2014-04-04 17:40:36 +04:00
zarechenskiy
d7337fbe94
Remove PSI in TraceBasedExternalSignatureResolver, AlternativeFieldSignatureData, AlternativeMethodSignatureData
2014-04-04 17:40:35 +04:00
Alexander Udalov
77b2b29641
Show uninitialized descriptor's name in DeclarationDescriptor.toString()
2014-04-04 17:40:34 +04:00
Nikolay Krasko
5606c21f89
Remove synchronous VFS refresh to avoid deadlocks (KT-4584)
...
#KT-4584 Fixed
2014-04-04 02:10:31 +04:00
Nikolay Krasko
48570ebc64
Automatically enable Kotlin plugin if it was disabled
2014-04-04 02:10:30 +04:00
Nikolay Krasko
6e8c1df5ee
Minor: fix always null warning
2014-04-04 02:10:29 +04:00
Nikolay Krasko
a7bc9ec96c
Minor: use directive with current ABI version in test data
2014-04-04 02:10:29 +04:00
Alexander Udalov
8006fcc819
Minor, add assertion message
2014-04-03 19:33:22 +04:00
Alexander Udalov
750d3e8de7
Drop MutableClassDescriptorLite
...
Inline it into MutableClassDescriptor
2014-04-03 19:13:11 +04:00
Alexander Udalov
cbe6e49a93
Consider outer classes when topsorting hierarchy
...
- when building a topsorted hierarchy, consider not only edges to the class'
superclasses, but also from inner/nested classes to their container. This
effectively means that a class cannot inherit from its nested class. Similar
cases (see the tests) are disallowed in Java.
- filter classes by their presence in TopDownAnalysisContext, not by being a
MutableClassDescriptor (otherwise analysis for local classes ends up trying
to do something with outer superclasses)
- delete outdated comment: topsort is needed not only for better diagnostics,
but also for correct order of fake overrides construction
2014-04-03 19:12:56 +04:00
Alexander Udalov
9b2291d381
Fix StackOverflowError on cyclic hierarchy Java<->Kotlin
...
Report errors not only when superclasses are MutableClassDescriptorLite, but
any classes
#KT-2115 Fixed
2014-04-03 19:04:12 +04:00
Alexander Udalov
4241eb9661
Regenerate tests
2014-04-03 19:02:56 +04:00
Alexander Udalov
a485f24217
Don't serialize signature to string to check against toString/hashCode/equals
2014-04-03 01:24:39 +04:00