Ivan Kylchik
41ea1525d1
Implement basic interpretation for KProperty
2021-06-07 15:34:18 +03:00
Ivan Kylchik
c3d0438405
Allow to interpret property reference
2021-06-07 15:34:16 +03:00
Ivan Kylchik
ac858f760a
Forbid vararg flattening in place there array was expected
2021-06-07 15:34:15 +03:00
Ivan Kylchik
8b2706aaee
Change interpretConstructor method to be able to init object single time
2021-06-07 15:34:13 +03:00
Ivan Kylchik
903e883809
Add additional type arguments to stack from super types
2021-06-07 15:34:12 +03:00
Ivan Kylchik
a9d686b9f9
Add outer object to stack when interpreting constructor of inner class
2021-06-07 15:34:11 +03:00
Ivan Kylchik
b570d3f7fd
Fix interpreter error related to recreating Unit object
2021-06-07 15:34:09 +03:00
Ivan Kylchik
b98f680d65
Fix interpreter error related to incorrect work of get value for objects
2021-06-07 15:34:08 +03:00
Ivan Kylchik
d931e2eead
Implement simple proxy for non interface structures like kotlin.Pair
2021-06-07 15:34:07 +03:00
Ivan Kylchik
1e5096294e
Implement proxy for custom interfaces
2021-06-07 15:34:06 +03:00
Ivan Kylchik
96a090f2ab
Implement LambdaProxy class
2021-06-07 15:34:04 +03:00
Ivan Kylchik
1d0acedc48
Rewrite Complex class as interface
...
This change allow ExceptionState to be both: State and Throwable
2021-06-07 15:34:03 +03:00
Ivan Kylchik
6808151af7
Remove method getOriginal from Complex class
...
Common class no longer contains Common super classes,
all fields are now inside one single object.
2021-06-07 15:34:02 +03:00
Ivan Kylchik
4c75576414
Implement basic proxy for Common state
...
For now proxy works only for Any class methods and only for Common
state.
2021-06-07 15:34:01 +03:00
Ivan Kylchik
3c0c8d97cc
Add possibility to interpret spread operator on unsigned arrays
2021-06-07 15:33:59 +03:00
Ivan Kylchik
ca231ccc53
Rethrow InterpreterTimeOutError as UserException
2021-06-07 15:33:58 +03:00
Ivan Kylchik
c23e8517b3
Fix type arguments saving for arrays
2021-06-07 15:33:57 +03:00
Ivan Kylchik
7ecf4b17b6
Change evaluation function for arrayOf
...
For now it will get only elements variable from stack instead of all
2021-06-07 15:33:56 +03:00
Ivan Kylchik
4010eb11bd
Implement method to calculate EQEQ ir builtin function
2021-06-07 15:33:54 +03:00
Ivan Kylchik
9b1f11b22b
Extend compile time checker to check constructors body
2021-06-07 15:33:53 +03:00
Ivan Kylchik
cc0bbac354
Support isSubtypeOf check for functional type
2021-06-07 15:33:52 +03:00
Ivan Kylchik
c1aa39065f
Add handler for setters in getIrFunction method
2021-06-07 15:33:49 +03:00
Ivan Kylchik
6a483a8464
Add simple handler for StackOverflowError in ir interpreter
2021-06-07 15:33:48 +03:00
Ivan Kylchik
f3d7dc5f22
Rewrite exceptions handler in ir interpreter
...
For now there are 2 types of exceptions:
1. UserExceptions - express user and jvm like exceptions
2. InterpreterError - thrown only if something is wrong with interpreter
2021-06-07 15:33:47 +03:00
Ivan Kylchik
c3b0c9c6b2
Support multiple nested try blocks
2021-06-07 15:33:46 +03:00
Ivan Kylchik
ad6ba0cf11
Support lateinit var interpretation
2021-06-07 15:33:45 +03:00
Ivan Kylchik
b45df06680
Forbid to interpret non const top level properties
2021-06-07 15:33:43 +03:00
Ivan Kylchik
393ad9ae9b
Fix compile time checker for get and set field expressions
2021-06-07 15:33:42 +03:00
Ivan Kylchik
a084dabdde
Return Unit value from block if statements count is equal to zero
2021-06-07 15:33:41 +03:00
Ivan Kylchik
13ab7eafca
Move out compile time function checker logic to EvaluationMode.kt
2021-06-07 15:33:40 +03:00
Ivan Kylchik
84e6e1e305
Add WITH_ANNOTATIONS evaluation mode
...
This mode means that function can be executed if it has
CompileTimeCalculation annotation. FULL mode for now will mean deep
check without annotation help
2021-06-07 15:33:39 +03:00
Ivan Kylchik
1151c6177b
Move IrCompileTimeChecker to separate checker package
2021-06-07 15:33:37 +03:00
Ivan Kylchik
47ed6789d2
Fix interpreting of java static members such as Boolean.TRUE
2021-06-07 15:33:36 +03:00
Denis.Zharkov
592256976e
FIR: Fix inference of builder-inference function from expect type
...
Previously, such calls were being completed with FULL mode and incorrect
INFERENCE_NO_INFORMATION_FOR_PARAMETER has been reported
2021-06-07 15:25:57 +03:00
Denis.Zharkov
18e93b50d9
FIR: Fix loading read-only collection Java types with incorrect variance
2021-06-07 15:25:56 +03:00
Denis.Zharkov
5ade831665
FIR: Fix INFERENCE_NO_INFORMATION_FOR_PARAMETER on type alias with generic expansion
...
^KT-46996 Fixed
2021-06-07 15:25:55 +03:00
Denis.Zharkov
d76db0e011
FIR: Mute backend tests relevant to new INFERENCE_NO_INFORMATION_FOR_PARAMETER
...
See KT-46967 and KT-46996
2021-06-07 15:25:53 +03:00
Denis.Zharkov
d932d5b0a5
FIR: Support adding expect type to calls in foo() as R position
...
See https://kotlinlang.org/docs/whatsnew12.html#support-for-foo-as-a-shorthand-for-this-foo
2021-06-07 15:25:51 +03:00
Denis.Zharkov
6136526a3a
FIR: Avoid reporting inference errors from DelegatedPropertyConstraintPosition
...
All necessary diagnostics have already been reported through the checkers
2021-06-07 15:25:50 +03:00
Denis.Zharkov
43f3fe1ebe
FIR: Avoid missing errors during delegation resolution
...
Merge inference errors from delegation partially resolved calls to the main system
2021-06-07 15:25:49 +03:00
Denis.Zharkov
0aca3a3737
FIR: Adjust test data after introduction of INFERENCE_NO_INFORMATION_FOR_PARAMETER
...
See previous commits for details
2021-06-07 15:25:47 +03:00
Denis.Zharkov
c420957eac
FIR: Report INFERENCE_NO_INFORMATION_FOR_PARAMETER diagnostic
2021-06-07 15:25:45 +03:00
Pavel Punegov
6e901e3785
Filter out JRE installations on MacOS
...
java_home tool shows also JRE installations located at
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" path.
They should not be used as there are no javac and other tools there.
2021-06-07 11:03:08 +00:00
Anton Yalyshev
9b8ae8ce4f
1.5.20-RC Change-notes correction.
2021-06-07 13:51:46 +03:00
Anton Yalyshev
503700d60b
Add change notes for 1.5.20-RC
2021-06-07 13:51:44 +03:00
sebastian.sellmair
70924f6c15
[Commonizer] Link ticket ^KT-47100 in HierarchicalPropertyCommonizationTest
2021-06-07 09:07:43 +00:00
sebastian.sellmair
ffcd57cb31
[Commonizer] TypeCommonizer: Support commonizing typeAlias and their underlying types
2021-06-07 09:07:43 +00:00
sebastian.sellmair
92093bbabd
[Commonizer] HierarchicalPropertyCommonizationTest.test differently typeAliased property - *
2021-06-07 09:07:42 +00:00
sebastian.sellmair
0cf1618960
[Commonizer] Implement CirNodeRelationship over CommonizerCondition
2021-06-07 09:07:41 +00:00
sebastian.sellmair
8272564ca0
[Commonizer] Prototype: Commonize TypeAliases with Classes
...
^KT-45992 Fixed
^KT-46061 Fixed
2021-06-07 09:07:40 +00:00