Commit Graph

7390 Commits

Author SHA1 Message Date
Alexander Udalov 260689eb8c Invoke call checkers where symbol usage validators are called
The change in componentAccess.kt is a minor regression that should be addressed
later
2016-06-29 19:21:06 +03:00
Alexander Udalov 4a05c749b5 Support smart casts for functions of local variable delegates 2016-06-29 19:21:06 +03:00
Alexander Udalov 70a994b135 Drop resolution of deprecated plus/minus/get/set conventions
Also remove the corresponding quick fix
2016-06-29 19:21:05 +03:00
Alexander Udalov 291f1f6c3a Remove obsolete errors related to 'invoke' called on extension 2016-06-29 19:21:04 +03:00
Alexander Udalov 6ba32ed624 Refactor CallChecker and subclasses
Encapsulate everything that is needed in checkers into CallCheckerContext. Pass
an instance of this context instead of BasicCallResolutionContext to checkers.

Also pass an instance of the element to report errors on: this is useful
because before this, every checker had its own way of determining where should
the error be reported on. Some of them, for example, were not doing anything if
Call#calleeExpression returned null, which is wrong, see operatorCall.kt

 #KT-12875 Open
2016-06-29 19:20:00 +03:00
Alexander Udalov f6f825e0dc Minor, extract validatePropertyCall out of SymbolUsageValidator#validateCall
BasicExpressionTypingVisitor#checkLValue is the only place where it's used.
There's no ResolvedCall instance for the setter call (only for the property
itself), that's why this special method is needed
2016-06-29 19:19:59 +03:00
Alexander Udalov d7d2780666 Drop SymbolUsageValidator.Composite, use validators similarly to call checkers
Also fix warnings in DeprecatedSymbolValidator, DelegatedPropertyResolver and
elsewhere
2016-06-29 19:19:58 +03:00
Alexander Udalov e94fd8f777 Make infix & operator checkers implement CallChecker
Instead of SymbolUsageValidator
2016-06-29 19:19:57 +03:00
Michael Bogdanov 3b419e8ba3 Fix for KT-11964: No TABLESWITCH in when on enum bytecode if enum constant is imported
#KT-11964 Fixed
2016-06-29 09:32:45 +03:00
Alexey Sedunov 068a120600 Rename: Constraint search scope of parameter declared in a private member
#KT-9649 Fixed
(cherry picked from commit fa144b0)
2016-06-28 15:07:36 +03:00
Alexey Sedunov 248f4c1645 Light Classes: Implement light elements for 'extends'/'implements' reference lists. Support adding/removing of super type list entries via light elements.
Fix exception on applying "Convert to class" intention to Java interface with Kotlin inheritor(s)
 #KT-11281 Fixed
(cherry picked from commit 4ec4914)
2016-06-28 15:07:24 +03:00
Alexey Sedunov 77b0bb9849 Rename: Implement Rename conflict analysis for properties. Qualify property references to resove rename conflicts when possible
#KT-8732 Fixed
 #KT-12543 Fixed
(cherry picked from commit e23029d)
2016-06-28 15:06:49 +03:00
Denis Zharkov daa356860c Minor. Drop redundant parameter 2016-06-28 10:33:29 +03:00
Nikolay Krasko 67eca2cbb7 Minor: remove superfluous method that was necessary becuase of KT-5457 2016-06-27 15:02:42 +03:00
Michael Bogdanov abc7d5101d Fix for KT-12106: import static of reified companion object method throws IllegalAccessError
#KT-12106 Fixed
2016-06-27 12:31:31 +03:00
Pavel V. Talanov c3df743a28 FileScopeFactory: extra imports computed via virtual file as opposed to KtFile
This fixes completion session acting as if there are no imports
2016-06-25 22:25:19 +03:00
Pavel V. Talanov 1da3efea81 Implement API to get source roots of script dependencies in KotlinScriptConfigurationManager and KotlinScriptConfigurationManager 2016-06-25 22:25:03 +03:00
Ilya Chernikov b0bff64cff fixes after review 2016-06-25 22:24:50 +03:00
Ilya Chernikov 5a77d2e92b Change to single ScriptTemplateDefinition annotation and separate AcceptedAnnotations annotation on resolver 2016-06-25 22:24:48 +03:00
Ilya Chernikov f24d954302 Remove unused support for script templates configs 2016-06-25 22:24:47 +03:00
Ilya Chernikov 4f05f839a3 Add previous imports to resolving interfaces to enable effective caching implementations 2016-06-25 22:24:45 +03:00
Ilya Chernikov f30b402640 Change a parameter "context" in script templates to environment: Map<String, Any?>? 2016-06-25 22:24:43 +03:00
Ilya Chernikov bf683a63fb Implement annotation proxy generation for script dependencies resolvers 2016-06-25 22:24:41 +03:00
Ilya Chernikov 8a06eafaf1 Rename-refactor interfaces and methods of the script dependencies resolving 2016-06-25 22:24:39 +03:00
Ilya Chernikov 5fd013ef42 minor: rename a field in ScriptTemplateProvider interface 2016-06-25 22:24:37 +03:00
Ilya Chernikov 5bea5bcc37 Add script files changes monitoring, logic for initialization during index rebuilding 2016-06-25 22:24:36 +03:00
Ilya Chernikov 64bb47ed37 Switch to File instead of String for classpaths in script dependencies 2016-06-25 22:24:30 +03:00
Ilya Chernikov 5e3ba36cc1 Simplify GetScriptDependencies interface 2016-06-25 22:24:28 +03:00
Ilya Chernikov a60e1ab807 Fix implementation of gradle ScriptTemplateProvider extension
WARNING: adds dependency to idea's gradle-and-groovy-plugin to idea-core
2016-06-25 22:24:27 +03:00
Ilya Chernikov 834372a3b3 Implement extension point for providing script templates 2016-06-25 22:24:25 +03:00
Ilya Chernikov 082290f8e3 Refactor script dependencies management 2016-06-25 22:24:23 +03:00
Ilya Chernikov c244414f3c Convert ScriptNameUtil to Kotlin: phase 3 - refactor 2016-06-25 22:24:21 +03:00
Ilya Chernikov 590f09ee58 Convert ScriptNameUtil to Kotlin: phase 2 - convert 2016-06-25 22:24:19 +03:00
Ilya Chernikov f96517a54a Convert ScriptNameUtil to Kotlin: phase 1 - rename file 2016-06-25 22:24:17 +03:00
Ilya Chernikov d212d369b0 Implement support for extra imports 2016-06-25 22:24:16 +03:00
Ilya Chernikov 402e8c1e3e Add dependency from annotation extraction mechanisms to the prototype, with tests 2016-06-25 22:24:14 +03:00
Ilya Chernikov 3f5a2c2781 Add initial prototype of script def based on annotated base class, with simple tests 2016-06-25 22:24:12 +03:00
Mikhael Bogdanov 93a770fcc8 Code clean 2016-06-24 17:05:53 +03:00
Mikhael Bogdanov 853c4d4453 Added language feature check for inline properties 2016-06-24 17:05:52 +03:00
Mikhael Bogdanov 321e97a329 AnalyzerExtension refactoring, added support for inline properties 2016-06-24 17:05:52 +03:00
Mikhael Bogdanov 7baf70e8fa Support reified extension properties 2016-06-24 17:05:51 +03:00
Mikhael Bogdanov d524a34fc7 Support property accessor in inline checks 2016-06-24 17:05:49 +03:00
Mikhael Bogdanov 2cc177255f Don't report inapplicable target for 'inline' keyword on property and its accessors 2016-06-24 17:05:49 +03:00
Mikhael Bogdanov db5d9940df Added 'isInline' implementation to property accessor descriptors 2016-06-24 17:05:48 +03:00
Yan Zhulanow 6752df189d Make infix modifier diagnostic message more informative (KT-12589)
(cherry picked from commit 2744309)
2016-06-24 15:10:19 +03:00
Stanislav Erokhin 7c2825b397 KT-12623 Fixed ISE: Type parameter ... not found for public fun ...
#KT-12623 Fixed
Also EA-72653 fixed.
2016-06-23 02:03:24 +03:00
Alexander Udalov 3eeccb407e Simplify and fix createReflectionTypeForCallableDescriptor
Previously its call sites needed to determine if the receiver type should be
ignored (e.g. if the reference is to static member or nested class constructor,
or if it's a bound reference), and 3 of 4 callers did it incorrectly. Simplify
this by passing the DoubleColonLHS instance everywhere.

Also rename it to createKCallableTypeForReference

 #KT-12738 Fixed
 #KT-12751 Fixed
 #KT-12799 Fixed
2016-06-22 21:35:57 +03:00
Alexander Udalov 6cc10aa226 Minor, move utilities form CallableReferencesResolutionUtils.kt closer to usages 2016-06-22 21:35:57 +03:00
Alexander Udalov 80bf6e1bee Refactor CallableReferencesResolutionUtils.kt
Get rid of trace & reportOn parameters of
createReflectionTypeForCallableDescriptor: move the two checks that required
them to DoubleColonExpressionResolver and combine with other checks into a
single function that checks the validity of the referenced symbol. This also
makes these checks reported only once when invalid expressions are passed as
function arguments (previously they were also reported from
getResolvedCallableReferenceShapeType).

Also inline getReflectionTypeForCandidateDescriptor after this, and refactor
its usages
2016-06-22 21:35:57 +03:00
Alexander Udalov e68de436bb Allow data classes to inherit from other classes
#KT-10330 Fixed
2016-06-22 21:35:57 +03:00