Roman Artemev
cae29a5d1c
[IR] Clean up WrappedDescriptors API
2020-09-01 17:08:11 +03:00
Roman Artemev
c7b57c0fb3
[IR] Use only empty constructor to create WrappedDescriptor
2020-09-01 17:08:11 +03:00
Roman Artemev
fd88914cf9
[IR] Remove some descriptor usage from Common/JS/JVM backends
...
- replace descriptor-based builders with pure IR ones
- fix matchers
- fix Ir2Js
- rewrite some inliner-helpers to pure-IR implementations
2020-09-01 17:08:11 +03:00
Dmitry Petrov
8cb8284957
EnhancedNullability annotation in IR
...
Fixes KT-40115 & KT-40117.
Move FlexibleNullability annotation to 'kotlin.internal.ir'.
2020-09-01 16:06:03 +03:00
Roman Artemev
0bff406a12
[JS IR] Add infra to test compilation with error
...
- add bunch of tests
- fix help test
2020-09-01 14:53:08 +03:00
Roman Artemev
e592b3af1d
[JS IR] Fix CallsLowering's*
...
- need to fix dev mode since some methods are not handled
with intrinsic lowering
2020-09-01 14:53:08 +03:00
Roman Artemev
7a6415dc53
[JS IR] Enable IrError element's lowerings in JS
2020-09-01 14:53:08 +03:00
Roman Artemev
4dca3715fa
[JS IR | IR] Implement error element lowering to support compilation with errors
2020-09-01 14:53:08 +03:00
Roman Artemev
14b5424583
[JS IR] Support translation of IrError* elements
2020-09-01 14:53:08 +03:00
Roman Artemev
1fd5c1cc65
[IR] Support IrErrorType & IrErrorDeclaration in ir mangler
2020-09-01 14:53:08 +03:00
Roman Artemev
9c36487077
[IR] Disable mangle checker for IrErrorDeclarations
2020-09-01 14:53:07 +03:00
Roman Artemev
563af709a8
[Psi2Ir] Fix generation of IrError* nodes
...
- Provide detailed description
- Support syntax-incorrect statements
- Generate an error declaration if normal generation has failed
2020-09-01 14:53:07 +03:00
Roman Artemev
a60782f3df
[JS IR] Add CLI argument to setup error tolerance policy
...
- Make sure dev mode is enabled if code with errors is allowed
2020-09-01 14:53:07 +03:00
Roman Golyshev
90c89bddc5
FIR IDE: Add collecting scopes for declarations
...
- They are required to perform completion in default arguments,
return types, and other declaration parts (except for body)
2020-09-01 10:09:46 +00:00
Mikhail Zarechenskiy
9c217e3d99
Reuse revised variables during lambda analysis against type variables
...
#KT-41400 Fixed
2020-09-01 13:04:53 +03:00
Dmitriy Novozhilov
cb47e631f8
[FIR] Move extended checkers containers to :compiler:fir:entrypoint
2020-09-01 12:00:13 +03:00
Dmitriy Novozhilov
f14efedc3d
[FIR] Fix broken gradle compilation
2020-09-01 12:00:13 +03:00
Dmitriy Novozhilov
c250912ee0
[FIR-TEST] Use FirAnalyzerFacade in BB and Fir2IrText tests
2020-09-01 12:00:13 +03:00
Dmitriy Novozhilov
a4e24ca3dc
[FIR] Introduce FirAnalyzerFacade which hides implementation details of running FIR compiler
2020-09-01 12:00:13 +03:00
Dmitriy Novozhilov
6db8c28291
[FIR] Refactor session components initialization
...
From now all customization of session should perform via DSL which
declared in FirSessionFactory. Registration or mutation session
services from other places is prohibited
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
2819bd3aaf
[FIR] Get rid of deprecated extension point registration methods usage
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
cf224b4de9
[FIR] Add createEmptySession to FirSessionFactory for testing purposes
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
a8d23c36f5
[FIR] Introduce module :fir:entrypoint and FirSessionFactory for creating sessions
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
94d58c714a
[FIR] Cleanup dependencies for fir modules
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
73e2314f2f
[FIR] Get rid of dependency on intellijCore from :compiler:fir:resolve
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
18ad56f7a8
[FIR] Fix creating fake source elements in declarations resolve
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
28e6050551
[FIR] Extract java synthetic names calculation to platform specific component
2020-09-01 12:00:12 +03:00
Dmitriy Novozhilov
375140ebcc
[FIR] Extract java class mapping to platform specific component
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
a0b931792e
Move annotationsForResolve.kt to :core:compiler.common
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
07c353973d
Move requireOrDescribe to :core:compiler.common
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
f010dc533c
Move Variance.convertVariance to :core:compiler.common
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
3379d9b619
[FIR] Extract java related effective visibility calculation to platform component
2020-09-01 12:00:11 +03:00
Dmitriy Novozhilov
ed4c6a38b6
[FIR] Move deserialization files to module :compiler:fir:fir-deserialization
2020-09-01 12:00:10 +03:00
Dmitriy Novozhilov
ca031f7ace
[FIR] Split ResolveUtils.kt from :resolve to separate files
2020-09-01 12:00:10 +03:00
Dmitriy Novozhilov
6ace4164ff
[FIR] Split TypeUtils from :resolve to :cones and :tree modules
2020-09-01 12:00:10 +03:00
Dmitriy Novozhilov
92ffa4dea9
[FIR] Replace KotlinScopeProvider with FirScopeProvider in ClassDeserialization
...
This is needed to remove dependecy on :fir:resolve from serialization
methods
2020-09-01 12:00:10 +03:00
Mikhail Glukhikh
3aa13362ca
[FIR2IR] Replace NPE in setThisReceiver with more detailed exception
2020-09-01 11:40:32 +03:00
Mikhail Glukhikh
65739c50d3
FIR full pipeline test: output build status per-module
2020-09-01 11:40:32 +03:00
Pavel Kirpichenkov
2979c37001
[NI] Fix resolution status for UnstableSmartCastDiagnostic
...
RESOLVED_WITH_ERROR was initially added for reproducing OI behavior.
The intention was to preserve resolution into unstable smart cast and to keep failing candidate.
However, this idea was abandoned after OI behavior proved inconsistent in cases involving generics.
This commit restores RUNTIME_ERROR status of UnstableSmartCastDiagnostic.
^KT-41357 Fixed
2020-09-01 11:21:13 +03:00
Igor Chevdar
5e71068e61
[IR] Handled degenerate cases of IrStringConcatenation
...
It is not needed to create StringBuilder if the number of values
being concatenated is 0 or 1
2020-09-01 11:34:17 +05:00
Steven Schäfer
78ab957bfe
JVM IR: Fix mangling for suspend functions with inline class params (KT-41374)
2020-08-31 18:43:29 +02:00
Pavel Kirpichenkov
873224dfbc
[NI] Use new type substitutor for known type parameters
...
Use known type parameters substitutor after substitutor for fresh variables.
The old logic of substituions had the following order:
- replace known type parameters
- replace type parameters with type variables
- complete inference
- replace type variables with inferred types
According to the updated logic, replacement goes as follows:
- replace type parameters with type variables
- replace known type parameters; if they were variables, this will effectively remove them from inference
- complete inference
- replace remaining type variables with inferred types
Support projection substitution in new type substitutor.
It is needed for correct interaction with old type substitutor.
Old type substitutors can contain mappings constructor -> projection
which couldn't be expressed correctly with existing substitutor API in some cases.
^KT-41386 Fixed
2020-08-31 17:53:46 +03:00
Alexander Udalov
c706673de9
Minor, refactor bytecode text tests on when-over-string optimization
...
- Merge `duplicatingItemsSameHashCode.kt` and
`duplicatingItemsSameHashCode2.kt` into one test enabled on both
backends, and rename it to
`duplicatingItemsSameHashCodeFewBranches.kt`.
- Rename `duplicatingItemsSameHashCode3.kt` to
`duplicatingItemsSameHashCodeMoreBranches.kt`, and also enable it for
both backends.
- Use JVM_TEMPLATES/JVM_IR_TEMPLATES to check backend-specific behavior:
1) JVM IR does not optimize less than 2 branches by design
2) JVM IR does not generate duplicate branches, also by design
Related to KT-36846.
2020-08-31 16:47:11 +02:00
Alexander Udalov
a639915a34
JVM IR: do not mangle property accessors of unsigned types in annotations
...
Before this change, we incorrectly mangled the names of annotation
methods (e.g. `getI-pVg5ArA` instead of `i`) because the isSpecial
condition was false.
2020-08-31 14:19:14 +02:00
Mikhail Glukhikh
1e360d9c91
[FIR2IR] Pass type context for type argument conversion properly
2020-08-31 14:31:58 +03:00
Jinseong Jeon
04af6846a7
FIR2IR: handle more vararg spreads for adapted callable references
2020-08-31 14:31:58 +03:00
Mikhail Glukhikh
5efabe063e
[FIR] Fix JVM mapped function callable id
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
db815c96c5
[FIR] Substitute copied type parameters in fake override properties
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
dc9306367a
FirClassSubstitutionScope: reorder companion functions
2020-08-31 14:31:57 +03:00
Mikhail Glukhikh
5ad453d927
[FIR] Substitute copied type parameters in fake override functions
2020-08-31 14:31:57 +03:00