Commit Graph

40928 Commits

Author SHA1 Message Date
Alexander Udalov c142db15fa Rename CoreLocalPathVirtualFile -> CoreJrtVirtualFile 2017-08-23 18:08:29 +03:00
Toshiaki Kameyama 46a1c8ca12 Repeated annotation @Deprecated after J2K for method with annotation and javadoc #KT-19351 Fixed (#1251) 2017-08-23 18:05:04 +03:00
Simon Ogorodnik 91f50c99e7 Add benchmark action for highlighting 2017-08-23 17:19:36 +03:00
Pavel V. Talanov 7fecec1141 lightAnnotations: remove several brittle assertions
Add some test cases with "red" code
2017-08-23 17:12:56 +03:00
Nicolay Mitropolsky a6b446cc4f Correct 'asJava' view of annotations as annotation arguments
Fix light elements for nested arrays/annotations inside annotations

 #KT-18378 Fixed
2017-08-23 17:12:55 +03:00
Stanislav Erokhin 6eb534fca8 [NI] Fix processParts in KotlinResolutionCandidate 2017-08-23 15:53:53 +03:00
Mikhail Zarechenskiy c45f86a2fc [NI] Resolve function literals in block as lambda expression 2017-08-23 15:53:52 +03:00
Mikhail Zarechenskiy 08964006de [NI] Avoid type capturing for types that can contain type variables 2017-08-23 15:53:51 +03:00
Mikhail Zarechenskiy e040a317cc [NI] Store setValue with fresh type variables before substitution 2017-08-23 15:53:50 +03:00
Mikhail Zarechenskiy 55d1130dfc [NI] Add getters to avoid inspections about useless boolean expressions 2017-08-23 15:53:49 +03:00
Mikhail Zarechenskiy f075934697 [NI] Pass candidates with wrong visibility in debugger context
See test 'privateMembersPriority' (KT-10634)
2017-08-23 15:53:48 +03:00
Mikhail Zarechenskiy 963ab7f27f [NI] Fix KNPE, exception occurred when element is synthetic 2017-08-23 15:53:47 +03:00
Mikhail Zarechenskiy f42be4aea2 [NI] Fix exception explicit qualified receiver and dispatch receiver 2017-08-23 15:53:46 +03:00
Stanislav Erokhin 9f71de5f66 Add test for lambda as last expression in lambda 2017-08-23 15:53:45 +03:00
Stanislav Erokhin 74e07b6580 Add regression test for no resolution recursion 2017-08-23 15:53:44 +03:00
Stanislav Erokhin d9eef94a8e [NI] Support smartcast info in ResolvedCall on receivers 2017-08-23 15:53:43 +03:00
Stanislav Erokhin cb1270836c [NI] Introduced ResolutionAtom's
Introduced new model for resolution result: tree of ResolvedAtoms.
Moved all postprocessing for arguments to front-end module.
Do not create freshDescriptor -- use freshTypeSubstitutor directly.
Removed Candidates for variables+invoke.
Add lazy way for argument analysis -- do not analyze all arguments
if we have subtyping error in first argument, but if we want report
all errors, then all arguments checks will be performed.

Future improvements:
  - optimize constraint system usage inside ResolutionCandidate
  - improve constraint system API
  - improve diagnostic handlers
2017-08-23 15:53:42 +03:00
Stanislav Erokhin 76012f6603 Minor. rename ConstraintSystemCompleter
In front-end we have other ConstraintSystemCompleter and because of this
in dist we have ambiguity(because there all src folders compiles inside
same module.
2017-08-23 15:53:41 +03:00
Stanislav Erokhin e011e443cc [NI] Implement next call completer.
Type inference completer features:
  - type variables depended from result type will be fixed in the end
  - type variables with proper constraints will be fixed first
  - fixation via groups "accessible" via constraints is supported

 TODO:
  - stable order via PSI order
  - argument constraint should rewrite position if constraint is the
      same as upper bound for type parameter
2017-08-23 15:53:40 +03:00
Stanislav Erokhin 3cf240340c [NI] Extract logic about fixation order to separated component 2017-08-23 15:53:39 +03:00
Stanislav Erokhin ff1e230828 [NI] Use right scope for callable reference resolution
Previously was used scope for top-level call. It isn't correct because
if we have callable reference inside lambda -> scope is different.
2017-08-23 15:53:38 +03:00
Stanislav Erokhin da003d48ff Support isSuccessful in SuccessfulResultCollector
Since now SuccessfulResultCollector do not run computation of
resultingApplicability for error candidate before
getFinalCandidates(). It is very useful because we can do not run
all checks for error candidates if we have not-error candidate.
2017-08-23 15:53:37 +03:00
Stanislav Erokhin 6b8293ae5b Refactoring. Remove ResolutionCandidateStatus.
Use diagnostics directly.
Also TowerCandidate since now know only about applicability
and not about diagnostics itself.
2017-08-23 15:53:36 +03:00
Stanislav Erokhin aca21c847d [NI] Fix resolution for callable references to nested class members 2017-08-23 15:53:35 +03:00
Stanislav Erokhin 1ae4ad1598 [NI] Do not take type advice for delegation if type is not fixed 2017-08-23 15:53:34 +03:00
Stanislav Erokhin cdaa98fb63 [NI] Fixes after review 2017-08-23 15:53:33 +03:00
Stanislav Erokhin 2b01b91315 [NI] Refactoring: KotlinCallContext to stateless component (2) 2017-08-23 15:53:32 +03:00
Stanislav Erokhin e88c1b4f0a [NI] Refactoring: KotlinCallContext to stateless component (1) 2017-08-23 15:53:31 +03:00
Stanislav Erokhin 9bbfac11b4 [NI] Add common supertype for PSI lambda arguments
Also move initial dataFlowInfo to lambda arguments.
As result, we can not store outer call for postpone call arguments
2017-08-23 15:53:30 +03:00
Vyacheslav Gerasimov aedb4c0ade Android Lint: Fix constant evaluation in annotation parameter
#KT-17785 Fixed Target Versions 1.1.5
2017-08-23 13:18:56 +03:00
Vyacheslav Gerasimov 2e1edaf3d4 Uast: Fix getExpressionType for elvis expression
#KT-18997 Fixed Target Versions 1.1.5
2017-08-23 13:18:49 +03:00
Vyacheslav Gerasimov e06cb1ec39 Android Lint: Use Uast to check for SuppressLint annotation
#KT-14800 Fixed Target versions 1.1.5
2017-08-23 13:18:42 +03:00
Vyacheslav Gerasimov cb3a8d87d0 Android Extensions: Correctly handle namespaces in layout xml
#KT-19451 Fixed Target versions 1.1.5
2017-08-23 13:18:34 +03:00
Simon Ogorodnik 1dfa05fe49 KT-19769: Optimize PerModulePackageCacheService
#KT-19769 fixed
2017-08-22 19:37:22 +03:00
Denis Zharkov ad9fe53ee2 Avoid local var entry for continuation parameter in suspend function
The primary reason is getting rid of redundant stack spilling, but also
it's not very sensible to have such entry since the parameter
is synthetic
2017-08-22 18:43:31 +03:00
Denis Zharkov fcd7677a3f Fix compatibility of suspend functions with strict bytecode analyzers
In short, some of the bytecode analyzers assume that there could be
no stores instructions into parameter vars with value of different
types (even when the value type is a subtype)

See the issue for details

 #KT-19713 Fixed
2017-08-22 18:43:26 +03:00
Sergey Igushkin d5f0607cef Add tests for java-library support. 2017-08-21 17:21:12 +03:00
Sergey Igushkin 1848bc1840 Support java-library plugin: register Kotlin output for consumers
Issue #KT-18497 Fixed
2017-08-21 17:21:03 +03:00
Vyacheslav Gerasimov f941186f75 UAST: Properly handle annotations on local variables 2017-08-21 15:02:01 +03:00
Vyacheslav Gerasimov c549c63100 Light Classes: Correctly handle annotations for property parameters
When getting annotations for KtLightParameter which is property parameter we should return annotations for parameter instead of property

#KT-19671 Fixed
2017-08-21 15:01:51 +03:00
Mikhael Bogdanov 1e73921200 Update changelog for 1.1.4-2 2017-08-18 18:23:10 +02:00
Pavel V. Talanov c132f3b0d1 KT-19276: Drop exception logging on loading script definitions failure
See YT discussion
Have to come up with more meaningful diagnostics on definition loading

#KT-19276 Fixed
2017-08-18 19:11:35 +03:00
Pavel V. Talanov 6424b6760f Remove StorageComponentContainerContributor::onContainerComposed
Rename addDeclarations -> registerModuleComponents
Use it to provide SamWithReceiverResolver extensions instead

Post construction on container composition can be achieved
    but manually inserting injections where it seems appropriate
    is bug prone
This fixes a bug where SamWithReceiverPlugin extension was not registered
    for some containers in IDE which led to incorrect highlighting in IDE
Add IDE test for applying SamWithReceiver plugin

 #KT-18062 Fixed
2017-08-18 19:11:25 +03:00
Yan Zhulanow 6f180416b1 Pass SamConversionResolver explicitly cause it should be call site module-local 2017-08-18 19:11:21 +03:00
Toshiaki Kameyama f0f6a252a5 Offer to make INVISIBLE_MEMBER protected if referenced from subclass
So #KT-19614 Fixed
2017-08-18 15:53:41 +03:00
Mikhail Glukhikh 0adf1d210f Make KtPureElement.getParent() nullable #KT-19760 Fixed
The reason is KtFile.getParent() is a containing directory which is nullable
2017-08-18 15:36:41 +03:00
Amane Nikaido 0fd5c6f1ca KT-19634: Fix <boxed_value> == <primitive_value> converted to reference equality
#KT-19634 fixed
2017-08-18 15:20:26 +03:00
Mikhail Glukhikh 9dc5354f24 Eliminate some warnings (mostly redundant is checks in whens) 2017-08-18 15:16:59 +03:00
Mikhail Glukhikh 3623f581b8 Eliminate a set of warnings, mostly nullability ones 2017-08-18 15:10:27 +03:00
Toshiaki Kameyama 82fc221470 Add "flip equals" intention for String.equals extension from stdlib
So #KT-19282 Fixed
2017-08-18 14:34:14 +03:00