Commit Graph

93107 Commits

Author SHA1 Message Date
Ilya Chernikov 5caf2a2aca Scripting: refactor plugin command line processing
- process command line properly when plugin is autoloaded
- add and fix options to disable definitions autoloading and discovery
- cleanup unused code
(partial test is added to "avoid definitions discovery" commit)
2022-06-16 21:28:07 +00:00
Ilya Chernikov a8c4ea04c8 Scripting: add check for 'kotlin' package similar to the regular sources
#KT-52598 fixed
2022-06-16 21:28:06 +00:00
Ilya Chernikov f5950ac8f3 minor: avoid double reporting of scripting diagnostics
also fix arror reporting for scripts with location
2022-06-16 21:28:06 +00:00
Ilya Chernikov 855059b93c Scripting: update scripts in source roots handling
#KT-52525 fixed
related to #KT-52735
2022-06-16 21:28:06 +00:00
Ilya Chernikov b2b13a0247 minor: remove unused class 2022-06-16 21:28:05 +00:00
Ilya Chernikov bffe94e48a minor: simplify dependencies of setIdeaIoUseFallback
since kotlin needs now jvm 8 or above, we can drop the checks
2022-06-16 21:28:05 +00:00
Ilya Chernikov 9912df0daf minor: remove a warning in scripting tests 2022-06-16 21:28:04 +00:00
Ilya Chernikov da782fbfe8 Scripting: extend JSR-223 compilable with bindings test
proofs that #KT-47191 describes a misuse rather than a bug
2022-06-16 21:28:04 +00:00
Ilya Chernikov 120ecce753 Scripting: refactor processing of JvmDependencyFromClassLoader in repl 2022-06-16 21:28:04 +00:00
Ilya Chernikov 597677dae3 Scripting: refactor history handling in legacy REPL using new infra
#KT-47187 fixed
2022-06-16 21:28:03 +00:00
Ilya Chernikov 92bf260057 Scripting: Implement conditional conversion for REPL result values
to support value types erased from runtime classes. See example
in added tests for motivation.
#KT-45065 fixed
also refactor launcher repl test and result type rendering
2022-06-16 21:28:03 +00:00
Ilya Chernikov b36d1be5f8 Scripting: switch legacy CLI REPL to the new infrastructure 2022-06-16 21:28:02 +00:00
Ilya Chernikov 6784cb63aa Scripting: implement support for user-defined execution wrapper 2022-06-16 21:28:02 +00:00
Jinseong Jeon abdc2cf85e AA: populate SingleJavaFileRootsIndex properly 2022-06-16 22:14:18 +02:00
Jinseong Jeon 9ba6cf47ea AA: use partition to group directory/jar library roots 2022-06-16 22:14:18 +02:00
Jinseong Jeon a2da690afd Test: add java source files as JavaSourceRoot
so that those can be properly populated in SingleJavaRootsIndex
2022-06-16 22:14:17 +02:00
Yuriy Artamonov cb2a54cef8 KT-50907 Update no-arg plugin to for jakarta persistence api namespace 2022-06-16 18:31:49 +00:00
Yan Zhulanow 191bac38a3 Fix 'PsiElement.getReference()' contract for Kotlin PSI (KT-52822)
As stated in JavaDoc for 'PsiElement' (formatting is slightly changed):

Returns the reference from this PSI element to another PSI element
(or elements), if one exists. If the element has multiple associated
references, returns the first associated reference.
2022-06-16 18:31:49 +00:00
Yan Zhulanow 3a6dd52833 [Pill] Update imported modules 2022-06-16 18:31:49 +00:00
Yan Zhulanow 28625e135d [Pill] Disallow 1.6 JVM target in generated facets 2022-06-16 18:31:48 +00:00
Romain Guy 02a3915fdf KT-48232: Implement kotlin.math.cbrt() (cubic roots)
cbrt() is the standard cubic root function that provides several advantages over pow(x, 1.0/3.0):
- Better precision
- Faster
- Behaves better with negative values
2022-06-16 20:27:43 +03:00
Dmitriy Novozhilov c79a485c8e [FIR2IR] Run IrGenerationExtensions before patching parents of external declarations and constant evaluation
^KT-52804 Fixed
2022-06-16 13:43:50 +00:00
Dmitriy Novozhilov 76622097e4 [IR] Introduce new functions for referencing declarations from IrPluginContext
Those functions take `ClassId` and `CallableId`, which is more correct
  than using just `FqName`.

Also implement those functions for `Fir2IrPluginContext`
2022-06-16 13:43:50 +00:00
Dmitriy Novozhilov a30216c655 [IR] Mark methods with descriptors of ReferenceSymbolTable with @ObsoleteDescriptorBasedAPI
Also remove optIn annotation from IrPluginContext.symbolTable
2022-06-16 13:43:49 +00:00
Nkolay Krasko 8227a35a33 [Build] Update containers 2022-06-16 13:12:32 +02:00
Sergej Jaskiewicz da7ff5b868 [JS IR] Fix replacing super.toString() call with a runtime function call
#KT-52553 Fixed
2022-06-16 10:03:14 +00:00
Sergej Jaskiewicz f2111c9dc8 [JS] Add some helpful documentation regarding testing to the readme. 2022-06-16 10:02:06 +00:00
Sergej Jaskiewicz 30b47b6902 [JS] Use absolute paths in sourcemaps for tests 2022-06-16 10:02:05 +00:00
Sergej Jaskiewicz 53233c487e [JS] Factor out source map path rewriting 2022-06-16 10:02:05 +00:00
Sergej Jaskiewicz 0320d49ddc [JS IR] Generate sourcemaps for JS IR tests 2022-06-16 10:02:04 +00:00
Alexander Shabalin 29f3445721 [K/N] Deprecated freezing ^KT-50541
Starting with 1.7.20 freezing is deprecated. See https://github.com/JetBrains/kotlin/blob/master/kotlin-native/NEW_MM.md#freezing-deprecation for details.

Merge-request: KT-MR-6399
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2022-06-16 09:04:14 +00:00
Pavel Kunyavskiy b482b0e86d [K/N] Temporary allow caches with non-default assertions mode
It was broken for a long time anyway, but returning error right now
requires too much effort.
2022-06-16 08:47:36 +00:00
Pavel Kunyavskiy 3233efdd04 [K/N] Disable freezing tests, when caches are enabled 2022-06-16 08:47:36 +00:00
Pavel Kunyavskiy a07066f98b [K/N] Make overridden runtime variables available during stdlib lto 2022-06-16 08:47:35 +00:00
Pavel Kunyavskiy ee2340842c [K/N] Refactor staticData to support several llvm modules 2022-06-16 08:47:34 +00:00
Pavel Kunyavskiy f562c127af [K/N] Improve consistency of using setConst vs override RuntimeGlobals 2022-06-16 08:47:33 +00:00
Mikhail Glukhikh fa914f20a4 Use nearest Java super qualifier for fields in IR converter
Related to KT-49507
2022-06-16 06:51:34 +00:00
Mikhail Glukhikh 8ae47d4c4d IR: slightly fix kotlin-like dumping of super qualifiers 2022-06-16 06:51:34 +00:00
Mikhail Glukhikh b0a6508d4b Handle Java base class field read properly in IR converters
For FE 1.0, we just change super qualifier symbol to
base class, if it's possible.
For FIR, we introduce using of super qualifier symbols for
field accesses and repeat FE 1.0 behavior here.

#KT-49507 Fixed
2022-06-16 06:51:33 +00:00
pyos c2ae74c7cd FIR CFG: when unifying flows, group statements by assignment
Consider a function `run2` that has 2 lambda arguments called in place.
We don't know the order in which they're called, so here:

    var x: Any? = something
    run2(
      { x = null },
      { x as String },
    )
    // <--

it's not correct to simply `&&` the statements together, as that would
produce `x is Nothing? && x is String && x is Any?`. Instead, statements
should be grouped by assignment first, and different groups are `||`-ed.
This means in the above example we now get `x is Nothing? || (x is Any?
&& x is String)` == `x is String?`.
2022-06-15 20:05:50 +00:00
pyos 25f66b4e0e FIR CFG: mark variables touched by not-in-place lambdas in all scopes 2022-06-15 20:05:49 +00:00
pyos 63b0708ed5 FIR CFG: join/unify data flow from postponed lambdas at each level
For example:

    foo(
        // `if` joins A & B
        if (condition)
            run { ... } // A
        else
            run { ... }, // B
        run { ... } // C
    ) // `foo` unifies `A & B` and `C`, so if it is not resolved itself,
      // further `if`s, `when`s, safe calls outside it, etc. continue
      // building the correct type predicate until the next completed
      // call.

^KT-44512 Fixed
2022-06-15 20:05:49 +00:00
pyos 755c54553a FIR CFG: add more KT-44512 related tests 2022-06-15 20:05:48 +00:00
Dmitriy Novozhilov 42df4bdda2 Advance bootstrap to 1.7.20-dev-2106 2022-06-15 20:02:48 +00:00
Alexander Udalov 2d29f0ad05 kotlinx-metadata: prepare for release 0.5.0 2022-06-15 21:59:45 +02:00
Alexander Udalov 61652c04e1 kotlinx-metadata: support experimental context receivers 2022-06-15 21:59:45 +02:00
Alexander Udalov 6abf14087c kotlinx-metadata: add Flag.Type.IS_DEFINITELY_NON_NULL 2022-06-15 21:59:45 +02:00
Yahor Berdnikau dca59b0876 Drop AGP_34 version usage
^KT-45747 Fixed
2022-06-15 18:09:09 +00:00
Yahor Berdnikau ef4e87e122 Add @GradleAndroidTest annotation
This allows to run parameterized tests against combination of different
Gradle and Android Gradle plugin versions.

By default, test is provided with minimal supported Gradle + AGP version
and maximum supported Gradle + AGP version.

Migrate AGP versions to enum with compatibility fields.

^KT-45747 In Progress
2022-06-15 18:09:09 +00:00
Mikhail Glukhikh abf72816e9 Fix property/enum entry ambiguity warning 2022-06-15 17:20:01 +00:00