Vyacheslav Gerasimov
d84c5b1608
Switch to 183 platform
2018-12-06 20:16:58 +03:00
Toshiaki Kameyama
9ee9965c7a
Convrt anonymous function to lambda: fix incorrectly conversion
...
#KT-28618
2018-12-06 09:28:56 +03:00
Vyacheslav Gerasimov
a112bebf78
Build: Configure cache-redirector in allprojects block
2018-12-04 15:38:56 +03:00
Toshiaki Kameyama
d3908aeb2e
Add "map.get() with not-null assertion operator" inspection #KT-25171 Fixed
2018-11-29 14:42:18 +03:00
Nikolay Krasko
2d1c76344c
Store presence of spread operator for value argument in stubs
2018-11-15 18:55:56 +03:00
Aleksei Semin
793cac02e8
Add inspection and quick-fix to remove empty parentheses in annotation entries
2018-11-13 10:38:08 +03:00
Nicolay Mitropolsky
4a64edd610
KotlinStringLiteralTextEscaper: provides offsets for already decoded (KT-27380)
2018-11-13 10:01:52 +03:00
Nikolay Krasko
9dab32f67d
Re-implement getBodyBlockExpression() in stubbed elements
...
Avoid delegation to getBodyExpression() to monitor AST loading abuses.
2018-11-12 13:38:29 +03:00
Nikolay Krasko
2284028bbe
Add bodyBlockExpression() helper function to KtDeclarationWithBody
2018-11-12 13:38:28 +03:00
Nikolay Krasko
2b8a81c5a8
Don't force getting body psi if null is predicted by stubs but allow it for resolve
...
We can't avoid loading AST in general, because there're no stubs for
expression bodies.
2018-11-12 13:38:27 +03:00
Nikolay Krasko
e2269e13af
Move AstLoadingFilter to incompatible API and update usages
2018-11-12 13:38:26 +03:00
Nikolay Krasko
02d7e701d0
Allow getting initializer from psi during resolve as there're no stubs
2018-11-12 13:38:25 +03:00
Toshiaki Kameyama
9c18e24de5
Change to function invocation fix: use parentheses in string template
...
#KT-5071 Fixed
2018-11-08 10:33:50 +03:00
Toshiaki Kameyama
0fcd1a2072
Introduce "Delegate to 'var' property" inspection #KT-26724 Fixed
2018-11-07 13:59:00 +03:00
Nikolay Krasko
6dcc3374fe
Get string entries from stubs (KT-23738)
2018-11-06 13:43:23 +03:00
Nikolay Krasko
359e16eb82
Get argument name from stubs if possible (KT-23738)
2018-11-06 13:43:22 +03:00
Nikolay Krasko
3f53f9d9fb
Allow storing dot qualified expression in annotations arguments (KT-23738)
2018-11-06 13:43:21 +03:00
Nikolay Krasko
a794d26493
Get stubbed expressions in value arguments (KT-23738)
2018-11-06 13:43:20 +03:00
Nikolay Krasko
a9c3b27d3e
Don't generate stub for value arguments list when no arguments present (KT-23738)
...
Need this to conform stubs list obtained by decompiler.
Also ignore green stub, because is might not contain actual psi node.
2018-11-06 13:43:19 +03:00
Nikolay Krasko
efa59bfc7e
Make stubs for string entries (KT-23738)
2018-11-06 13:43:17 +03:00
Nikolay Krasko
37d7e618da
Stub element for KtStringTemplateExpression (KT-23738)
2018-11-06 13:43:16 +03:00
Nikolay Krasko
11543ba897
Make possible store constant values in stubs (KT-23738)
2018-11-06 13:43:15 +03:00
Nikolay Krasko
d9bc512556
Put arguments name to stubs in annotations (KT-23738)
2018-11-06 13:43:14 +03:00
Nikolay Krasko
12f127d631
Add stub for annotations value arguments (KT-23738)
2018-11-06 13:43:13 +03:00
Nikolay Krasko
fbb0e7d927
Stubbed VALUE_ARGUMENT_LIST and store it for annotations (KT-23738)
2018-11-06 13:43:12 +03:00
Nikolay Krasko
0f0dfe725e
Refactoring: move KtExpression.unpackFunctionLiteral to utils file
2018-11-06 13:43:10 +03:00
Nikolay Krasko
7c49eeded7
Make KtProperty.getInitializer() use stub check
2018-11-06 13:43:09 +03:00
Nikolay Krasko
4f52f62b44
Use stubs in KtProperty for getDelegate() and getDelegateExpression()
2018-11-06 13:43:08 +03:00
victor.petukhov
fe072e3366
Fix the lack of the handling of whitespace characters in the KDoc lexer
...
Affected characters are U+000B, U+000C, U+000D, U+0085, U+2028, U+2029
This problem reproduces with JFlex since 1.5.0: http://jflex.de/changelog.html#jflex-1.5.0-jan-21-2014
2018-11-06 11:18:58 +03:00
victor.petukhov
9e6ac6cb2a
Fix the lack of the handling of whitespace characters in the Kotlin lexer
...
Affected characters are U+000B, U+000C, U+000D, U+0085, U+2028, U+2029
This problem reproduces with JFlex since 1.5.0: http://jflex.de/changelog.html#jflex-1.5.0-jan-21-2014
2018-11-06 11:18:38 +03:00
Mikhail Glukhikh
2c626d6c5d
Implement raw FIR builder (initial version)
...
All necessary FIR tree implementations were created
FIR renderer & three first builder tests were added
#KT-24013 Fixed
2018-11-02 19:44:49 +03:00
Natalia Selezneva
6ae95b747d
Fix KotlinScriptDefinitionProvider compilation for 181 branch
...
Use FileTypeRegistry.getFileTypeByFileName instead of isFileOfType
2018-11-01 12:09:27 +03:00
Natalia Selezneva
715a5699de
Do not use stubs looking for script definition
...
Fix EA-128960
2018-10-31 16:13:42 +03:00
Natalia Selezneva
6af9929992
Do not try to find script definition for decompiled kotlin files
2018-10-31 16:13:41 +03:00
Dmitry Savvinov
00036ba498
[BE IR] Skip comments for determining startOffset of declaration
2018-10-31 14:52:03 +03:00
Mikhail Glukhikh
d050629589
Show expect / actual for parameters & enum entries in drop-box
...
#KT-26957 Fixed
2018-10-25 18:11:47 +03:00
Alexander Udalov
1ee1d15b91
Support annotations on property accessors in JS/common metadata
...
#KT-14529 Fixed
2018-10-24 18:17:12 +02:00
Nikolay Krasko
77be4a9e85
Remove warnings in createByPattern.kt
2018-10-24 13:04:43 +03:00
Alexander Udalov
f868964e25
Fix most unchecked/deprecation javac warnings in compiler modules
2018-10-17 18:39:49 +02:00
Natalia Selezneva
c4aab8340b
Do not store script definition in psiFile
...
This may cause problems when definitions are reordered or switched off
KT-27375 Fixed
2018-10-15 09:43:49 +03:00
Nikolay Krasko
ac2bc22f54
Use information from stub for contracts presence
2018-10-12 18:21:39 +03:00
Natalia Selezneva
c73885142a
Do not access stubs in dumb mode finding script definition
2018-10-12 15:27:45 +03:00
Natalia Selezneva
daa6e9b562
Minor: reformat and rearrange code
2018-10-12 15:27:45 +03:00
Vyacheslav Gerasimov
d11fbac511
Build: Use cache-redirector.jetbrains.com to prevent connection timeouts
2018-10-12 14:57:37 +03:00
Natalia Selezneva
8f8c431524
Fix Optimize import for scripts not under source roots
...
KT-17231 Fixed
KT-21981 Fixed
2018-09-21 22:58:14 +03:00
Dmitry Petrov
792c5f8b3f
Generate metadata and annotations for hidden constructor
...
Reflection expects to see a callable method for a hidden constructor,
thus, it should be a synthetic accessor.
JVM method signature in metadata should point to the synthetic accessor.
Annotations for hidden constructor should be written on the synthetic
accessor.
2018-09-12 15:33:11 +03:00
Ilya Chernikov
ba702a7eec
[minor] remove redundant null check
2018-09-10 11:21:29 +02:00
Ilya Chernikov
3f2552af60
Export filename extension from KotlinScriptDefinition, register...
...
extensions after loading definitions
2018-09-10 11:21:26 +02:00
Alexander Udalov
fc87043cb3
Merge use-site targeted annotations into corresponding Annotations
...
Add PropertyDescriptor.backingField/delegateField to store annotations
on the field directly in an otherwise almost empty descriptor instance,
instead of storing them with use-sites in the corresponding property
descriptor. Instead of AnnotationWithTarget, create AnnotationDescriptor
instances in AnnotationSplitter. Change DescriptorRenderer to render
annotations on "related" declarations when needed, with the explicit
use-site target if applicable.
Most changes in diagnostic test data are related to the fact that
annotations which are known to have an incompatible use-site to the
declaration they're applied at (such as `@param:`-annotation on a
function), are now not loaded at all. It's fine because the code is
erroneous, so it doesn't really matter how do we load annotations with
invalid targets (some of this logic is also changed freely in subsequent
commits). Some changes are also explained by the fact that for example
an annotation on the property which is only applicable to FIELD is now
rendered with an explicit use-site target `@field:`, regardless of
whether it did have that use-site target syntactically or not.
Basically, after this change there's no point in calling
Annotations.getUseSiteTargetedAnnotations/getAllAnnotations anymore
because it's easier and more intuitive to just use Annotations of the
corresponding descriptor -- the backing / delegate field (introduced in
this commit) or the extension receiver / setter parameter (related
behavior was fixed in previous commits). Usages of
use-site-target-related methods will be refactored out in subsequent
commits
2018-09-06 19:13:11 +03:00
Mikhail Glukhikh
53e7778078
Add modifiers on the same line even after annotation #KT-26492 Fixed
2018-09-05 13:05:08 +03:00