Mikhail Zarechenskiy
455b9f852d
[NI] Disable caching of LHS expression types for "+=" operators
...
New behavior was introduced in ab506c1579 which breaks compilation on IDE module (see test example) for new inference.
Now we temporarily disable this optimisation. This is temporarily restriction which will be fixed once we'll have the same rules for lambdas completion
#KT-34889 Open
2019-11-13 15:07:39 +03:00
Denis Zharkov
0f638db3e5
FIR: Turn SupertypeSupplier into a class
2019-11-13 10:52:24 +03:00
Denis Zharkov
56b5d170eb
FIR: Minor. Rename FirSupertypeResolverTransformerAdapter -> FirSupertypeResolverTransformer
2019-11-13 10:52:24 +03:00
Denis Zharkov
3a4f9e9109
FIR: Drop FirClassLikeDeclaration::supertypesComputationStatus
...
It became unused with rewritten supertype resolution
2019-11-13 10:52:24 +03:00
Denis Zharkov
2fba6b54a0
FIR: Minor. Drop old FirSupertypeResolverTransformer
2019-11-13 10:52:24 +03:00
Denis Zharkov
3f7bffa6fd
FIR: Do not use FirClass::supertypesComputationStatus
2019-11-13 10:52:24 +03:00
Denis Zharkov
5e0e78e555
FIR: Rewrite supertype resolution
2019-11-13 10:52:24 +03:00
Ilya Chernikov
808000e458
Implement warning when non-abstract classes containing abstract members invisible from that classes
...
#KT-27825 fixed
2019-11-12 19:08:53 +01:00
Dmitriy Novozhilov
eae3688c61
[FIR] Fix collecting approved data flow info from rhs of boolean operator
2019-11-12 21:03:54 +03:00
Dmitriy Novozhilov
8d6cfdf0b1
[FIR] Fix passing data flow info from while loop condition
2019-11-12 21:03:54 +03:00
Dmitriy Novozhilov
7ef13caa33
[FIR] Add test for ambiguity in nested class constructor call
2019-11-12 21:03:54 +03:00
Dmitriy Novozhilov
e9551e2022
[FIR] Don't generate setter by delegate for vals
2019-11-12 21:03:54 +03:00
Dmitriy Novozhilov
2f2aa4ae83
[FIR] Create error type instead of implicit type for incorrect functional types
2019-11-12 21:03:54 +03:00
Dmitriy Novozhilov
cf61a6c30f
[FIR] Add support of multiple condition branches to exhaustiveness checker
2019-11-12 21:03:53 +03:00
Roman Artemev
a343a57207
[IR] Refactor ir infrastructure
...
- Remove range-based uniq id indexes using to link built ins
- Limit KotlinType usages, replace them with corresponding IrType
2019-11-12 20:45:11 +03:00
Roman Artemev
ba373c67d7
[IR] Remove FunctionDescriptor from IrCall-like node's constructor interface
2019-11-12 20:45:11 +03:00
Mikhail Glukhikh
c66b6b6a3a
FIR visibility check: support companion private members correctly
2019-11-12 11:24:31 +03:00
Mikhail Glukhikh
e96aeb77a6
FIR visibility check: support private class members
2019-11-12 11:24:25 +03:00
Mikhail Glukhikh
a5ad05083a
Add some stubs for FIR visibility checking
2019-11-12 11:24:24 +03:00
Mikhail Glukhikh
7e07b88eab
Code cleanup: FirCallResolver
2019-11-12 11:03:59 +03:00
Mikhail Glukhikh
ac13a8c8b2
Cone conflict resolver: extract JVM equivalent call filtering to a separate class
2019-11-12 11:03:58 +03:00
Mikhail Glukhikh
96c5003a13
Cone conflict resolver: filter equivalent top-level callables
2019-11-12 11:03:58 +03:00
Simon Ogorodnik
1bd861c5eb
Save use_ni key state to log
2019-11-11 20:32:07 +03:00
Alexander Udalov
57a674e9e6
Make fast class files reading mode default in compiler tests
...
This makes sense because this mode is the default in the production
compiler. Forgetting to enable it where necessary led to different
bizarre test failures, see for example changes around 3fee84b966 and
KT-34826
2019-11-11 15:40:49 +01:00
Mikhail Glukhikh
dde2d08cfc
FIR resolve: add extra test for generic with bounds in Java
2019-11-11 17:07:58 +03:00
Mikhail Glukhikh
f66b2ca772
FIR resolve: add forgotten constraint subsystem from generic qualified access
...
This fixes exception in resolve of an attached test
2019-11-11 17:07:57 +03:00
Mikhail Glukhikh
26281bfe89
FIR Java: use different names for anonymous parameters (p0, p1, p2, ...)
2019-11-11 17:07:57 +03:00
Mikhail Glukhikh
c657d46437
FIR Java: add nullable (instead of not-null) type parameter bounds
2019-11-11 17:07:57 +03:00
Mikhail Glukhikh
db11c14fee
FIR Java: don't add type parameter bounds multiple times
2019-11-11 17:07:57 +03:00
Yan Zhulanow
f3770314c5
Pill: Fix reflect dependency in compiler/fir.resolve module
2019-11-11 17:13:58 +09:00
Mikhail Glukhikh
93aba85f51
Fix FIR built-ins test
2019-11-08 15:54:21 +03:00
Dmitriy Novozhilov
5313c964c6
[FIR] Fix SOF in fir consistency checker
2019-11-08 15:30:55 +03:00
Dmitriy Novozhilov
bc453e5917
[FIR] Fix testdata forgotten in e910653d
2019-11-08 15:30:55 +03:00
Steven Schäfer
ab506c1579
Frontend: Avoid retypechecking the right hand side of assignment operators
2019-11-08 14:02:56 +03:00
Mikhail Glukhikh
41c81d25a0
FIR body resolve: use nested classifier scopes only via member scopes
2019-11-08 13:42:42 +03:00
Mikhail Glukhikh
f0130d0460
FIR (minor): remove unnecessary withScopeCleanup call
2019-11-08 13:39:45 +03:00
Dmitriy Novozhilov
e910653d6f
[FIR] Add pretty rendering of functional types
2019-11-08 12:12:39 +03:00
Dmitriy Novozhilov
18dc652404
[FIR] Get rid of operation in FirVariableAssignment
...
`FirVariableAssignment` is creates only for expressions `x = y`
For other assign operators there is a `FirOperatorCall`
2019-11-08 12:12:39 +03:00
Dmitriy Novozhilov
b5210e6a9b
[FIR] Fix building fir for += with complex rhs
...
Also fix choosing candidate for assignment operator call
2019-11-08 12:12:38 +03:00
Dmitriy Novozhilov
cadc2dfe4d
[FIR] Fix generating fir for invoke calls
2019-11-08 12:12:38 +03:00
Mikhail Glukhikh
411dc5d60e
FIR nested classifier scope building: optimize companion search
2019-11-08 09:58:37 +03:00
Mikhail Glukhikh
48938a20a7
Raw FIR: add synthesized Enum.valueOf() function
2019-11-08 09:58:02 +03:00
Mikhail Glukhikh
30679ebfaf
FIR Java: implement correct type matching in SuperTypeScope
2019-11-07 15:07:41 +03:00
Mikhail Glukhikh
4d9839a790
JavaClassUseSiteMemberScope: add mutable vs non-mutable type matching
2019-11-07 13:08:38 +03:00
Mikhail Glukhikh
581504aac5
Raw FIR: add synthesized Enum.values() function #KT-24076 Fixed
2019-11-07 09:29:00 +03:00
Mikhail Glukhikh
6e0148c7a8
FIR: cleanup of DataClassUtils: remove redundant status field assignments
2019-11-07 09:28:16 +03:00
Mikhail Zarechenskiy
650e2501bb
[NI] Prioritize variables with trivial constraints over complex ones
...
Consider the following constraint system (from the test example):
Nothing? <: V1
F!! <: V2
Inv<V1> <: S
Inv<V2> <: S
Where V1, V2, S are type variables, and F has nullable upper bound.
Type variable fixation order should be: V2 -> V1 -> S, and the problem
was that previously after fixation of type variable V2 we were trying
to fix S (before V1), so we had the following constraints on S:
Inv<F!!> <: S
Inv<V1> <: S
=> S were fixed to Inv<F!!>
And after this V1 was fixed to F!! which is contradictory as Nothing?
is not a subtype of F!!.
#KT-33033 Fixed
2019-11-06 15:20:17 +03:00
Mikhail Zarechenskiy
5582fd4056
[NI] Discard DefNotNull types inside invariant positions
...
#KT-30297 Fixed
#KT-32168 Fixed
#KT-27722 Fixed (actually, it was fixed with addition of DefNotNullTypes, and now test was added to save this behavior)
#KT-32345 Fixed
2019-11-06 15:20:17 +03:00
Dmitriy Novozhilov
27e1a54d4e
[FIR] Add descriptors.runtime as dependency to psi2fir test
2019-11-06 15:05:06 +03:00
Dmitriy Novozhilov
665405c435
[FIR] Add discriminating generics into ConeOverloadConflictResolver
2019-11-06 15:05:06 +03:00