Dmitriy Novozhilov
68f3d84e22
[FIR] Use CandidateApplicability from FE 1.0
2020-09-09 12:38:34 +03:00
Mikhail Glukhikh
548adc29d0
[FIR] Enter loops in resolve using independent context
2020-09-03 14:24:31 +03:00
Dmitriy Novozhilov
b21a0213df
[NI] Get rid of FE 1.0 types in AbstractTypeApproximator
2020-08-28 10:59:51 +03:00
Arsen Nagdalian
ede1c08a9b
[FIR] Add resolution of contracts that are written using the new syntax
2020-08-25 12:58:39 +03:00
Dmitriy Novozhilov
316e0e6609
[FIR] Update testdata
2020-08-25 12:07:59 +03:00
Nick
c8f8908a01
[FIR] Add NO_THIS & INSTANCE_ACCESS_BEFORE_SUPER_CALL
2020-08-24 11:06:10 +03:00
Jinseong Jeon
ca541337d1
FIR: skip return insertion for lambda w/ Unit return type
2020-08-21 19:16:43 +03:00
Oleg Ivanov
21b8679799
[FIR] Add ReturnsImplies effect analyzer
2020-08-12 11:06:07 +03:00
Oleg Ivanov
4367d6631f
[FIR] Add CallsInPlace contract analyzer
2020-08-11 16:17:01 +03:00
Oleg Ivanov
cc9c5b9e3c
[FIR] Add CFG nodes, add multiple subGraphs for CFGOwner
2020-08-11 16:17:01 +03:00
Nick
4669e019d1
[FIR] Add diagnostic CONFLICTING_OVERLOADS & REDECLARATION
2020-08-10 10:09:37 +03:00
Dmitriy Novozhilov
721b9b4d8c
[FIR] Resolve annotations as calls
2020-08-04 08:59:14 +03:00
Mikhail Glukhikh
6eab6f2f87
[FIR TEST] Replace OTHER_ERROR with UNRESOLVED_REFERENCE in test data
2020-08-02 18:19:47 +03:00
Mikhail Glukhikh
ceaffb1e8b
[FIR] Don't report duplicated errors in implicit primary constructors
2020-08-02 18:19:45 +03:00
Mikhail Glukhikh
0804c6a0f3
[FIR] Introduce TYPE_ARGUMENTS_NOT_ALLOWED & some other type errors
...
This commit introduces several different things, in particular:
- check type arguments in expressions
- new TypeArgumentList node to deal with diagnostic source
- ConeDiagnostic was moved to fir:cones
- ConeIntermediateDiagnostic to use in inference (?) without reporting
- detailed diagnostics on error type
2020-08-02 18:19:44 +03:00
Nick
7145caca40
[FIR] Refactor effective visibility calculation
...
Before this commit, we had effective visibility as a part of FIR status,
so it was integrated into the full pipeline. In this commit,
we introduced "effective visibility as a service" which is now used
only by exposed visibility checker. This allows us to make the thing
universal for all FIR nodes, including nodes for Java / deserialized.
2020-07-31 19:27:58 +03:00
Dmitriy Novozhilov
f283f2db43
[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible
...
Also introduce few new diagnostics:
- NONE_APPLICABLE more many inapplicable candidates
- HIDDEN for visible candidates
2020-07-28 20:46:56 +03:00
Ivan Kylchik
3c01a39846
[FIR] Update test data after introducing new fir nodes
2020-07-21 13:54:17 +03:00
Jinseong Jeon
5600eefea5
FIR: add support for varargs in annotation calls
2020-07-15 13:36:30 +03:00
Nick
67e58ff152
[FIR] Fix redundant calls to firEffectiveVisibility()
2020-07-13 16:30:47 +03:00
Dmitriy Novozhilov
58af8d68a1
[FIR] Check for isFun flag in SAM resolution
2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov
a3a79e4295
[FIR] Update testdata due to incorrect SAM detection
2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov
29849b1330
[FIR] Resolve rhs of += in dependent context
2020-07-08 12:13:31 +03:00
Ivan Kylchik
574aa0affe
[FIR] Fix synthetic property is not var due to Nullable on parameter
...
Synthetic property is var when it have setter. The latter is set up
in property when its parameter type is equal to getter return type. In
case of using @Nullable, parameter type of setter is not equal to
return type of getter, because the latter is flexible type. So to fix
this verification should occur using not null types
#KT-39076 Fixed
2020-07-06 17:52:37 +03:00
Dmitriy Novozhilov
102c9c08d0
[FIR] Resolve elvis call as special synthetic call
...
Before that commit we desugared `a ?: b` as
when (val elvis = a) {
null -> b
else -> elvis
}
It was incorrect, because `a` should be resolved in dependent mode,
but when it was `elvis` initializer it was resolved in independent
mode, so we can't infer type for `a` in some complex cases
2020-07-02 15:10:51 +03:00
Dmitriy Novozhilov
b49b3245af
[FIR] Add special node for elvis call
...
#KT-39074
2020-07-02 15:10:51 +03:00
Dmitriy Novozhilov
648953085f
[FIR] Replace kotlin/Throwable with java/lang/Throwable in JvmMappedScope
...
#KT-39044 Fixed
2020-07-02 15:10:51 +03:00
Mikhail Glukhikh
c1609ed490
[FIR] Make expect class members also expect
2020-06-29 16:07:50 +03:00
Dmitriy Novozhilov
7834284bec
[FIR] Support deserialization of value parameter annotations
...
There are still some problems, see KT-39837
2020-06-29 12:19:03 +03:00
Dmitriy Novozhilov
dbbb999952
[FIR] Support builder (coroutine) inference
...
#KT-37431 Fixed
2020-06-29 12:19:02 +03:00
Mikhail Glukhikh
699829ccb3
Make FIR multi-module tests from IDE regular FIR compiler resolve tests
2020-06-25 12:35:25 +03:00
Ilya Gorbunov
696701d377
Drop deprecated MutableMap property delegation operator
2020-06-22 12:29:25 +03:00
Dmitriy Novozhilov
bd8eaad885
[FIR-TEST] Update cfg dumps in some tests
...
One of previous commit changed order for those graphs, but i didn't
find which one
2020-06-19 15:53:11 +03:00
Dmitriy Novozhilov
26458875d5
[FIR] Add checker for uninitialized properties
2020-06-19 15:53:09 +03:00
Dmitriy Novozhilov
12ed8c3bb4
[FIR-TEST] Update CFG dumps according to new nodes order
2020-06-19 15:53:04 +03:00
Dmitriy Novozhilov
87859b0faa
[FIR] Introduce new algorithm for building CFG for declarations
2020-06-19 15:53:00 +03:00
Dmitriy Novozhilov
950bbfe3a5
[FIR] Add kind for back edges in CFG
2020-06-19 15:53:00 +03:00
simon.ogorodnik
1a7b30c13a
[FIR] Fix incorrect name in anonymous object class id
2020-06-16 00:01:06 +03:00
Dmitriy Novozhilov
d7ee168dff
[FIR] Create error candidate for completion instead of simple error reference
2020-06-15 15:32:25 +03:00
Jinseong Jeon
0d6e309372
FIR: construct type with actual type arguments during GetClassCall transformation
2020-06-04 10:13:37 +03:00
Denis Zharkov
723b275d99
FIR: Fix rendered fir and DFA graph test data after safe-calls refactoring
...
^KT-38444 In Progress
2020-06-03 10:43:37 +03:00
Mikhail Glukhikh
0ffa0b2bd7
[FIR] Fix effective visibility handling for local members
...
In future 'Local' effective visibility could be used
as a flag of local declaration
2020-06-02 18:47:58 +03:00
Denis Zharkov
e1e149a062
FIR: Support coercion-to-unit semantics for callable references
2020-05-18 11:17:45 +03:00
simon.ogorodnik
86683e94fc
[FIR] Fix cfg crash with multiple postponed arguments
2020-05-13 19:20:02 +03:00
Mikhail Glukhikh
41f241f608
FIR CFG: merge DFA + CFA edge in Simple edge
2020-05-13 10:37:08 +03:00
Mikhail Glukhikh
32cfee50e0
FIR CFG: remove duplicating lambda enter -> exit connection
2020-05-13 10:37:08 +03:00
Jinseong Jeon
30e5748fec
FIR: set proper visibility of property accessors.
2020-05-12 19:47:37 +03:00
Mikhail Glukhikh
457fb09e3a
[FIR] Use tower to resolve delegated constructors, set dispatch receiver
2020-05-12 16:57:07 +03:00
Alexander Podkhalyuzin
6372c01e49
Added missing specificity comparator to FIR
...
This is required to correctly resolve overloading in cases when we
need to find most specific alternative in Java between int and Integer.
2020-04-28 17:34:42 +03:00
Mikhail Glukhikh
57b4a54766
[FIR] Calculate effective visibility inside anonymous object properly
...
#KT-38432 Fixed
2020-04-23 13:57:27 +03:00