Mikhail Zarechenskiy
bb4fb669a0
[NI] Refactoring: rename method
2018-03-25 20:22:36 +03:00
Mikhail Zarechenskiy
bf92280f52
[NI] Update testdata about inference for delegated properties
2018-03-25 20:22:36 +03:00
Mikhail Zarechenskiy
53b434a3e3
[NI] Use getValue/setValue methods simultaneously to infer types
...
Rewrite inference for delegated properties with the new scheme
2018-03-25 20:22:36 +03:00
Mikhail Zarechenskiy
0f60965595
[NI] Introduce basic resolver for many candidates
2018-03-25 20:22:35 +03:00
Mikhail Zarechenskiy
3078e5a6ff
[NI] Simplify creation of resolution callbacks
2018-03-25 20:22:35 +03:00
Mikhail Zarechenskiy
ff10e97c28
[NI] Make CallResolutionResult more typed
2018-03-25 20:22:35 +03:00
Mikhail Zarechenskiy
c8ef785010
[NI] Move method hasContradiction to constraints storage
2018-03-25 20:22:34 +03:00
Mikhail Zarechenskiy
663b417c5a
[NI] Introduce method to add extra constraints before completion
2018-03-25 20:22:34 +03:00
Mikhail Zarechenskiy
50027225a1
[NI] Extract interface InferenceSession to a separate file
2018-03-25 20:22:34 +03:00
Mikhail Zarechenskiy
1a5282c4b7
[NI] Introduce methods to extend inference for several candidates
2018-03-25 20:22:33 +03:00
Mikhail Zarechenskiy
01cdc08026
[NI] Refactor: extract method to run candidate completion out
2018-03-25 20:22:33 +03:00
Mikhail Zarechenskiy
2235f5eb48
[NI] Refactor: create separate method for candidate preparation
2018-03-25 20:22:33 +03:00
Mikhail Zarechenskiy
8c44d44e78
[NI] Propagate class to extend inference through resolution context
2018-03-25 20:22:33 +03:00
Mikhail Zarechenskiy
887a69b72e
[NI] Extend constraint completer to work with several resolve atoms
2018-03-25 20:22:32 +03:00
Zalim Bashorov
a47a916437
Restore hack for avoiding tracking declarations from JS stdlib
2018-03-24 20:09:11 +03:00
Nikolay Krasko
ba662b7d56
Minor: another message fix (KT-23309)
...
#KT-23309 Fixed
2018-03-23 18:31:22 +03:00
Nikolay Krasko
982b768c69
Refactoring: collect callbacks for collecting module info in one place
2018-03-23 18:04:08 +03:00
Nikolay Krasko
0b0eb210b6
Refactoring: get module language settings in ResolverForProjectImpl
2018-03-23 18:04:06 +03:00
Nikolay Krasko
525d90540a
Refactoring: enumerate used components in PerFileAnalysisCache.kt
2018-03-23 18:04:03 +03:00
Nikolay Krasko
586860e03a
Refactoring: store correspondent module info in module content
2018-03-23 18:04:01 +03:00
Nikolay Krasko
3e313509e1
Refactoring: restrict callback in ResolverForProjectImpl
2018-03-23 18:03:59 +03:00
Nikolay Krasko
666d31bdc4
Refactoring: visibility restrictions
2018-03-23 18:03:57 +03:00
Nikolay Krasko
38a79086d3
Rename: ResolutionFacadeImpl -> ModuleResolutionFacadeImpl
2018-03-23 18:03:54 +03:00
Nikolay Krasko
dced45d1bf
Refactoring: rename AnalyzerFacade -> ResolverForModuleFactory
2018-03-23 18:03:52 +03:00
Nikolay Krasko
c5e8374fa8
Minor: typo fix (KT-23309)
...
#KT-23309 Fixed
2018-03-23 17:58:12 +03:00
Nikolay Krasko
0f441760c2
Refactoring: remove usages of analyzeFully
...
Function isn't removed because it has usages from other plugins
2018-03-23 17:58:11 +03:00
Nikolay Krasko
059013a8d3
Rename: analyzeFullyAndGetResult -> analyzeWithAllCompilerChecks in ResolutionFacade
2018-03-23 17:58:11 +03:00
Nikolay Krasko
f2b478f304
Rename: analyzeFullyAndGetResult -> analyzeWithAllCompilerChecks in resolutionApi.kt
2018-03-23 17:58:10 +03:00
Mikhail Glukhikh
804d340c5f
Fix more broken QF tests
2018-03-23 15:26:21 +03:00
Mikhail Glukhikh
e937a350fe
Fix broken QF tests
2018-03-23 14:57:33 +03:00
Ilmir Usmanov
481dbee96a
Do not ignore copy operations while finding source instructions
...
in redundant locals elimination.
Since IgnoringCopySourceInterpreter ignores ALOADs and ASTOREs,
the source instruction of ALOAD K in {ALOAD N, ASTORE K, ALOAD K}
sequence is not ASTORE K. In this case we cannot simply replace K
with N, since there can be multiple {ALOAD N, ASTORE K} sequences
in separate branches. After replacement we get different stack
frames.
This change resolves this.
However, in ReturnUnitMethodTransformer we want to ignore copies
of the same GETSTATIC kotlin/Unit.INSTANCE, since we do not mess
with local variables and just replace ASTORE with ARETURN to help
tail-call optimization.
#KT-23373: Fixed
2018-03-23 14:32:48 +03:00
Mikhail Zarechenskiy
15b46cdda9
[NI] Don't perform useless computation for smartcasts
2018-03-23 14:18:32 +03:00
Toshiaki Kameyama
e06c13732f
Add intentions for specifying use-site targets for an annotation
...
So #KT-19871 Fixed
2018-03-23 13:03:00 +03:00
Denis Zharkov
e162749366
Add a cache for PsiBasedClassResolver instances
...
The PsiBasedClassResolver constructor isn't very cheap to call
because it runs computation of conflicting names each time
Again, this is helpful for Spring-interop because PsiBasedClassResolver
is used very frequently there
#KT-23380 Fixed
2018-03-23 12:36:15 +03:00
Denis Zharkov
f060604d98
Add a cache for KtImportDirective::importedFqName
...
It's very useful for Spring users because KotlinAnnotatedElementsSearcher
calls PsiBasedClassResolver::canBeTargetReference rather frequently
on a file and the latter function retreives importedFqName for each
import in the file that becomes a problem because computing fq-name
from PSI is a heavy computation
#KT-23380 In Progress
2018-03-23 12:36:15 +03:00
Denis Zharkov
673d1aa91d
Fix a memory leak of old resolve session from light classes
...
The problem is that diagnostics might indirectly retain a reference to an
obsolete ResolverForProject (it becomes outdated after out of block
modification).
At the same time light class instances may survive afer OOM when they
are leaked somewhere (e.g. to Java resolve)
The idea is to store the Diagnostics instance inside a
ResolverForProject component which will be collected once
ResolverForProject is collected itself.
#KT-23380 In Progress
2018-03-23 12:36:15 +03:00
Dmitry Petrov
bd7e9d5397
Fix type argument mapping for members imported from objects
2018-03-23 11:43:44 +03:00
Dmitry Petrov
37040523ad
valueArgumentsCount
2018-03-23 11:43:44 +03:00
Dmitry Petrov
3c7914b0c1
Minor: drop obsolete code
2018-03-23 11:43:44 +03:00
Dmitry Petrov
135d3ab57a
Fix type arguments mapping
2018-03-23 11:43:44 +03:00
Dmitry Petrov
eb5904ea8e
Underlying constructor for type alias should always be substituted
...
Otherwise PSI2IR fails because of type mismatch.
2018-03-23 11:43:44 +03:00
Dmitry Petrov
bfcf1584a2
Minor: reformat code
2018-03-23 11:43:44 +03:00
Toshiaki Kameyama
26dc5840f1
Fix two exceptions in "Convert concatenation to template
...
So #KT-23045 Fixed
So #KT-23045 Fixed
2018-03-23 09:36:49 +03:00
Toshiaki Kameyama
7328f75103
Don't suggest 'Redundant semicolon' before lambda extension call
...
So #KT-23152 Fixed
2018-03-23 09:35:34 +03:00
Ilya Gorbunov
5d06c2c584
Code conformance test: actualize stdlib and tools exclusions
2018-03-23 04:25:07 +03:00
Ilya Gorbunov
bb04198f7e
kotlin-stdlib-gen: add dsl option for multiple suppressed diagnostics
2018-03-23 04:23:25 +03:00
Ilmir Usmanov
bd7ad8c9d5
Raise deprecation level to ERROR of coroutineContext
...
inside kotlin.coroutines.experimental.intrinsics package
#KT-22400
2018-03-22 22:12:27 +03:00
Ilya Gorbunov
dd8a00f651
Make kotlin-test-js implement both kotlin-test-common and kotlin-test-annotations-common
2018-03-22 21:55:04 +03:00
Natalia Selezneva
c7513b5ffa
Fix compatibility with LivePlugin
...
^KT-23371 Fixed
2018-03-22 17:17:59 +03:00
Ilya Gorbunov
7a40b4c5f1
Refactor: extract JVM-specific tests into separate files
...
Make KotlinVersion random comparison test running in JS
2018-03-22 17:08:43 +03:00