Commit Graph

82892 Commits

Author SHA1 Message Date
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