Jinseong Jeon
d5a6991b2d
FIR: extend SAM conversion to subtype of functional type
2020-12-21 18:01:22 +03:00
Mikhail Glukhikh
c6a40b2322
Optimize/simplify FirJvmTypeMapper.defaultType
2020-12-21 17:35:51 +03:00
Mikhail Glukhikh
3ab5b57594
Optimize/simplify FirJvmTypeMapper.representativeUpperBound
2020-12-21 17:35:51 +03:00
Mikhail Glukhikh
42b590d07c
Optimize/simplify FirSealedClassConstructorCallChecker
2020-12-21 17:35:51 +03:00
Mikhail Glukhikh
c94c71cc50
Optimize/simplify ConeClassLikeLookupTag.getNestedClassifierScope
2020-12-21 17:35:50 +03:00
Mikhail Glukhikh
7add186616
Optimize/simplify FirClass<*>.findNonInterfaceSupertype
2020-12-21 17:35:50 +03:00
Alexander Udalov
3f517d7e8d
Add new metadata flag for class files compiled with FIR
...
Report a separate error when class files compiled with FIR are in
dependencies, in addition to the one for class files compiled with FE
1.0 + JVM IR.
#KT-43592
2020-12-20 23:14:30 +01:00
Alexander Udalov
7d37030095
JVM IR, FIR: add JvmBackendExtension instead of MetadataSerializerFactory
...
This might be a better place for future behavior that should be
abstracted between FE 1.0 and FIR, in JVM IR.
2020-12-20 23:13:48 +01:00
Jinseong Jeon
9c2d06cf70
FIR: strengthen resolution success check for augmented array set call
...
This commit removes some false ambiguities &
fixes compilation of tree-generator module with FIR
2020-12-18 14:24:24 +03:00
Jinseong Jeon
dea01125d6
FIR deserializer: keep SourceElement for more precise Fir2IrLazyClass's source
2020-12-18 12:17:23 +03:00
Jinseong Jeon
fe0c25693d
FIR2IR: do not convert @ExtensionFunctionType twice
2020-12-18 12:17:21 +03:00
Jinseong Jeon
4608431682
FIR2IR: correct base symbols of fake overrides for delegated member
...
#KT-43984 Fixed
2020-12-18 11:21:02 +03:00
Jinseong Jeon
44c6ec2c44
FIR checker: make unused checker handle invoke properly
...
#KT-43688 Fixed
2020-12-18 09:46:39 +03:00
Shagen Ogandzhanian
4f96f9d6a1
[JS IR] Initialize enum fields before accessing them in companion object
...
see https://youtrack.jetbrains.com/issue/KT-43901
2020-12-18 01:54:59 +01:00
Dmitriy Novozhilov
e1802fde29
[TD] Update test data after previous commit
2020-12-16 19:52:30 +03:00
Dmitriy Novozhilov
49d9b85950
[TEST] Migrate AbstractFirDiagnosticsWithLightTreeTest to new test runners
...
Also this commit adds AbstractTwoAttributesMetaInfoProcessor which can
be used for reporting diagnostics with two attributes (OI/NI, PSI/Light tree)
2020-12-16 19:52:30 +03:00
Dmitriy Novozhilov
7e9deb7602
[FIR] Fix NPE in light tree source utils
2020-12-16 19:52:30 +03:00
Dmitriy Novozhilov
b048296dca
[FIR] Fix calculating offsets for light tree source elements
2020-12-16 19:52:30 +03:00
Dmitriy Novozhilov
acbc468fdd
[FIR] Add light tree mode to FirAnalyzerFacade
2020-12-16 19:52:30 +03:00
Dmitriy Novozhilov
1fe5148f0d
[TEST] Extract compiler-specific test utils from :tests-common to new module
2020-12-16 19:52:29 +03:00
Dmitriy Novozhilov
bc7e18fb8a
[TEST] Regenerate tests after previous commit
2020-12-16 19:52:28 +03:00
Dmitriy Novozhilov
e6b5cb5216
[TD] Update diagnostics test data due to new test runners
...
Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
2020-12-16 19:52:25 +03:00
Dmitriy Novozhilov
710c5ec8cc
[TEST] Drop old generated tests which are duplicated by new ones
2020-12-16 19:52:24 +03:00
Dmitriy Novozhilov
6128d5e7f2
[TEST] Generate new tests using new runners and old testdata
2020-12-16 19:52:23 +03:00
Dmitriy Novozhilov
cb5183ab4d
[TEST] Add implementation of new infrastructure services for compiler tests
...
All of new classes lays in lays in :compiler:tests-common-new module
which includes classes for FE 1.0 and FIR diagnostics tests and
JVM black boxtests
2020-12-16 19:52:23 +03:00
Dmitriy Novozhilov
c8f3a4802e
[TEST] Introduce test-infrastructure-utils module and extract common test utilities here
2020-12-16 19:52:22 +03:00
Mikhail Glukhikh
0e43eaa662
Don't call possibleGetterNamesByPropertyName without a reason
2020-12-16 19:50:13 +03:00
Dmitriy Novozhilov
44948aa9a2
[FE] Properly report diagnostics about type arguments of implicit invoke
...
#KT-40396 Fixed
2020-12-16 17:57:58 +03:00
Dmitriy Novozhilov
329066a4f3
[Parser] Fix parsing of unfinished dot access in string template
...
Problem appeared in cases like this: "{someVar.}"
#KT-34440 Fixed
2020-12-16 17:57:56 +03:00
Ilya Kirillov
a0ed14eafe
FIR: use real source element for return statement
...
fix fir
2020-12-15 22:15:51 +01:00
Jinseong Jeon
efeabac2c5
FIR: do not force coercion-to-Unit for nullable lambda return type
...
3d7d87ac should have been implemented as aafe41c did.
2020-12-15 17:52:49 +03:00
Jinseong Jeon
6239301f4e
FIR: no constraint for coerced-to-Unit last expression of lambda
2020-12-15 17:52:49 +03:00
Jinseong Jeon
4ab0897d7d
FIR: pass the explicit expected type to block type
...
This helps avoid adding redundant return Unit into block.
2020-12-15 17:52:48 +03:00
Dmitry Petrov
b0f6461fa9
JVM_IR KT-42020 special IdSignature for some fake override members
2020-12-15 12:56:45 +03:00
Jinseong Jeon
f7ade2b0b8
FIR2IR: introduce implicit casts for extension receivers
2020-12-15 11:52:49 +03:00
Ilya Kirillov
2201dd5198
FIR: make FirSyntheticPropertiesScope to be name aware
2020-12-12 12:26:56 +01:00
Dmitry Petrov
b7330a9e14
JVM_IR KT-43877 fix generic signatures for SAM-converted lambdas
2020-12-11 20:26:29 +03:00
Ilmir Usmanov
2b0a99b7b0
IC Mangling: Use correct java field type if the type is inline class
...
in old JVM BE.
#KT-26445
2020-12-11 17:51:37 +01:00
Ilmir Usmanov
0cab69a7a0
IC Mangling: Do not mangle functions with inline classes from Java
...
in old JVM BE. Map types to boxed variants, when mapping signatures.
#KT-26445
2020-12-11 17:51:30 +01:00
Mads Ager
c922484758
[JVM_IR] Use direct field access to backing fields on current class.
...
The current backend uses direct field access to the backing field
instead of calling the companion object accessor, which calls
an accessibility bridge, which then gets the field for code such as:
```
class A {
companion object {
val s: String = "OK"
}
// f uses direct access to the A.s backing field.
fun f() = s
}
```
This change does the same for the IR backend.
2020-12-11 06:24:55 +01:00
Jinseong Jeon
8f2ad57f7a
FIR: pass elvis expected type to lhs/rhs
2020-12-10 20:52:49 +03:00
pyos
41f56729f9
FIR: serialize correct fqnames for local classes
2020-12-10 20:52:48 +03:00
pyos
12f936f6b7
FIR2IR: do not approximate reified type arguments to super class
2020-12-10 20:52:46 +03:00
Jinseong Jeon
148d540580
FIR checker: make unused checker visit qualified accesses in annotations
...
#KT-43687 Fixed
2020-12-10 20:52:45 +03:00
pyos
5efe774dba
FIR: remap Java meta-annotations to Kotlin equivalents
...
This is a direct port of JavaAnnotationMapper from the old frontend.
2020-12-10 20:52:43 +03:00
Dmitry Petrov
5be28520fc
JVM_IR KT-43851 preserve static initialization order in const val read
2020-12-10 17:55:13 +03:00
Mikhail Glukhikh
dd66da7c65
Optimize FirJavaSyntheticNamesProvider.possibleGetterNamesByPropertyName
2020-12-10 15:29:46 +03:00
Mikhail Glukhikh
6d545fc281
Make FirTowerLevel an abstract class
2020-12-10 15:29:46 +03:00
Mikhail Glukhikh
34d7a7c184
FIR tower levels: inline processElementsByName[AndStoreResult]
2020-12-10 15:29:46 +03:00
Mikhail Glukhikh
af4941b222
[FIR] Drop delayedNode from ControlFlowGraph.orderNodes
2020-12-10 15:29:45 +03:00