Commit Graph

6911 Commits

Author SHA1 Message Date
Dmitry Petrov f956e8d85d Record special descriptor in REFERENCE_TARGET for type alias object
If a type alias is used to reference an object (companion object) as a
qualifier, record FakeCallableDescriptorForTypeAliasObject in
REFERENCE_TARGET. This tells IDE that type alias was used in the file,
thus, if it's imported, such import isn't redundant.
REFERENCE_TARGET is used mostly by IDE and by ClassifierUsageChecker,
which we also have to update to handle qualifiers with
FakeCallableDescriptorForTypeAliasObject in REFERENCE_TARGET.

Rewrite some parts of ClassifierUsageChecker for cleaner interaction.

 #KT-21863 Fixed Target versions 1.2.40
2018-06-20 17:16:25 +03:00
Toshiaki Kameyama 6675d7814c KT-14779 Inspection to replace String.format with string templates (#1645)
* Add inspection to replace String.format with string templates #KT-14779 Fixed

* KT-14779 Fixed
2018-06-20 16:23:04 +03:00
Toshiaki Kameyama e41a34af88 KT-11850 Add nested lambdas with implicit parameters warning (#1664)
* Add `Nested lambda has shadowed implicit parameter` inspection #KT-11850 Fixed

* KT-11850 Fixed
2018-06-20 15:57:03 +03:00
Toshiaki Kameyama 1e31d24e9b Add "Remove 'const'" quickfix for TYPE_CANT_BE_USED_FOR_CONST_VAL
So #KT-24815 Fixed
2018-06-19 12:48:13 +03:00
Toshiaki Kameyama c344354395 Add quick-fix for 'is' absence in when #KT-18810 Fixed 2018-06-19 12:48:13 +03:00
Toshiaki Kameyama 2427406a8f Add 'Change to val' quickfix for delegates without setValue
So #KT-13688 Fixed
2018-06-19 12:48:13 +03:00
Toshiaki Kameyama 3292137acb "Convert lambda to anonymous function": Don't suggest in inline function
So #KT-24792 Fixed
2018-06-19 12:48:12 +03:00
Toshiaki Kameyama fa58da85ee Add indices: don't suggest if parameter is destructuring declaration
So #KT-22162 Fixed
2018-06-19 12:48:12 +03:00
Toshiaki Kameyama 2669193755 Use "Move to companion" quick fix for CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT
So #KT-22871 Fixed
2018-06-19 12:48:12 +03:00
Toshiaki Kameyama 69d2e8898a "Main should return Unit" inspection: extend on JUnit test methods
So #KT-24509 Fixed
2018-06-19 12:48:11 +03:00
Toshiaki Kameyama b5e3db1811 Lambda to reference: fix false positive for parameter' class reference
So #KT-22041 Fixed
2018-06-19 12:48:11 +03:00
Toshiaki Kameyama 5ad98a139d "Redundant Companion": Don't suggest if same callable name is in use
So #KT-24425 Fixed
2018-06-19 12:48:10 +03:00
Alexey Sedunov 16dbc6fb4d Extract Function: Forbid inappropriate declarations inside extractable fragment
#KT-20467 Fixed
 #KT-20469 Fixed
2018-06-19 12:22:40 +03:00
Alexey Sedunov f7cda61b08 Copy/Paste: Add imports for non-qualifiable callable references
#KT-23407 Fixed
2018-06-19 12:22:40 +03:00
Alexey Sedunov 694997651a Override/Implement: Fix processing of unresolved types
#KT-17350 Fixed
2018-06-19 12:22:40 +03:00
Alexey Sedunov ed8b4b761a Override/Implement: Add 'actual' modifier to overrides of 'expect'
#KT-23106 Fixed
2018-06-19 12:22:40 +03:00
Alexey Sedunov 5f87e84966 Override/Implement: Do not insert super-call into extension body
Such super-calls are not are supported yet

 #KT-4311 Fixed
2018-06-19 12:22:39 +03:00
Alexey Sedunov c49eede054 Generate hashCode()/equals(): Support deep array equality
#KT-19102 Fixed
2018-06-19 12:22:39 +03:00
Mikhail Glukhikh 9ef89447b3 Sealed sub-class -> object: handle equals, suggest "add equals"
Before this commit, sealed sub-class without state was considered
a style issue.
After this commit, sealed sub-class without state AND custom equals
is considered a probable bug,
because comparison of its instances is very fragile.
Alternative fix (generate equals & hashCode by identity) is added.
2018-06-19 11:20:26 +03:00
Mikhail Glukhikh cbec005055 Add test for KT-21710 (gutters inside library sources) 2018-06-19 10:42:36 +03:00
Mikhail Glukhikh cbcd35e2f5 Implement Kotlin sub-classes tooltip to handle MPP correctly
Before this commit, Java tooltip was in use which could not
work correctly with expect / actual classes
So #KT-21011 Fixed
2018-06-14 15:42:37 +03:00
Mikhail Glukhikh 232d340118 Expect/actual companion object: set gutter on leaf element
May fix KT-21113
2018-06-13 19:23:40 +03:00
Mikhail Glukhikh cfd1a54463 Do not create expect / actual gutters for primary constructor
So #KT-22177 Fixed
So #KT-21063 Obsolete
2018-06-13 19:19:26 +03:00
Mikhail Glukhikh b235af0656 Can be private: correct detection of calls inside inline accessors 2018-06-13 19:17:50 +03:00
Mikhail Glukhikh faa8d92560 Unused receiver: do not report on actual declarations #KT-24562 Fixed 2018-06-13 18:12:36 +03:00
Mikhail Glukhikh 38632c2937 Can be private: correct detection of calls inside inline function
So #KT-22180 Fixed
So #KT-22094 Fixed
2018-06-13 18:12:34 +03:00
Mikhail Glukhikh a8737a1278 Can be private -> could be private (violation of naming convention) 2018-06-13 18:12:33 +03:00
Mikhail Glukhikh 88974ee32b Can be private: simplification
Related to KT-22030
2018-06-13 18:12:31 +03:00
Toshiaki Kameyama 7786896e9b Can be private: don't report when object or subclass calls the function
Questionable
So #KT-22030 Fixed
2018-06-13 18:12:30 +03:00
Mikhail Glukhikh 6c8276b701 Do not report "can be private" on annotated declarations #KT-24422 Fixed 2018-06-13 18:12:28 +03:00
Mikhail Glukhikh d1155070a7 Do not report "can be private" on expect or actual declarations
So #KT-24374 Fixed
So #KT-24537 Fixed
2018-06-13 18:12:27 +03:00
Mikhail Glukhikh a09f6e14a5 Do not suggest "convert to object" for sealed sub-classes with state
So #KT-24816 Fixed
2018-06-13 18:12:18 +03:00
Yan Zhulanow 5f43808cfd Revert "Debugger: Fix breakpoints and stepping for inline-only function lambda arguments (#KT-23064)" 2018-06-08 19:37:20 +03:00
Yan Zhulanow 4dfcb72fa1 Print source file location/contents if possible (EA-120038) 2018-06-08 19:37:20 +03:00
Alexey Sedunov 0ea1784d33 Introduce Parameter: Add suspend to lambdas with nested suspend-calls
#KT-24712 Fixed
2018-06-08 14:34:23 +03:00
Alexey Sedunov 8a838ab5bb Change Signature: Fix parameter name for kt-function overriding Java's
#KT-24763 Fixed
2018-06-08 14:34:23 +03:00
Alexey Sedunov 8978c4b9e8 Rename: Fix processing of references to synthetic Java properties
#KT-17742 Fixed
2018-06-08 14:34:23 +03:00
Alexey Sedunov 862dc76ed9 Rename: Fix processing of overriding methods with mangled names
#KT-24460 Fixed
2018-06-08 14:34:22 +03:00
Alexey Sedunov eea9113d1c Introduce Type Alias: Fix replacement of references to nested classes
#KT-15159 Fixed
2018-06-08 14:34:22 +03:00
Pavel V. Talanov a8a490ea5a Test multifile facades in mpp projects 2018-06-06 21:04:00 +02:00
Pavel V. Talanov 8185b1bf02 Test accessing file facades from java in mpp project 2018-06-06 21:03:57 +02:00
Pavel V. Talanov 1be477c816 Fix "add member" quick fix when invoked from java on common class
#KT-24115 Fixed
2018-06-06 21:03:56 +02:00
Mikhail Glukhikh 24008cdffb If to when: do not add label to outer loop if not necessary
So #KT-24767 Fixed
2018-06-05 17:02:35 +03:00
Toshiaki Kameyama b4962a1880 Add getter: don't suggest when property has no type or initializer
So #KT-24632 Fixed
2018-06-05 16:31:28 +03:00
Toshiaki Kameyama 8969e7a6e1 "Remove redundant toString": fix false positive for nested nullable
So #KT-24557 Fixed
2018-06-05 16:03:54 +03:00
Toshiaki Kameyama 4038d4d507 Explicit this inspection: suggest also for synthetic Java property
So #KT-22089 Fixed
2018-06-05 15:52:16 +03:00
Toshiaki Kameyama 6b37e40f99 Add quick-fix for type variance conflict #KT-23082 Fixed 2018-06-05 15:45:53 +03:00
Toshiaki Kameyama ddf647ae96 Remove redundant receiver in "Change function signature" quick fix
So #KT-12298 Fixed
2018-06-05 15:20:18 +03:00
Toshiaki Kameyama 2c59f96ca4 Introduce "Add remaining when branches" intention #KT-23306 Fixed 2018-06-05 15:19:09 +03:00
Toshiaki Kameyama bde9a57c9e Don't suggest map{}.filterNotNull() -> mapNotNull{} on primitive array
So #KT-21556 Fixed
2018-06-05 15:18:28 +03:00