Commit Graph

21118 Commits

Author SHA1 Message Date
Mike a038a88bfa More correct NOTHING_TO_INLINE description
Strictly speaking, they are not 'lambda parameters', they are 'functional parameters' or 'parameters of functional types'.
Sorry for my pedantry.
2018-05-15 16:27:45 +02:00
Mikhael Bogdanov f4f01efd1f Avoid descriptors usage in IrFunction flag calculation 2018-05-15 16:07:07 +02:00
Mikhael Bogdanov e9216625f0 Update logic to $default function lowering (don't skip interface members) 2018-05-15 16:06:31 +02:00
Mikhael Bogdanov 9d36367fbd Minor. Code clean: use class kind utils 2018-05-15 16:06:30 +02:00
Mikhael Bogdanov 678b1101cb Add class kind utils 2018-05-15 16:06:28 +02:00
Mikhael Bogdanov 6590666983 Run ir test in parallel 2018-05-15 16:06:00 +02:00
Mikhael Bogdanov 9546c36c3c Get rid of 'descriptor.isInner()' call 2018-05-15 16:06:00 +02:00
Mikhael Bogdanov b9da331dcd Migrate DescriptorsFactory.getInnerClassConstructorWithOuterThisParameter() API to symbols 2018-05-15 16:05:59 +02:00
Mikhael Bogdanov 9103b6a51b Migrate DescriptorsFactory.getOuterThisFieldSymbol() API to symbols 2018-05-15 16:05:59 +02:00
Mikhael Bogdanov ee98556669 Migrate DescriptorsFactory caching to symbols 2018-05-15 16:05:58 +02:00
Mikhael Bogdanov d4d8fe4995 Migrate DescriptorsFactory.getSymbolForObjectInstance() API to symbols 2018-05-15 16:05:57 +02:00
Mikhael Bogdanov 2631d149b2 Migrate DescriptorsFactory.getFieldDescriptorForEnumEntry() API to symbols 2018-05-15 16:05:55 +02:00
Mikhael Bogdanov 9fad3f25f3 Minor. Reformat 2018-05-15 16:04:47 +02:00
Dmitry Petrov a57869993d Fix asserted cast in IrBuilderWithScope.irReturn 2018-05-15 15:43:56 +03:00
Dmitry Petrov 21dfee4565 psi2ir: inferred type for 'when' is Nothing only if it's exhaustive
TODO: fix inference bug
2018-05-15 15:43:56 +03:00
Dmitry Savvinov 70622ff668 Introduce -Xoutput-imports mode of JVM compiler
In this mode, instead of analyzing files and generating bytecode for
them, compiler just saves imports of each file in JSON map of form

'<path to file> -> [<import1>, <import2>, ...]'

It is needed for some external tools, notably for Google3 toolchain.
2018-05-15 15:36:14 +03:00
Denis Zharkov 9de174959e Support androidx under-migration-like nullability annotations
They are hardcoded to avoid having dependency from android.jar on
our annotations' jar with UnderMigration.

Even while it could be a compile-only dependency we need to make sure
that annotated types are read properly without RecentlyNonNull/RecentlyNullable
in the classpath

 #KT-24278 Fixed
2018-05-14 17:16:15 +03:00
Igor Chevdar 6daabca90b Fixed forgotten receivers during copying 2018-05-14 16:01:13 +03:00
Ilya Chernikov b3219cb762 Implement lazy script definition and light discovery in cli plugin, ...
update appropriate parts of the scripting infrastructure
2018-05-14 11:13:44 +02:00
Dmitry Petrov 0feb50021c IrClass.isInner 2018-05-14 10:37:27 +03:00
Natalia Selezneva 1e92dbf806 Fix tests: attach script reports in cli 2018-05-14 09:21:09 +03:00
Ilya Chernikov c74924fb8c Fix lz4 dependency...
after snappy was replaced by lz4 in the platform (see the previous commit
with related test for the more info)
2018-05-12 19:02:04 +02:00
Zalim Bashorov 0ca6dbcb82 [JS IR BE] remove no longer needed descriptor based utils 2018-05-11 20:27:54 +03:00
Roman Artemev 131fb642aa Fix initializer lowering crash during deep copy 2018-05-11 17:14:30 +03:00
Natalia Selezneva 9535c82149 Backport ScriptSeverity.FATAL to old script API
(cherry picked from commit dceb063)
2018-05-11 15:51:47 +03:00
Natalia Selezneva 082916be70 Refactoring of ScriptDependenciesUpdater
Extract classes for sync and async dependencies loading
2018-05-11 15:51:14 +03:00
Roman Artemev 455edae7de Fix name clashing between constructors in function reference lowering 2018-05-11 11:33:23 +03:00
Dmitry Petrov 93f5fe2451 IrField is 'final' if corresponding property is 'val' 2018-05-11 11:24:46 +03:00
Dmitry Petrov d83849eec5 IR: IrValueSymbol.owner: IrValueDeclaration 2018-05-11 11:24:46 +03:00
Dmitry Petrov 1592aa499f IR: IrFunctionSymbol.owner: IrFunction
This requires some class hierarchy juggling around
IrFunction and IrReturnableBlock.
2018-05-11 11:24:46 +03:00
Dmitry Petrov f500329dac IR: IrFunction.name 2018-05-11 11:24:46 +03:00
Dmitry Petrov 729efaf912 IR: IrConstructor.isPrimary
NB this is required for Kotlin/JS.
2018-05-11 11:24:46 +03:00
Dmitry Petrov a6057fb499 IR: {IrClass, IrFunction, IrProperty, IrField}.isExternal 2018-05-11 11:24:46 +03:00
Dmitry Petrov 9717345e3b IR: IrField.isFinal 2018-05-11 11:24:46 +03:00
Vyacheslav Gerasimov 9721ca8d09 as32: Update compiler.pro for AS 3.2 C14 2018-05-10 23:28:42 +03:00
Vyacheslav Gerasimov 4adc0a94ab as32: Update to 181 platform api 2018-05-10 23:28:41 +03:00
Ilya Chernikov e727e20973 [minor] Improve daemon exceptions logging 2018-05-08 15:59:45 +02:00
Mikhail Zarechenskiy eee59cb23c Fix deserialization of inline functions from inline classes
This fixes:
 CompileKotlinAgainstInlineKotlinTestGenerated$InlineClasses.testInlineFunctionInsideInlineClassesBox 

 Consider the following binary dependency:

 inline class UInt(val u: Int) {
    inline fun foo() {}
 }

 Now, if we want to inline function `foo`, we have to load it from bytes
 as ASM method and to do this we should know the container of this function.

 Note that because of inline class, actual signature of this function
 would be `foo(I)` and it will be stored in UInt$Erased class, not `UInt`
2018-05-08 11:54:24 +03:00
Dmitry Savvinov 58eb117ae1 Improve message of exception thrown from codegen
Don't lose information about which file caused crash.
2018-05-08 11:28:40 +03:00
Mikhail Zarechenskiy 50116fd8fc Fix coercion result for inline classes, add comment 2018-05-07 15:25:48 +03:00
Mikhail Zarechenskiy b25a1d9522 Support inline functions inside inline classes 2018-05-07 15:25:46 +03:00
Mikhail Zarechenskiy 5c57c799fc Fix generation of elvis with null constant for inline classes 2018-05-07 15:25:45 +03:00
Mikhail Zarechenskiy 043c3d9a97 Prohibit properties with backing fields inside inline classes 2018-05-07 15:25:43 +03:00
Mikhail Zarechenskiy 29d15b9990 Prohibit varargs on parameters of inline class types 2018-05-07 15:25:42 +03:00
Mikhail Zarechenskiy d3c1c11dc5 Prohibit initializer blocks inside inline classes 2018-05-07 15:25:40 +03:00
Mikhail Zarechenskiy 6a120d2f85 Require presence of public primary constructor for inline class 2018-05-07 15:25:38 +03:00
Mikhail Zarechenskiy 096fe1c411 Don't report diagnostics on the whole declaration, use main keyword 2018-05-07 15:25:37 +03:00
Mikhail Zarechenskiy ed4fd2bb2f Mark inline classes feature as experimental 2018-05-07 15:25:35 +03:00
Mikhail Zarechenskiy 71de2e3265 Report diagnostics for inline classes even if the feature is unsupported
This would help for those who use inline classes by suppressing error
 about unsupported feature
2018-05-07 15:25:34 +03:00
Mikhael Bogdanov 8834ea74f2 Revert "Don't generate reified inline function as privates"
This reverts commit 56859f7
2018-05-07 14:14:07 +02:00