Commit Graph

49956 Commits

Author SHA1 Message Date
Mikhail Glukhikh 43895f43d4 Drop empty GradleMultiplatformWizardTest to avoid empty test suite 2018-10-30 20:23:27 +03:00
Mikhael Bogdanov bedaa1a503 Use proper type constructor in IrIllegalArgumentException
'v.anew(Type.geType(...))' worked accidentally because
  1. By default, ASM 6 creates METHOD Type for 'Type.geType(...)' invocation
  2. It didn't fail because this type was used only in 'anew' invocation that
      calls 'internalName' only
  3. ASM 7 changes default behavior to throw Exception
2018-10-30 16:30:26 +01:00
Mikhael Bogdanov 98fa26c2d8 Use proper type constructor in eval4j
ASM 7 changes default behavior for 'getTypeInternal' (was 'getType') method.
 Now it's throwing exception instead of create 'METHOD' Type.
 Old behavior was equals to 'Type.getMethodType("<invalid>")'

 #KT-27833 Fixed
2018-10-30 16:30:03 +01:00
Sergey Igushkin f995afd50d Fix runtime elements configuration resolved for compile classpath
The existing disambiguation rule for the Usage attribute lead to
runtime variants being resolved even for compile-scoped input
configurations, because Gradle runs disambiguation rules even if the
consumer value is present in the candidates list.

For example, an `app` project's `jvmCompileClasspath` configuration
would get its `project('lib')` dependency resolved to the
`jvmLibRuntimeElements` instead of `jvmLibApiElements`.

Fix this by:
1) running the part of the disambiguation rule only with Gradle 4.1+, so
  as to use the consumer value for proper disambiguation;
2) choosing the JAVA_API usage when the consumer is JAVA_API or
  KOTLIN_API, and choosing one of the JAVA_RUNTIME usages if the
  consumer is either KOTLIN_RUNTIME, one of the JAVA_RUNTIME usages, or
  does not specify its usage.

Issue #KT-27849 Fixed
2018-10-30 17:29:54 +03:00
Mikhael Bogdanov 43e79035e9 Revert "Fix backend for working with asm-7.0 beta (KT-27540, KT-27774)"
Original commit that cause this change was removed in asm 7.0 release
2018-10-30 11:00:23 +01:00
Dmitriy Dolovov e5a3feada4 Disable ProjectRootModificationTrackerFixer in IDEA 183+
Issue #KT-27579 Fixed
2018-10-30 11:13:26 +07:00
Alexey Tsvetkov 49d5c8ae37 Run model tests with Gradle 4.0+ 2018-10-29 21:48:01 +03:00
Alexey Tsvetkov 00f60553dc Try 0 and 1 starting lines in Kapt location mapping tests 2018-10-29 21:48:01 +03:00
Alexey Tsvetkov 22064fd005 Choose Gradle version for Gradle model tests as for other tests 2018-10-29 21:48:01 +03:00
Denis Zharkov f2a937ed97 Add changelog notes for 1.3 RCs and release 2018-10-29 19:12:38 +03:00
Vyacheslav Gerasimov 4eeb4a0ffd Build: Use cache-redirector for Android Studio 2018-10-29 18:53:19 +03:00
Alexey Tsvetkov c4268a4238 Update Android Gradle plugin version in tests 2018-10-29 16:09:57 +03:00
Ilya Matveev a03707cf87 Update Kotlin/Native: 1.0.1 2018-10-29 18:45:51 +07:00
Ilya Matveev e0a83b6159 Use KOTLIN_API usage in cinterop dependencies.
Issue #KT-27803 fixed.
2018-10-29 18:45:51 +07:00
Alexander Udalov d28c6559b8 Fix support of directories as sources in build files (-Xbuild-file)
#KT-27775 Fixed
2018-10-29 11:36:29 +01:00
Nikolay Krasko 0a2d1b409b Cleanup LookupCancelWatcher.kt 2018-10-27 18:57:21 +03:00
Nikolay Krasko 48c0fb2ba9 Remove deprecated AbstractProjectComponent 2018-10-27 18:57:20 +03:00
Sergey Rostov cce125b982 JPS: Don't catch BuildDataCorruptedException as internal error.
BuildDataCorruptedException should be thrown up to `IncProjectBuilder`
to be handled by TeamCity.

#KT-27037 Fixed
2018-10-27 16:08:38 +03:00
Sergey Rostov 0b8d94a6b1 JPS: Fix initialization order for case when all kotlin rebuild.
#KT-27792 Fixed
2018-10-27 16:08:16 +03:00
Mikhail Glukhikh 700bcb5984 Unused symbol: fix false positives on inline class constructors
#KT-27434 Fixed
2018-10-27 12:13:52 +03:00
Mikhail Glukhikh 506f7aaa68 Replace toString with string template: fix grammar 2018-10-27 12:13:50 +03:00
Mikhail Glukhikh 6e10235208 Make "Add name(s) to call arguments" available for generic arguments
#KT-15550 Fixed
2018-10-27 12:13:42 +03:00
peter e93a90bc09 fix some cases of "Cls delegate shouldn't be loaded for not too complex ultra-light classes" 2018-10-26 20:41:56 +02:00
Alexander Udalov cfffd21fa9 Fix KtLightAnnotationsValues.kt for 173
See 17076cd05e
2018-10-26 20:17:52 +02:00
Mikhail Glukhikh cb92009862 Fix maven build + ~50 compiler tests broken by UNUSED_PARAMETER in main 2018-10-26 19:51:20 +03:00
peter c54eb7db97 Merge remote-tracking branch 'origin/master' 2018-10-26 18:44:12 +02:00
peter cd1560e0b4 provide correct context for method return type
to fix generics in

class A<E> {
   fun foo(): E = null!!
}

public class B {
   public static void main(String[] args) {
       A<String> a = new A<>();
       a.foo().length(); // Unresolved length, because it thinks that `a.foo()` returns E
   }
}
2018-10-26 18:42:41 +02:00
Vyacheslav Gerasimov 87af14849d as34: Restore compatibility with 183 platform in AS 3.4 2018-10-26 18:25:22 +03:00
Vyacheslav Gerasimov 99924c3df5 as34: Update idea-version 2018-10-26 18:25:21 +03:00
Vyacheslav Gerasimov c6ecc6c21c as34: Update versions.gradle.kts 2018-10-26 18:25:21 +03:00
Vyacheslav Gerasimov 4076923a26 as34: Apply changes from AS 3.3 2018-10-26 18:25:20 +03:00
Vyacheslav Gerasimov 25e6916469 Derive as34 bunch from 183 2018-10-26 18:24:33 +03:00
Nikolay Krasko 7009b261d6 Don't rank local classes (KT-27712)
Allow enable ranking even for single source file in tests

 #KT-27712
2018-10-26 18:02:36 +03:00
Nikolay Krasko 214785d9b7 Do not ruin breakpoints when there's failure in ranking (KT-27712) 2018-10-26 18:02:36 +03:00
Nikolay Krasko 8d7829be31 Allow to assert rank value in ranking test
Update test data for lambdas.kt because of same rank check bug fixed.
2018-10-26 18:02:36 +03:00
Nikolay Krasko 122fba20da Do not wait for not generated classes in LowLevelDebuggerTestBase 2018-10-26 18:02:35 +03:00
Nikolay Krasko 651d76f4ef Allow disable strict mode in ranking tests 2018-10-26 18:02:35 +03:00
Andrey Uskov 1c7cab61c9 Add platform AS34 2018-10-26 17:58:11 +03:00
Ilya Gorbunov c833272392 stdlib-gen, minor: rename property 2018-10-26 16:27:43 +03:00
Ilya Gorbunov 138ab13364 Remove experimental coroutines usages from stdlib generator 2018-10-26 16:27:42 +03:00
Mikhail Glukhikh e39953c4a0 Check also drop-box content in multi-module line marker tests
Related to KT-26957
2018-10-26 16:21:49 +03:00
Alexander Udalov f4c77ec66f Minor, rework groovyTraitsWithFields integration test
Declaring Groovy and Kotlin classes in the same project is not necessary
for this test, split them to two projects instead to avoid the hack with
modifying task dependencies manually
2018-10-26 14:40:13 +02:00
Nicolay Mitropolsky 274fcd6237 183: PsiElementChecker: the 55-th method textRangeInParent was added in 183 2018-10-26 15:09:19 +03:00
Nicolay Mitropolsky 23d2269aac 183: Update IDEA version to 183.3975.18 2018-10-26 12:13:22 +03:00
Pavel Punegov 4d5b00d3e3 Ignore test in native: uses Array.fill 2018-10-26 11:33:14 +03:00
Mikhael Bogdanov 09d0d2c71c Keep android tests in libs/test folder
To avoid 'com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
2018-10-26 09:51:14 +02:00
Alexander Udalov 9df02b2366 Support Groovy $Trait$FieldHelper classes in new class file reader
Preface: for Groovy traits with fields, the Groovy compiler generates
synthetic "$Trait$FieldHelper" classes which posed several problems to
our class file reader, caused by the fact that the contents of the
InnerClasses attribute broke some assumptions about how names on the JVM
are formed and used.

For a trait named `A`, the Groovy compiler will additionally generate a
synthetic class file `A$Trait$FieldHelper` with the following in the
InnerClasses attribute:

InnerClasses:
     public static #15= #2 of #14; //FieldHelper=class A$Trait$FieldHelper of class A

i.e. the simple name of the class is `FieldHelper`, the name of its
outer class is `A`, but the full internal name is `A$Trait$FieldHelper`,
which is surprising considering that the names are usually obtained by
separating the outer and inner names via the dollar sign.

Another detail is that in some usages of this synthetic class, the
InnerClasses attribute was missing at all. For example, if an empty
class `B` extends `A`, then there's no InnerClasses attribute in `B`'s
class file, which is surprising because we might decode the same name
differently depending on the class file we encounter it in.

In this change, we attempt to treat these synthetic classes as top-level
by refusing to read "invalid" InnerClasses attribute values (they are
not technically invalid because they still conform to JVMS), fixing the
problem of "unresolved supertypes" error which occurred when these
classes were used as supertypes in a class file in a dependency.

1) In ClassifierResolutionContext.mapInternalNameToClassId, do not use
   the ad-hoc logic (copy-pasted from intellij-core) to determine class
   id heuristically from the internal name. For $Trait$FieldHelper
   classes this logic attempted to replace all dollar signs with dots,
   which was semantically incorrect: dollars there were used as
   synthetic characters, not as a separator between outer and inner
   classes.
2) In isNotTopLevelClass (Other.kt), only consider "valid" InnerClasses
   attribute values, where the full name of the class is obtained by
   separating the outer name and the inner name with a dollar character.
   This way, we'll be able to treat class files with invalid attribute
   values as top-level and avoid breaking any other assumptions in the
   class file loader.
3) In BinaryJavaClass.visitInnerClass, record all valid InnerClasses
   attribute values present in the class file, not just those related to
   the class in question itself. This is needed now because previously,
   the removed heuristics (see p.1) transformed mentioned inner class
   names to class ids correctly >99% of the time. Now that the
   heuristics are gone, we'll use the information present in the class
   file to map names correctly and predictably. According to JVMS, this
   attribute should contain information about all inner classes
   mentioned in the class file, and this is true at least for class
   files produced by javac.

 #KT-18592 Fixed
2018-10-25 22:15:22 +02:00
Yan Zhulanow cd88209cf4 Fix Android Extension imports resolution after project reopening (KT-27793) 2018-10-25 23:10:41 +03:00
peter beba8f215e fix registry bean registration for ultra-light classes 2018-10-25 19:54:35 +02:00
Mikhael Bogdanov 0edd2d326b Add LocalVariablesSorter to MethodRemaper in RemappingClassBuilder to keep old behavior
#KT-27774 In Progress
2018-10-25 19:53:27 +02:00