Georgy Bronnikov
ec2dc9c0fa
IR: synchronize on SymbolTable operations
2021-02-17 11:05:21 +03:00
Georgy Bronnikov
c9d0448fd1
IR: use threadLocal
2021-02-17 11:05:21 +03:00
Georgy Bronnikov
56a26113cd
IR: threadLocal
...
To be used for per-file state in global structures during parallel
lowering.
2021-02-17 11:05:20 +03:00
Georgy Bronnikov
57167922e2
IR: make lazyVar synchronized
2021-02-17 11:05:20 +03:00
Georgy Bronnikov
4e9bedc2fc
JVM_IR: use ConcurrentHashMap
...
Replace mutable maps and sets accessed from by-file lowerings with
ConcurrentHashMap, so that lowerings can operate on them in parallel.
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
23da2bde67
IR: fixes for IR by-file copying
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
54a76977db
IR: fix fake override computation
...
Due to IR copying in performByIrFile, we need to only distinguish
overrides up to their fqName.
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
d154c8d8e6
IR: copy each file before lowering.
...
Avoid inter-file dependencies while lowering.
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
103f82c95c
IR: an option to automatically select the number of lowering threads
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
52b3cb362b
IR: thread pool in PerformByIrFilePhase
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
eae416d739
IR: Handle exceptions from by-file lowering thread
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
bea5d955d4
JVM_IR: perform file lowerings in parallel
...
Selected by -Xir-run-lowerings-in-paralled compiler flag.
2021-02-17 11:03:26 +03:00
Anton Bannykh
c06b345f3c
Hide stageController into the IrFactory
2021-02-17 10:42:50 +03:00
Anton Bannykh
97080c49fc
Persistent IR generator
...
Goal:
- avoid hand-writing the boilerplate
- easier PIR evolution
Output is reasonably close the hand-writtern version
2021-02-17 10:42:50 +03:00
Anton Bannykh
8a0ce20d43
PIR: minor restructuring
2021-02-17 10:42:50 +03:00
pyos
1310a65f0c
JVM: rename this$0 when regenerating nested objects too
...
In the old backend, this was unnecessary because nested objects would
reference their lambdas' captures through the original this$0. On
JVM_IR, using loose capture fields means a name/descriptor clash can
occur on any level of nesting, not just the top.
2021-02-17 07:56:03 +01:00
Nikolay Krasko
ec89cb2313
Ignore hanging KotlinAndroid36GradleIT.testAndroidMppSourceSets()
...
Ignore till the proper investigation.
Probably caused in https://github.com/JetBrains/kotlin/compare/b262d09a81bf20ffd71db18a0c24ac4f61fa151c...5c7aadece929f79a39bf0ad20549e30d5e391a7c .
2021-02-17 00:26:19 +03:00
Ilmir Usmanov
ec569a4c89
Minor. Suppress errors in tests
2021-02-16 20:59:25 +01:00
Ilmir Usmanov
bad197e075
Raise RESERVED_VAR_PROPERTY_OF_VALUE_CLASS to error
2021-02-16 20:59:21 +01:00
Dmitry Petrov
56a104dda9
JVM_IR KT-44974 fix SAM-converted capturing extension lambda
2021-02-16 19:51:59 +03:00
Dmitriy Novozhilov
83ed67546b
[Test] Support WITH_STDLIB directive in js box tests
2021-02-16 17:51:32 +03:00
Dmitriy Novozhilov
dfcff132fd
[FIR] Fix false-positive smartcast on receiver in rhs of elvis
...
#KT-44942 Fixed
2021-02-16 17:51:32 +03:00
Dmitriy Novozhilov
2b39282682
[FIR] Render original type before smartcasted type in DEBUG_INFO_EXPRESSION_TYPE
...
This is made for keep consistency with same renderer in FE 1.0
2021-02-16 17:51:32 +03:00
Dmitriy Novozhilov
d4c26cca52
[FIR] Use type without smartcast for local variable with smartcasted initializer
2021-02-16 17:51:32 +03:00
Dmitriy Novozhilov
40e286b354
[FIR] Increase level of sequential when branches
...
Level of CFGNode is used to determine which call is a common one for
creating node with union of arguments (to merge flow from multiple
in-place lambdas). Before this change calls in different when branches
may have same node level, which entail passing smartcasts from moddle of
one branch to another
```
val x: Any = ...
when {
... -> run { x as String } // (1)
... -> {
run {
x.foo()
} // (2)
"hello"
}
}
```
Call `(1)` was assumed as argument of call `(2)` which is incorrect
#KT-44814 Fixed
2021-02-16 17:51:31 +03:00
Dmitriy Novozhilov
92271527cb
[Test] Add CFG and IR dump handlers to FirBlackBoxTests
2021-02-16 17:51:31 +03:00
Dmitriy Novozhilov
b5619dbf37
[FIR] Add ability to render node levels in CFG graph dumper
2021-02-16 17:51:31 +03:00
Ilya Kirillov
3e22011626
Fix compilation of HLRedundantVisibilityModifierInspection
2021-02-16 15:47:08 +01:00
Ilya Kirillov
e8f3ebdd19
FIR IDE: introduce HLRedundantVisibilityModifierInspection by extended checker
2021-02-16 15:23:18 +01:00
Ilya Kirillov
6d97841f38
FIR IDE: introduce HLLocalInspectionTest
2021-02-16 15:23:18 +01:00
Ilya Kirillov
7fb6c22889
FIR IDE: allow creating inspections by extended checkers
2021-02-16 15:23:17 +01:00
Ilya Kirillov
b9a4613e44
FIR IDE: remove getMessage from HLPresentation as it duplicates HLApplicator.getActionName
2021-02-16 15:23:17 +01:00
Ilya Kirillov
c13889c2ea
FIR: add ability to specify checkers list for checker components
2021-02-16 15:23:17 +01:00
Ilya Kirillov
ca4a07f73f
Unify message bundles used in IDEA FIR into KotlinBundle
2021-02-16 15:23:17 +01:00
Vladimir Dolzhenko
6352814d45
Fix NPE
...
#KTIJ-898 Fixed
Original commit: 12d8e88b846f29598ca3904b49996bd6a9891ccd
2021-02-16 14:21:40 +00:00
Vladimir Dolzhenko
98ba379e07
Fixed NPE on StandaloneScriptRootsCache instantiation
...
Relates to ^EA-218043
#KTIJ-1137 Fixed
Original commit: 1d63a1b48d480b958ff44676c42b698a8ca5f64a
2021-02-16 14:21:39 +00:00
Dmitriy Dolovov
45b17120ad
[Commonizer] Minor. Rename: 'dependee' -> 'dependency'
2021-02-16 17:19:49 +03:00
Dmitriy Dolovov
ec7e411d80
[Commonizer] Remove classifierId from CIR class/TA nodes
2021-02-16 17:19:43 +03:00
Dmitriy Dolovov
ef931d5561
[Commonizer] Don't keep kotlin/Any as the single supertype in CirClass
2021-02-16 17:19:38 +03:00
Victor Petukhov
baeee8988e
[all-open] Don't affect private declarations to change their modality to open
2021-02-16 17:18:08 +03:00
Victor Petukhov
ec41775d7e
[all-open] Fix formatting
2021-02-16 17:18:07 +03:00
Mads Ager
05ff2b1292
[JVM_IR] Extend when to switch translation to deal with nested ors.
...
FIR translates:
```
when (x) {
1, 2, 3 -> action
else -> other_action
}
```
to an IR structure with nested ors:
```
if ((x == 1 || x == 2) || (x == 3)) action
else other_action
```
This change allows that to turn into switch instructions in the
JVM backend.
2021-02-16 03:20:07 -08:00
Ilya Kirillov
91581d6c1a
Move KotlinBundle to frontend-independent module
...
to use from IDEA FIR
2021-02-16 12:16:17 +01:00
Mikhail Glukhikh
a8c23e1c3a
FirDefaultStarImportingScope: filter INVISIBLE_CLASSES properly
2021-02-16 12:38:46 +03:00
Mikhail Glukhikh
940588a9bb
FE: commonize throw-related annotation FQ names
2021-02-16 12:38:46 +03:00
pyos
2dc0404751
FIR: prioritize visible imported classes during type resolution
...
and produce an error on ambiguity.
2021-02-16 12:38:45 +03:00
pyos
291ed4a38a
FIR: handle typealiases during conflict resolution
2021-02-16 12:38:45 +03:00
Hung Nguyen
592c285198
Kapt: Don't create KDocCommentKeeper when not needed
...
Previously, even if `keepKdocComments=false`, we would still create the
KDocCommentKeeper object unnecessarily.
This commit makes sure we create the object only if
`keepKdocComments=true`.
Bug: Clean-up after commit e252171 for KT-43593
Test: Existing tests
2021-02-16 11:53:49 +03:00
Ilya Kirillov
0a72e16451
FIR: transform DiagnosticBuilder DSL to an object
...
To make diagnostics visible in symbol search in IJ
2021-02-15 22:28:13 +01:00
SokolovaMaria
15aaf3a078
Copy typeParameters from original declaration to the exportedDefaultStubFun before substitution of type parameters
2021-02-15 23:17:11 +03:00