Commit Graph

705 Commits

Author SHA1 Message Date
Mikhail Glukhikh 1938438fa1 FIR: save/restore tower data contexts during resolve jumps
#KT-50278 Fixed
2021-12-21 10:45:36 +00:00
Mikhail Glukhikh 25f30cb3a9 FIR: add resolve test for potential local scope problems 2021-12-21 10:45:34 +00:00
Simon Ogorodnik bb13583862 FIR: Rename stub type for builder inference 2021-12-15 22:23:13 +03:00
Simon Ogorodnik 26b158bded FIR: Update test-data (Delegate inference) 2021-12-15 22:23:12 +03:00
Mikhail Glukhikh a4df0aaa7d FIR: Add test 2021-12-15 22:23:08 +03:00
Mikhail Glukhikh 2338281889 FIR: Add test for get class + let in delegation 2021-12-15 22:23:07 +03:00
Simon Ogorodnik 11ec23e5dc FIR: Make synthetic type variables fix to self-stub type if no info 2021-12-15 22:23:05 +03:00
Simon Ogorodnik 52145e0623 FIR: Respect nullability when substituting stub types 2021-12-15 22:23:02 +03:00
Mikhail Glukhikh 40a2837b4c FIR: Update test-data (Delegate inference) 2021-12-15 22:23:02 +03:00
Simon Ogorodnik b45b624945 FIR: Fix integrating DeclaredUpperBound positions in builder inference 2021-12-15 22:23:01 +03:00
Simon Ogorodnik 2e69f7732c FIR: Add more tests for delegate inference 2021-12-15 22:22:57 +03:00
Mikhail Glukhikh 4d9e919f7e FIR: preliminary refactoring of delegate resolve 2021-12-15 22:22:51 +03:00
Mikhail Glukhikh a19495cb26 FIR: add test with resolve problem in delegate 2021-12-15 22:22:50 +03:00
Mikhail Glukhikh df50a8141f FirCallCompleter: unwrap definitely not-null type properly
#KT-50180 Fixed
2021-12-13 16:24:59 +03:00
Dmitriy Novozhilov 1f0b62b25f [FIR] Add smartcasts from == if equals is from Any
^KT-49127 Fixed
2021-12-03 14:19:25 +03:00
Anastasiya Shadrina e3f987459c [PSI, FE] Support functional types 2021-12-02 20:24:11 +03:00
Denis.Zharkov 46217318c0 FIR: Load final static constant Java fields as non-nullable 2021-11-26 19:39:48 +03:00
Denis.Zharkov 3ec7866ead FIR: Fix inference for case of non-nullable RHS of elvis
Some existing tests start failing after previous commits adding @Exact
attribute to `?:`

They have a form:
var x: String? = nullable()

if (x == null) {
   x = nullable() ?: "" // considering @Exact the whole elvis is inferred to nullable from expect type
}

x.length // should be smart cast
2021-11-26 19:39:46 +03:00
Denis.Zharkov 883b18a0c6 FIR: Preserve non-custom attributes after substitution
The test is being fixed since synthetic call for elvis has @Exact-attribute on return type
2021-11-26 19:39:45 +03:00
Denis.Zharkov c0b6a593e0 FIR: Fix incorrect type of block generated for inc operator
Previously, it was obtained from expected type of a variable being assigned,
but it's better to use the type of resulting expression

Initially this part was brought in 4ab0897d7d,
but as we see in commit message and tests it was all about unit-coercion
2021-11-26 19:39:38 +03:00
pyos a1be855d17 FIR: thread control flow through anonymous object init blocks
^KT-39646 Fixed
2021-11-26 14:21:29 +03:00
Dmitriy Novozhilov 330574cab6 [FIR] Properly support smartcasts on stable when subjects in when conditions
^KT-49860 Fixed
2021-11-26 11:26:21 +03:00
Dmitriy Novozhilov 8707be51c9 [FIR] Report errors about invisible types from type resolution 2021-11-26 11:26:17 +03:00
Ivan Kochurkin f046f2964b [FIR] Add PLATFORM_CLASS_MAPPED_TO_KOTLIN 2021-11-24 23:13:41 +03:00
Nikolay Lunyak 8d647fa016 [FIR] KT-49265: Fix implicit visibility checks 2021-11-24 14:44:50 +03:00
Ilya Kirillov 8ace9e45b9 LL API: unmute passing test 2021-11-23 15:41:03 +03:00
Dmitriy Novozhilov 9c7058c3c5 [FIR] Support fields as part of graph of class initialization
^KT-49747 Fixed
2021-11-22 20:22:22 +03:00
Dmitriy Novozhilov 9807c67ae4 [FIR] Properly collect overriddens for method enhancement
If some java class has multiple supertypes then we need to collect
  overriddens from all those types directly, even if superTypeScope
  (which is FirTypeIntersectionScope in this case) returns only
  one symbol from one of this types (not intersection one)

This is needed to proper enhancement in cases when some type occurs
  multiple times in supertypes graph with different nullability
  of arguments:

class ConcurrentHashMap<K, V> : AbstractMap<K!, V!>, MutableMap<K, V>

If we try to find method `get(key: K): V` supertype scope returns
  `AbstractMap.get(key: K!): V!` (because it actually overrides
  `MutableMap(key: K): V?`), but we need to get both symbols to
  properly enhance types for `ConcurrentHashMap.remove`
2021-11-22 17:01:17 +03:00
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00
Dmitriy Novozhilov 2aa027639c [FIR] Fix access to fields from super class
^KT-49654 Fixed
2021-11-16 15:48:08 +03:00
Dmitriy Novozhilov 499b97d51e [FIR] Fix setting file in supertypes resolution
^KT-49652 Fixed
2021-11-16 15:48:06 +03:00
Ilmir Usmanov b7d88be41a Regenerate FIR diagnostics-related files 2021-11-13 12:38:49 +01:00
zhelenskiy c1dc1f7e33 Diagnostics renamed
Signed-off-by: zhelenskiy <zhelenskiy2000@yandex.ru>
2021-11-13 12:38:45 +01:00
Ivan Kochurkin 98cce8e05b [FIR] Support of intersection types in bareTypes.doUnify ^KT-48832 Fixed 2021-11-12 15:20:47 +03:00
Ivan Kochurkin d0a4ca199d [FIR] Add UNCHECKED_CAST
Regenerate diagnostics code
2021-11-12 15:20:45 +03:00
Ivan Kochurkin 2b5524b18f [FIR] Add CAST_NEVER_SUCCEEDS 2021-11-12 15:20:44 +03:00
Ivan Kochurkin e52a410599 [FIR] Initialize outer type parameters for local classes 2021-11-12 15:20:42 +03:00
Mikhail Glukhikh b2d020606e FIR: don't generate extension callable reference without receiver 2021-11-12 12:53:29 +03:00
Denis.Zharkov 6e15ee8fea FIR: Refine callable reference resolution in assignment position
synthetic_select<() -> T>(::foo) form allows to select better candidate
than synthetic_select(::foo) with expect type `() -> T`
2021-11-10 22:00:01 +03:00
Dmitriy Novozhilov f26059a7d3 [FE] Add clear warning about future changes about nullability of safe call with non nullable receiver
^KT-46860
2021-10-27 16:28:37 +03:00
Denis.Zharkov 507422d3d8 FIR: Fix bare type case with flexible supertypes 2021-10-26 18:45:58 +03:00
Mikhail Glukhikh 1fe7a1ebb3 Add FIR test for KT-35565 2021-10-26 13:38:35 +03:00
Denis.Zharkov a0a57581ec FIR: Do not add alias for variables with explicit type 2021-10-20 22:05:24 +03:00
Mikhail Glukhikh 7fc19520a5 FIR: substitute super type during tower building properly #KT-49301 Fixed 2021-10-20 12:17:04 +03:00
Mikhail Glukhikh b76e61cbc5 FIR: set dispatch receiver type to constructor in deserialization 2021-10-20 12:17:03 +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
Mikhail Glukhikh f4067f05a2 FIR: forbid java.lang.String(String) constructor in JvmMappedScope
#KT-49135 Fixed
2021-10-15 01:24:51 +03:00
Mikhail Glukhikh 09bc729b0e FirDefaultParametersResolver: process imported from objects properly
#KT-49083 Fixed
2021-10-15 01:24:51 +03:00
Mikhail Glukhikh c5a4a5de42 Make FirArrayOfCallTransformer recursive #KT-49076 Fixed 2021-10-15 01:24:49 +03:00
Mikhail Glukhikh 31db76da56 FIR: fix false positives of INNER_CLASS_OF_GENERIC_THROWABLE_SUBCLASS
#KT-49129 Fixed
2021-10-15 01:24:47 +03:00