Denis Zharkov
904c7f9c64
Fix nullable variables spilling in coroutines
...
See the last comment in testData for clarification
#KT-18983 Fixed
2017-07-20 10:53:32 +03:00
Denis Zharkov
90e894b171
Use known jvm binary class for package part if possible
2017-07-20 10:53:09 +03:00
Denis Zharkov
99a10d8d63
Minor. Rename compactIfPossible -> compact
...
As ArrayList can always be compacted
2017-07-20 10:53:09 +03:00
Denis Zharkov
d7cee95d95
Call compactIfPossible where it's possible in BinaryJava*
...
It helps to avoid retaining a lot of redundant empty SmartList's
instances
2017-07-20 10:53:09 +03:00
Denis Zharkov
e2ce285ec3
Reduce memory footprint after functions substitution
...
Do not recreate new instances if descriptors' parts remain
effectively the same
2017-07-20 10:53:09 +03:00
Denis Zharkov
4385ce8828
Reduce memory footprint for basic case of flexible types
...
The case is when we have a simple type constructor
(not array nor collection) and type is not raw:
A<T1, >..A<T1>?
Actually these types are almost equal besides of nullability,
but we create and resolve two different simple types,
they have different arguments' lists, etc.
The idea is to add NullableSimpleType subclass with delegate
to another simple type
It should help a lot both with common cases and with corner ones:
flexibles types in spark for Function22 having exponential size
because of its flexibility
#KT-14375 Fixed
#KT-14323 Fixed
2017-07-20 10:53:09 +03:00
Denis Zharkov
59f2ba98a6
Avoid creating SimpleType instances for default type
2017-07-20 10:53:09 +03:00
Denis Zharkov
c7e6f200da
Use SmartList for storing annotations in binary classes
...
Looks like in the most cases there are <= 1 annotations
in real declarations
2017-07-20 10:53:09 +03:00
Dmitry Jemerov
4df6db141c
Advance source stub version which wasn't advanced in 5d87276cf
...
#KT-19113 Fixed
2017-07-19 18:52:29 +02:00
Dmitry Petrov
891799c853
Generate 'Deprecated' annotation on invisible companion object field
...
Design decision: if the field for a companion object should have
non-public visibility, generate it with @Deprecated annotation in
language version 1.2.
TODO: generate it with proper visibility in 1.3 and later.
KT-11567 Companion object INSTANCE field more visible than companion object class itself
2017-07-19 17:38:17 +03:00
Toshiaki Kameyama
366b9d1d79
KT-12195 Quickfix @JvmStatic on main() method in an object ( #1192 )
...
* Quickfix @JvmStatic on main() method in an object #KT-12195 Fixed
* Fixed #KT-12195
2017-07-19 13:37:12 +02:00
Pavel V. Talanov
41276c950b
Update CodegenTestCase after rebasing on latest changes
2017-07-19 12:29:27 +03:00
Pavel V. Talanov
5faad493b4
Catch and report exceptions from DependenciesResolver
2017-07-19 12:29:25 +03:00
Pavel V. Talanov
b1ac451959
Make sure template classpath is always among script dependencies
2017-07-19 12:29:15 +03:00
Pavel V. Talanov
f84cc7fb5b
Offload legacy dependency resolver work to a separate thread pool
...
This is mainly to improve experience for kdsl users before gradle migrates to new API
2017-07-19 12:29:12 +03:00
Pavel V. Talanov
bc399444ab
Fix creating DependenciesResolver with default arguments
2017-07-19 12:29:09 +03:00
Pavel V. Talanov
c0e08c61ee
Minor: extract ScriptContentLoader::getEnvironment
2017-07-19 12:29:04 +03:00
Pavel V. Talanov
999c3c5e76
Rename services related to script dependencies
...
KotlinScriptConfigurationManager -> ScriptDependenciesManager
KotlinScriptExternalImportsProvider -> ScriptDependenciesProvider
2017-07-19 12:28:59 +03:00
Pavel V. Talanov
aacb9a437a
Rename: dependenciesClasspath -> templateClasspath
...
Clearer distinction from additionalResolverClasspath
2017-07-19 12:28:54 +03:00
Pavel V. Talanov
96d8f685e9
Refactor KotlinScriptConfigurationManager: extract parts
...
Introduce ScriptDependenciesUpdater, DependenciesCache and ScriptContentLoader
2017-07-19 12:28:51 +03:00
Pavel V. Talanov
1b42095dc1
Support @AcceptedAnnotations for different kinds of resolvers
2017-07-19 12:28:49 +03:00
Pavel V. Talanov
1c412b4068
AsyncDependenciesResolver: provide implementation for sync resolve
2017-07-19 12:28:46 +03:00
Pavel V. Talanov
ee70a64e1c
Minor, template providers: don't create classloader for empty classpath
2017-07-19 12:28:41 +03:00
Pavel V. Talanov
5c18ab750b
GradleScriptTemplateProvider: avoid duplicating template loading code
2017-07-19 12:28:36 +03:00
Pavel V. Talanov
6c3ce7adc1
ScriptTemplatesProvider: refactor dependency loading
...
Change dependenciesClasspath is of type List<File>
Add additionalResolverClasspath
2017-07-19 12:28:33 +03:00
Pavel V. Talanov
a77cd0ab09
Catch errors when instantiating script templates
...
If we throw from this code IDE becomes unusable
#KT-18945 Fixed
2017-07-19 12:28:31 +03:00
Pavel V. Talanov
75220e145b
Minor: suppress deprecation warning
2017-07-19 12:28:26 +03:00
Pavel V. Talanov
cf57e5a7a1
Script templates: search for parameterless constructor of resolver
2017-07-19 12:28:23 +03:00
Pavel V. Talanov
10e14103b6
Propagate reports from script dependency resolver
...
Compiler: show as compiler messages
IDE: annotate code in a separate highlighting pass
2017-07-19 12:28:20 +03:00
Pavel V. Talanov
96c2a589c0
Support legacy resolver interface
2017-07-19 12:28:18 +03:00
Pavel V. Talanov
65dba3615c
Update project code to use new script.runtime APIs
2017-07-19 12:28:15 +03:00
Pavel V. Talanov
1012a24afc
Refactor: move KotlinScriptExternalImportsProviderImpl to 'cli' module
2017-07-19 12:28:10 +03:00
Pavel V. Talanov
b6a7d831bf
Script IDE API: remove <TF: Any>
2017-07-19 12:28:08 +03:00
Pavel V. Talanov
788eaf8a18
Refactor getting dependencies for script files API
...
Deprecate KotlinScriptDefinition#getDependenciesFor
Expose dependencyResolver as a property
KotlinScriptExternalImportsProvider is the component clients should be asking for dependencies
2017-07-19 12:28:02 +03:00
Pavel V. Talanov
a2aeda7b2c
Support async script dependency updates for annotation based templates
...
Do not try to cache dependencies for every script on startup
Schedule cache updates upon request as opposed to updating them synchronously
2017-07-19 12:27:45 +03:00
Pavel V. Talanov
b7fc909821
Split compiler and ide specific parts of script dependency caching
...
Move all caching logic to ide specific KotlinScriptConfigurationManager
Clean up apis
Remove logging when updating caches
2017-07-19 12:27:43 +03:00
Roman Elizarov
f2b5f37b22
Support inline suspend functions built with compiler version less than 1.1.4/1.2-M1
...
The error message is removed and is replaced with a code that adapts
inline suspend functions produced by the old compiler with the
suspension markers that new compiler expects.
2017-07-19 08:59:55 +03:00
Alexander Udalov
c9b14c5a45
Reduce classpath for class loader in CodegenTestCase
...
There's no point in adding JDK (mock or full) roots to it, as well as
stdlib/reflect/test (they are loaded by the parent class loader, created
in ForTestCompileRuntime)
2017-07-18 20:10:07 +03:00
Alexander Udalov
743278d456
Fix ReplInterpreter on Java 9
2017-07-18 20:10:05 +03:00
Alexander Udalov
aa53fa7e15
Fix execution of simple .kts scripts on Java 9
2017-07-18 20:10:05 +03:00
Alexander Udalov
bc2c958a2e
Remove unused class GenericRepl
2017-07-18 20:10:05 +03:00
Alexander Udalov
36001ff931
Do not allow to access compiler internals in .kts scripts
...
Set parent class loader to null explicitly instead of the system class
loader
2017-07-18 20:10:05 +03:00
Yan Zhulanow
4851a83a83
Android Extensions: put new functionality under the flag
2017-07-18 18:10:30 +03:00
Yan Zhulanow
423a09e46a
Android Extensions: Support LayoutContainer in code generation
2017-07-18 18:10:23 +03:00
Yan Zhulanow
e037cafe18
Use descriptor modality in IDE inspections/intentions
...
This fixes KT-18160, KT-18194, KT-18195, KT-18197 ~
2017-07-18 18:10:15 +03:00
Nikolay Krasko
d282f14eac
Don't add double linenumber when return expression is absent (KT-18949)
...
#KT-18949 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
a41c9d2476
Avoid state machine build for suspend function with single inline call
...
#KT-18949 Fixed
2017-07-18 14:39:54 +03:00
Nikolay Krasko
ce4f923ba0
Replace return with nop to avoid merging line instructions (KT-18949)
...
Dex ignores subsequent line numbers for same instructions and interprets
instruction after inline as if they were inlined. This makes debugger
behaves as if there's nowhere to stop on line with breakpoint.
This also makes stepping through inline function consistent with
non-inline analog. In both context debugger now stops on '}'.
#KT-18949 Fixed
#KT-17120 Fixed
2017-07-18 14:39:54 +03:00
Mikhail Glukhikh
c0e1b3ef2d
CFG: fix label binding for last instruction of finally block
...
So #KT-18698 Fixed
2017-07-18 14:37:13 +03:00
Mikhail Glukhikh
ab0e734e7d
PseudocodeLabel: add slightly better exception diagnostics
2017-07-18 14:36:42 +03:00