Commit Graph

14996 Commits

Author SHA1 Message Date
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