Roman Artemev
538512fa2a
[JS IR BE] Fix unbound symbols after deserialization
...
* restore broken psi2ir invariant
2019-03-21 16:26:51 +03:00
Dmitriy Novozhilov
58189c79ca
Add regression test for PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL diagnostic
...
#KT-20507
2019-03-21 16:09:46 +03:00
Ilya Chernikov
c56382a62b
Move common idea and compiler parts of the scripting plugin to the new jar
2019-03-21 12:02:29 +01:00
Dmitry Petrov
f9119c001e
JVM_IR: generate file class without members if it has metadata
2019-03-21 11:23:51 +03:00
Dmitry Petrov
a5c95275f0
IR: get rid of descriptors in DumpIrTree
2019-03-21 11:23:51 +03:00
Dmitry Petrov
9a82f926a1
IR: descriptor-less rendering of IR elements (work in progress)
2019-03-21 11:23:51 +03:00
Dmitry Petrov
cd138bc022
IR: IrSymbolVisitor
2019-03-21 11:23:51 +03:00
Dmitry Petrov
110a15d395
IR: drop IrFile.fileAnnotations (it already has annotations anyway)
2019-03-21 11:23:51 +03:00
Dmitry Petrov
b42aa39033
IR: drop IrTypeAlias
2019-03-21 11:23:51 +03:00
Dmitry Petrov
e49eae528c
IR: don't use descriptors in rendering (work in progress)
...
There's some descriptor-based code remaining. Need some more work on IR.
2019-03-21 11:23:51 +03:00
Mikhail Glukhikh
c1984d92ff
Introduce FirFile.fileSession, get rid of most FirElement.session usages
2019-03-21 10:29:58 +03:00
Roman Artemev
698594b14d
[IR] Fix classifier equality for Local classes
2019-03-20 23:45:03 +03:00
Ting-Yuan Huang
79fcaae991
Implement constant folding in the IR backend for JVM
...
The newly added pass folds the set of constant functions of the
current backend, plus IrBuiltIns.
2019-03-20 21:02:55 +01:00
Ting-Yuan Huang
7e4d33be24
ConstantExpressionEvaluator: make evaluate*naryAndCheck public
2019-03-20 21:02:55 +01:00
Ting-Yuan Huang
f352a4dcd4
IrBuiltIns: factoring out operator names
...
so that they can be used in other contexts.
2019-03-20 21:02:55 +01:00
Vyacheslav Gerasimov
fc8be48fa8
Build: Improve intellij-sdk repo up-to-date check time & layout
...
Up-to-date check is very heavy for intellij repo due to artifact size.
If module directory in repo is written only by one task we can assume
that task if up-to-date if target directory exists.
2019-03-20 21:29:13 +03:00
Vyacheslav Gerasimov
f890cab145
Build: Rename custom-dependencies -> dependencies
2019-03-20 21:29:11 +03:00
Yan Zhulanow
4870b2e6ba
Fix asmTypeForAnonymousClassOrNull(): it should not throw an exception if a class name isn't found
2019-03-20 20:52:20 +03:00
Yan Zhulanow
3f92451fde
Explicitly check for the callable class availability
...
'@NotNull' annotation generates a not-null assertion that caused exceptions to throw from 'asmTypeForAnonymousClassOrNull()'.
2019-03-20 20:52:20 +03:00
Yan Zhulanow
77c2a5c87c
Debugger: Fix missing NOP in empty 'when' header (KT-29189)
2019-03-20 20:52:20 +03:00
Jake Wharton
6ee987fa2e
Add intrinsics for compile-time computing trimMargin/trimIndent
...
These only apply when the receiver can be resolved to a constant and the margin prefix, if specified, is also a constant.
2019-03-20 17:25:29 +01:00
Ivan Gavrilovic
9f14daa682
Incremental annotation processing with KAPT
...
Add support for incremental annotation processors in KAPT. These
processors conform to https://docs.gradle.org/current/userguide/java_plugin.html#sec:incremental_annotation_processing
specification.
Support is provided by using javac compiler APIs and
recording the source file structure. At runtime, processors
are instrumented with custom Filer that is used to keep track of generated
files. In order to support classpath changes, stub generation task is
used to generated a list of changed FQCNs, and this is simply used by KAPT.
Both worker and non-worker mode are supported.
#KT-23880
2019-03-20 16:43:02 +03:00
Dmitry Petrov
7e4688da93
psi2ir: add test for reference to var with non-accessible setter
2019-03-20 11:57:57 +03:00
Dmitry Petrov
21dbe2e7e7
IR: symbolName mangling for IrTypeParameter
...
(original author: Alexander Gorshenev)
2019-03-20 11:57:57 +03:00
Roman Artemev
206e5d30d9
Regenerate protobuf
2019-03-20 11:57:57 +03:00
Dmitry Petrov
c86ef5da53
psi2ir: update testData for property references
2019-03-20 11:57:57 +03:00
romanart
5b5f3a7468
[IR] Fix classes TypeParameter [de]serialization
2019-03-20 11:57:57 +03:00
Dmitry Petrov
9f48695dde
psi2ir: no unbound field symbols in delegated property references
...
#KT-30323 Fixed
2019-03-20 11:57:57 +03:00
Dmitry Petrov
15918fc475
IR: deprecations
2019-03-20 11:57:57 +03:00
Dmitry Petrov
bd9c5645cd
IR: fix property reference symbol binding for generic properties
2019-03-20 11:57:57 +03:00
Dmitry Petrov
8b4dab7c25
JS_IR: fix property name generation
2019-03-20 11:57:57 +03:00
Dmitry Petrov
04fad012a0
IR: IrPropertySymbol introduced, some code cleaned up
...
#KT-30304
2019-03-20 11:57:57 +03:00
Ting-Yuan Huang
f6cf434650
when: emit switch for String if possible
...
Effectively, the following when structure:
when (s) {
s1, s2 -> e1,
s3 -> e2,
s4 -> e3,
...
else -> e
}
is implemented as:
when (s.hashCode()) {
h1 -> {
if (s == s1)
e1
else if (s == s2)
e1
else if (s == s3)
e2
else
e
}
h2 -> if (s == s3) e2 else e,
...
else -> e
}
where s1.hashCode() == s2.hashCode() == s3.hashCode() == h1,
s4.hashCode() == h2.
A tableswitch or lookupswitch is used for the hash code lookup.
Change-Id: I087bf623dbb4a41d3cc64399a1b42342a50757a6
2019-03-20 09:13:51 +01:00
Roman Artemev
2ed29d8869
[IR BE] Use pure IrType instead of KotlinType
...
* clean up code
2019-03-19 20:09:07 +03:00
pyos
39adfcced1
Add more comments to PropertyReferenceLowering
2019-03-19 12:00:29 +01:00
pyos
ed298c48b7
Unmute a test fixed by a combination of PR #2151 and #2184
2019-03-19 12:00:29 +01:00
pyos
6c68474489
JVM_IR: use correct signatures for local delegated property references
...
Which is `<v#N>` where N is the index of that property in the containing
class.
2019-03-19 12:00:29 +01:00
pyos
8c55376f0c
Unmute almost all JVM_IR tests that use property references
2019-03-19 12:00:29 +01:00
pyos
330c4648cb
Implement property references in JVM_IR
2019-03-19 12:00:29 +01:00
Mikhail Glukhikh
a07502374e
Rename (style): russian "С" to english "C"
2019-03-19 12:23:47 +03:00
pyos
82ccf81da8
Fix this remapping in inner class constructors
...
Inner class constructors should use the argument instead of reading
outer `this` from a field because if such an access happens before a
delegating constructor call, e.g. when evaluating an argument, a JVM
bytecode validation error will be thrown. (The only operation on `this`
allowed before a delegating constructor call is SETFIELD, and only if
the field in question is declared in the same class.)
2019-03-19 09:20:41 +01:00
pyos
7e8db4cc4a
Refactor InnerClassesLowering
2019-03-19 09:20:41 +01:00
Dmitriy Novozhilov
d01b6ef900
Revert "[NI] Support @OnlyInputTypes annotation. #KT-29307 fixed"
...
This reverts commit 90628112
With that annotation there is complex bug that breaks build of Kotlin compiler
2019-03-18 18:53:38 +03:00
Mikhail Glukhikh
16f9eecb29
Fix "/ by zero" in FirResolveBench & switch progress OFF in smoke tests
2019-03-18 17:12:02 +03:00
Mikhail Glukhikh
741bdccca5
Enhance progress logging in FIR total resolve tests
2019-03-18 14:49:11 +03:00
Svyatoslav Kuzmich
1d6cd90043
[JS IR BE] Clean up compiler driver api
...
This is a preparation step for JS-IR CLI:
- CompiledModule was overused. Split it into KlibModuleRef and TranslationResult
- Deserialize klib dependencies from klibs itself
2019-03-18 14:13:28 +03:00
Svyatoslav Kuzmich
e302f63d9a
[JS IR BE] Remove generateModuleInGlobalScope for code generator
...
This method used to be a workaround for test speedup.
Now we use proper close world module with runtime+stdlib module
as pre-serialized klib.
2019-03-18 14:13:28 +03:00
Ilmir Usmanov
d154cf9a59
Fix test data
2019-03-18 14:04:04 +03:00
Ilmir Usmanov
c68413b953
Do not generate StateMachineChecker if CHECK_STATE_MACHINE directive is
...
not present.
Otherwise, since it uses suspend functions, it breaks IR tests.
2019-03-18 14:04:03 +03:00
Ilmir Usmanov
7956ef18b2
Generate RETURN instead of ARETURN if (cross)inline suspend lambda returns Unit
...
#KT-30073 Fixed
2019-03-18 14:04:02 +03:00