Mikhail Glukhikh
c56b471b71
FIR body resolve: handle constant types more precisely
2019-04-04 10:31:13 +03:00
Mikhail Glukhikh
cc2a5cfc06
FIR body resolve: calculate type even for resolved references
2019-04-04 10:31:12 +03:00
Mikhail Glukhikh
d7f0392f90
FIR body resolve: fix value parameter expected type
2019-04-04 10:31:11 +03:00
Mikhail Glukhikh
8a6c9a6aec
FIR deserializer: read nullability & add constructors
2019-04-04 10:31:09 +03:00
Mikhail Glukhikh
6e9d78d431
FIR structure: make implicit built-in types resolved
2019-04-04 10:31:08 +03:00
Mikhail Glukhikh
bf0190d96c
FIR structure: reuse StandardClassIds in implicit built-in typeRef
2019-04-04 10:31:07 +03:00
Mikhail Glukhikh
b3cf3c6579
FIR structure: include calleeReference into FirDelegatedConstructorCall
2019-04-04 10:31:05 +03:00
Mikhail Glukhikh
63d3100122
FIR structure: FirClassLikeDeclaration is now FirStatement
...
Done to support (in theory) local type aliases
2019-04-04 10:31:04 +03:00
Mikhail Glukhikh
4213a4c7e2
FIR Java: reuse StandardClassIds
2019-04-04 10:31:02 +03:00
Mikhail Glukhikh
a0fa9e6b48
Raw FIR: make component call a function call, its argument -> receiver
2019-04-04 10:31:01 +03:00
Mikhail Glukhikh
30697787a0
Raw FIR: set "implicit boolean" result type for some operator calls
2019-04-04 10:31:00 +03:00
Mikhail Glukhikh
eb1aaad41b
Raw FIR: generate Unit at the end of empty lambda
2019-04-04 10:30:52 +03:00
Mikhail Glukhikh
eb86c9e540
FIR: get rid of ANDAND / OROR by replacing with when
2019-04-04 10:30:49 +03:00
Mikhail Glukhikh
395651a21e
Raw FIR: swap branches in when for elvis and bang-bang
2019-04-04 10:30:48 +03:00
Mikhail Glukhikh
f77ba2dd3e
Raw FIR: make object/sealed/enum constructor visibility private
2019-04-04 10:30:47 +03:00
Mikhail Glukhikh
057156f323
Raw FIR builder: cleanup code
2019-04-04 10:30:45 +03:00
Mikhail Glukhikh
33729aaf9b
Raw FIR: add Any/Enum/Annotation to supertypes iff no supertypes exists
2019-04-04 10:30:44 +03:00
Mikhail Glukhikh
7dd89a48f0
Raw FIR: introduce FirConstructor.isPrimary
2019-04-04 10:30:43 +03:00
Mikhail Glukhikh
61c2e4e590
Raw FIR: handle local visibility for functions & classes
2019-04-04 10:30:41 +03:00
Mikhail Glukhikh
4187ea1f86
Raw FIR: add initializers to primary constructor properties
2019-04-04 10:30:40 +03:00
Mikhail Zarechenskiy
c458393e2f
[NI] Do not avoid trivial constraints if they aren't from upper bounds
...
Since we skipped trivial constraint with `Any?` from parameter type of
function `equals`, the compiler thought that there is no proper
constraints (upper bounds do not matter here) and marked resolved
call as a failed one, then diagnostic about missing equals was added
Also, tune `TrivialConstraintTypeInferenceOracle` for `Any?`-like
constraints
#KT-30724 Fixed
2019-04-02 12:21:14 +03:00
Simon Ogorodnik
3998e842f1
Abstract NewInference & related from KotlinType
...
Cleanup TypeConstructors & KotlinTypes in VariableFixationFinder
Cleanup TypeConstructors & KotlinTypes in TypeVariableDirectionCalculator
Cleanup KotlinTypes in TypeCheckerContext for ConstraintSystem
Cleanup KotlinTypes in NewCommonSuperTypeCalculator
Cleanup KotlinTypes in TypeApproximator
Cleanup type substitution
Cleanup NewTypeVariable
Cleanup StubType
Cleanup TypeCheckerContext creation, extract common supertype context
Provide TypeSystemInferenceExtensionContext via dependency injection
2019-04-01 22:08:04 +03:00
Denis Zharkov
66293f4024
FIR: Add @Ignore for FirResolveTestTotalKotlin
...
Otherwise, it leads to OOM while running on teamcity
Of course, FIR parts might be optimized there but we'll do it later
2019-03-28 17:37:36 +03:00
Denis Zharkov
3164197b88
FIR: Fix compilation for bunch file AbstractFirTypeEnhancementTest.kt.181
2019-03-28 17:32:12 +03:00
Denis Zharkov
b1474b11f2
FIR: Fix FirSupertypeResolverTransformer for case of redeclarations
...
When transforming a specific class look for the exact match
Otherwise the last redeclaration will be overwritten by the first one
2019-03-28 11:19:52 +03:00
Simon Ogorodnik
a23e4bfdf1
Fix superType resolver
2019-03-28 11:19:52 +03:00
Simon Ogorodnik
49a0b29129
Store containers per symbol, not per callable id
2019-03-28 11:19:52 +03:00
Denis Zharkov
48f0790785
FIR: Fix bunch files for 181
2019-03-28 11:14:55 +03:00
Denis Zharkov
7b97c2a42a
FIR: Weaken requirements for all symbols to have correct FIR
...
Currently, some cases like library type parameters are not supported properly
2019-03-27 17:17:59 +03:00
Denis Zharkov
825218b479
Replace FirSymbolProvider::getCallableSymbols with two methods
...
Requesting content of classes seems to be reasonable and at the same time
more easy to implement in Composite providers: they should find
just the first class' result instead of flatmapping all of them
2019-03-27 17:17:59 +03:00
Denis Zharkov
1426341e9f
FIR: Support loading deserialized declarations from JVM class files
2019-03-27 17:17:59 +03:00
Denis Zharkov
0f9d54c4dc
FIR: Support deserialization of nested classes
2019-03-27 17:17:59 +03:00
Denis Zharkov
bb1acdbe95
Minor. Extract classes deserialization from BuiltInsPackageFragment
2019-03-27 17:17:59 +03:00
Denis Zharkov
b3e5e059bb
Minor. Extract FirDeserializationContext factories
2019-03-27 17:17:59 +03:00
Denis Zharkov
aec5ec89e7
FIR: Support deserialization for built-in classes content
2019-03-27 17:17:59 +03:00
Denis Zharkov
f03c5e0583
FIR: Support loading built-in top-level functions
2019-03-27 17:17:59 +03:00
Denis Zharkov
705f97cbae
FIR: Support type parameters in FirTypeDeserializer
2019-03-27 17:17:59 +03:00
Denis Zharkov
1d16008eab
Do not request FirProvider for built-in synthesized classes
...
Because currently they don't have FIR and it might fail with an exception
2019-03-27 17:17:59 +03:00
Denis Zharkov
6daf414098
Add common supertype for FirFunction and FirProperty symbols
2019-03-27 17:17:59 +03:00
Denis Zharkov
466296bca0
Remove FirLibrarySymbolProviderImpl from FirJavaModuleBasedSession
...
It's anyway already being created within dependencies
2019-03-27 17:17:59 +03:00
Denis Zharkov
7a19e269fd
FIR: Support import-references to callables
2019-03-27 17:17:59 +03:00
Mikhail Zarechenskiy
a50cc99b01
[NI] Discriminate integer literal types as they are less specific
...
Plus simplify code in `ResultTypeResolver` a bit
2019-03-26 22:32:14 +03:00
Victor Petukhov
568506e5c1
Exclude warning "Remove final upper bound" for functions with override modifier
...
^KT-25105 Fixed
2019-03-25 22:14:26 +03:00
Dmitriy Novozhilov
ca0e66bafc
[NI] Refactor compiler representation of integer literals types
...
Add `IntegerLiteralTypeConstructor` that holds types, that can take
integer literal with given value. It has two supertypes
(`Number` and `Comparable<IntegerLiteralType>`) and have
special rules for subtyping, `intersect` and `commonSuperType`
functions with primitive number:
Example (assuming that ILT holds Int type):
* ILT <: Int
* Int :> ILT
* ILT intersect Int = Int
* commonSuperType(ILT, Int) = Int
#KT-30293 Fixed
#KT-30446 Fixed
2019-03-25 18:55:36 +03:00
Mikhail Glukhikh
0546548ff3
Raw FIR: add kotlin.Any super class if no super classes are visible
2019-03-25 17:17:14 +03:00
Mikhail Glukhikh
73ed52a511
Get rid of binding context in FirBodyResolveTransformer
2019-03-25 12:04:28 +03:00
Mikhail Glukhikh
aa6ba1cd4a
Introduce typeRef for FirExpression
...
This helps both body resolve & conversion to IR
2019-03-25 10:38:45 +03:00
Simon Ogorodnik
85a096029c
FIR: Do not fail on not calculated type
2019-03-22 16:25:24 +03:00
Simon Ogorodnik
70e324277e
FIR: Stub for super references
2019-03-22 16:25:23 +03:00
Mikhail Glukhikh
9b4fe2f991
FIR: Fix part of problems with smoke tests
2019-03-22 16:25:22 +03:00