Pavel Kunyavskiy
948dc4f374
Fix annotation class modality in stubs
...
^KT-49428
2021-11-03 07:22:28 +00:00
Mads Ager
6622846bc1
[JVM IR] Do not put destructuring params or underscores in LVT.
...
Putting them in the local variable table means that the debugger
needs to have special handling for parameters with specific names.
That forces us to generate mangled names for these.
Instead of also implementing the name mangling for FIR, this
change gets rid of the parameters from the LVT instead.
2021-11-02 15:13:14 +03:00
Mads Ager
e5bff514b6
FIR2IR: Fix line number differences in try block
2021-11-01 23:59:59 +03:00
Mads Ager
41aa0a7c7f
[FIR] Fix line number differences between psi2ir and fir2ir.
2021-11-01 15:43:13 +03:00
Roman Artemev
4424512bd6
[TEST] Add irText test for DefinitelyNotNull type
2021-10-28 18:03:12 +03:00
Ivan Kochurkin
489c9ae11f
[FIR2IR] Recognize postfix inc/dec blocks in sequence of statements
2021-10-25 21:21:45 +03:00
Ivan Kochurkin
82591bb107
[FIR2IR] More accurate equals intrinsic for double/float types
2021-10-25 21:21:43 +03:00
Ivan Kochurkin
b4fada82ae
[FIR2IR] Fix conversion of loops with withIndex
2021-10-25 21:21:42 +03:00
Ivan Kochurkin
3210a2a950
[FIR2IR] Recognize postfix inc/dec pattern from block statements
2021-10-25 21:21:40 +03:00
Ivan Kochurkin
0d91e16a15
[FIR2IR] Fix considering of Contains intrinsic
2021-10-25 21:21:40 +03:00
Ivan Kochurkin
15d23f2a72
[FIR2IR] Fix applying of equals intrinsics
2021-10-25 21:21:39 +03:00
Ivan Kochurkin
31507e7e7e
[FIR2IR] Fix origin for desugared blocks (to enable jvm optimization lowering)
...
Move getIrAssignmentOrigin to ConversionUtils
2021-10-25 21:21:37 +03:00
Denis.Zharkov
a0a57581ec
FIR: Do not add alias for variables with explicit type
2021-10-20 22:05:24 +03:00
Mark Punzalan
167dc81d3b
FIR/Analysis API: Get parameter name from function type notation or
...
`@ParameterName` annotation, which is also now added during type
resolution.
2021-10-15 16:19:00 +03:00
Dmitry Petrov
6f33259bc3
PSI2IR KT-49203 INVISIBLE_FAKE setter is non-referenceable
2021-10-13 18:38:23 +03:00
Dmitriy Novozhilov
b454fcc1e0
[FIR] Save IR dumps to .ir.txt files instead of .txt in tests
...
This is needed to avoid clashes between different dumps from different
handlers
2021-10-12 17:26:36 +03:00
Dmitriy Novozhilov
63d841247c
[FIR2IR] Properly setup IrClass.sealedSubclasses
2021-10-09 17:07:36 +03:00
Dmitry Petrov
146f0f4904
JVM_IR KT-41214 emit PermittedSubclasses on JDK17+
2021-10-09 17:07:35 +03:00
Igor Chevdar
0cece79856
[K/N][IR][codegen] Use LazyIr for cached libraries
...
It's not that simple because we still need inline functions bodies
and classes fields which aren't present in Lazy IR. To overcome this,
save additional binary info for a cached library and then use it when needed
2021-10-05 10:47:52 +05:00
Alexander Udalov
9857af7823
Psi2ir: fix function type check for fun interface conversion
...
Parameter of a synthetic SAM adapter always has a function type (not a
subtype). Checking for the subtypes broke the case from KT-46908, where
fun interface is itself a subtype of a function type.
#KT-46908 Fixed
2021-09-30 14:07:07 +02:00
Alexander Udalov
e6a160e115
Minor, uncomment passing IR text test
2021-09-30 14:07:07 +02:00
Ivan Kylchik
cc934d9574
Support arguments' evaluation of primitive arrays in fir2ir transformer
2021-09-27 17:45:01 +03:00
Victor Petukhov
ee728b6902
Use the new type inference for top-level callable reference resolution
...
^KT-47797 Fixed
^KT-47987 Fixed
^KT-45034 Fixed
^KT-48446 Fixed
^KT-13934 Fixed
2021-09-27 16:12:27 +03:00
Pavel Kunyavskiy
a40022efcd
Generate IR for annotation class constructors.
2021-09-23 06:59:33 +00:00
Dmitriy Novozhilov
bfeb9c219d
[FE 1.0] Correctly set USED_AS_EXPRESSION for unreachable catch clauses
...
^KT-48806 Fixed
2021-09-17 18:38:19 +03:00
Tianyu Geng
765cad8448
FIR checker: substitute type parameters in dispatch receiver type
...
Consider the following code:
```
fun test(a: List<String>) {
a.first()
}
```
The dispatch receiver type of `first` in this case is `List<T>` before
this change. After this change, it's `List<String>`.
In addition, this change also replace the dispatch receiver type with
the more specific type if available. For example, consider the following
```
class MyList: ArrayList<String>()
fun test(a: MyList) {
a.get(0)
}
```
The dispatch receiver type of `get` is `MyList`, instead of
`ArrayList<String>`. That is, a fake override is created in this case.
2021-09-17 01:59:06 +03:00
Dmitriy Novozhilov
d390f881c8
[FE 1.0] Record USED_AS_EXPRESSION for unreachable CFG nodes
...
^KT-48708 Fixed
2021-09-13 16:22:50 +03:00
Dmitriy Novozhilov
5769d42248
[FIR] Fix all usages of annotations due to new FirAnnotation hierarchy
2021-09-13 13:53:12 +03:00
Mikhail Glukhikh
fc6403679a
Rename !USE_EXPERIMENTAL test directive to !OPT_IN
2021-09-10 16:29:16 +03:00
Mikhail Glukhikh
f397553e94
PSI2IR: don't generate annotations on init block (related to KT-48687)
2021-09-09 22:14:48 +03:00
Mikhail Glukhikh
457a6f4e9d
IR: copy anonymous initializer annotations properly #KT-48687 Fixed
2021-09-09 22:14:48 +03:00
pyos
a475453a01
FIR: enable useCorrectedNullabilityForFlexibleTypeParameters
...
It's necessary for correct substitution of `T & Any` with `T = V..V?`.
2021-09-06 13:11:16 +03:00
pyos
e2a48d3945
FIR: use frontend-independent Java type qualifier computation
2021-09-06 13:11:07 +03:00
pyos
e385484994
FIR: when translating raw types, reuse computed upper bounds
...
Also, don't bother ensuring that the upper bound has the same tree size
as the lower bound; the new index computation can handle it when some
subtrees of the lower bound are replaced by star projections in the
upper bound.
2021-09-06 13:11:06 +03:00
pyos
5704dffdbe
FIR: attach annotations to Java-converted cone types
2021-09-06 13:11:03 +03:00
pyos
5355d04553
FIR: enhance in/out-variant type arguments
2021-09-06 13:11:03 +03:00
pyos
8e122397b0
FIR: fix type index computation during enhancement
...
1. in/out type parameters count;
2. star projections take up 1 space in the tree.
2021-09-06 13:11:02 +03:00
pyos
5fec9f34b1
FIR: revert a hack that allows overriding T!! with T
...
1. this should've been only done if the language feature for validating
that is disabled;
2. that feature probably won't matter by the time FIR is stable;
3. it only worked because type enhancement of type arguments is broken
anyway - a more correct hack would be to provide a custom
ConeTypePreparator.
2021-09-06 13:11:01 +03:00
Dmitriy Novozhilov
5a5d25d350
[FE 1.0] Postpone ProhibitSimplificationOfNonTrivialConstBooleanExpressions till 1.7
...
^KT-39883
2021-09-02 13:34:25 +03:00
Alexander Udalov
ffe0d9de70
Psi2ir: do not sort descriptors for fake override generation
...
Descriptors are already supposed to be sorted in scopes. The problem is
that rendering descriptors for sorting takes a lot of time (~1.5% of
total compilation time of intellij with JVM IR), and simple heuristics,
like comparing by names first, don't fully help with it.
#KT-48233
2021-08-31 20:25:59 +02:00
Denis.Zharkov
9e6af52e1f
Enable DefinitelyNotNullTypeParameters since 1.7
...
^KT-26245 In Progress
2021-08-31 15:41:13 +03:00
Dmitriy Novozhilov
40614507d3
[FE 1.0] Report warning about new IL operator resolve in initializers and default values
...
^KT-48361 Fixed
2021-08-23 16:20:41 +03:00
Mikhael Bogdanov
8ab546ba51
[FIR]: Pass special origins for local functions (named and anonymous)
2021-08-18 09:58:27 +00:00
Mikhael Bogdanov
a5e59e09ee
Copy methods for lambdas to DefaultImpls without receiver transformation
...
#KT-48230 Fixed
2021-08-18 09:58:27 +00:00
Denis.Zharkov
753ba99b04
FIR: Support enhanced types when checking if Java type is primitive
2021-08-17 21:38:01 +03:00
Ivan Kylchik
bc9b2fd78b
Uncomment some test cases in reflection test data for interpreter
2021-08-13 16:18:29 +03:00
Ivan Kylchik
23b315446f
Support sam conversion in ir interpreter
2021-08-13 16:18:28 +03:00
Tianyu Geng
0026560bd7
FIR: substitute the whole lambda body after builder inference
2021-08-06 22:57:13 +03:00
Ivan Kylchik
4f15bd4817
Introduce a workaround in interpreter tests to make them pass
...
There is a problem with ranges and iterators. To work properly
they must be resolved firstly, before operator rangeTo.
2021-08-06 13:33:33 +03:00
Ivan Kylchik
6482abc602
Add CompileTimeCalculation annotation as helper to interpreter's tests
2021-08-06 13:33:25 +03:00