Commit Graph

41068 Commits

Author SHA1 Message Date
Dmitry Petrov bbf9bf91fc Check language feature support for local and top-level lateinit vars 2017-08-31 11:28:08 +03:00
Dmitry Petrov 01cce59c35 Make sure lateinit top-level properties work in JVM BE 2017-08-31 11:28:08 +03:00
Dmitry Petrov d951e957ea Support lateinit modifier on top-level properties
Allow lateinit modifier on top-level properties.
Modifiers 'lateinit' and 'header' are incompatible.
2017-08-31 11:28:08 +03:00
Dmitry Petrov 78b69cad77 Support lateinit local vars in redundant null check elimination
Lateinit local vars are guaranteed to be non-null after store.
So we mark such stores as storing non-null value
(could be useful for some other constructs, too),
and optimize null checks accordingly.
2017-08-31 11:28:08 +03:00
Dmitry Petrov d0b0fdd732 Ignore lateinit local vars tests in JS and Native 2017-08-31 11:28:08 +03:00
Dmitry Petrov c5b9d500bc Support lateinit local vars in JVM BE 2017-08-31 11:28:08 +03:00
Dmitry Petrov 53961e8df0 Check lateinit applicability for local variables
TODO probably should be refactored together with DeclarationsChecker
2017-08-31 11:28:08 +03:00
Dmitry Petrov 3bae430d49 Resolve lateinit variables
Do not report UNINITIALIZED_VARIABLE on lateinit variables
Provide delegating constructors for descriptors for compatibility.
2017-08-31 11:28:08 +03:00
Dmitry Petrov f88cd5ed3d Allow 'lateinit' modifier on local variables 2017-08-31 11:28:08 +03:00
Pavel V. Talanov 352071dc4a Avoid creating ModuleSourceInfo instances with empty content
This is overall desirable because it means less ModuleDescriptor
    instances which is good for IDE analysis performance
2017-08-30 19:22:30 +03:00
Dmitry Jemerov a623fb5312 Cleanup 2017-08-30 15:37:03 +02:00
Toshiaki Kameyama 29d2482b62 J2K RemovePartsFromPropertyFix 2017-08-30 15:36:58 +02:00
Toshiaki Kameyama 350cea7afd move RemovePartsFromPropertyFix.java to RemovePartsFromPropertyFix.kt 2017-08-30 15:36:26 +02:00
Toshiaki Kameyama be64a6feeb INAPPLICABLE_LATEINIT_MODIFIER should have a quickfix to remove initializer #KT-18826 Fixed 2017-08-30 15:36:25 +02:00
Dmitry Jemerov a68312379e Update ReadMe.md (#1274) 2017-08-30 15:25:48 +02:00
Denis Zharkov aef5911c7e Obtain original suspend function view for inline codegen
It's necessary for generic inline suspend as a codegen
for it uses binding slice SUSPEND_FUNCTION_TO_JVM_VIEW
to generate fake continuation parameter, so all the
descriptors that are used for body generation must be
obtained from the SUSPEND_FUNCTION_TO_JVM_VIEW

 #KT-19528 Fixed
2017-08-30 16:19:43 +03:00
Alexander Udalov abb07ced6d Minor, improve kdoc on JvmStatic 2017-08-30 15:51:30 +03:00
Alexander Udalov fb4bf4e5b8 Report error if Java 9 module "kotlin.stdlib" is not found in the graph
Use "-Xallow-kotlin-package" to suppress this error

 #KT-19176 Fixed
2017-08-30 15:47:54 +03:00
Alexander Udalov f47093dc45 Allow to access unexported package of named module in unnamed module in IDE
#KT-19492 Fixed
2017-08-30 15:45:45 +03:00
Alexander Udalov 290deb6ba4 Minor, improve test on Java 9 modules
Test that unnamed module does not read unexported package of a named
module
2017-08-30 15:45:45 +03:00
Alexander Udalov 09c1115ff9 Report errors on usages of unnamed module from named modules in IDE
#KT-19493 Fixed
2017-08-30 15:45:45 +03:00
Denis Zharkov 0d7c0d4e5e Add auto-generated tests after d6fbb084b1 2017-08-30 15:07:31 +03:00
Mikhael Bogdanov b231bf0207 Switch custom jre path for run configuration from 9-ea to 9 jdk 2017-08-30 13:18:43 +02:00
Mikhael Bogdanov ce0fb60ff4 Switch custom jre path for run configuration from 9-ea to 9 jdk 2017-08-30 12:52:44 +02:00
Denis Zharkov d6fbb084b1 Use the same temporary trace for analyzing all candidate calls
Otherwise, when completing all the unsuccessfull candiates,
resolution of each lambda-arguments starts repeatedly for each candidate
that leads to exponential time

NB: Changes in `completeArguments` are necessary because otherwise
nested lambdas will be analyzed twice:
once for the main resolved call, and then for all candidates
that again leads to exponential complexity

 #KT-16672 Fixed
 #KT-19457 Fixed
2017-08-30 12:51:29 +03:00
Mikhael Bogdanov 84c2e01161 Update changelog for 1.1.4-3 2017-08-30 10:43:11 +02:00
Mikhael Bogdanov 68522b9f1e Use lazy logging in lowers 2017-08-30 10:41:55 +02:00
Dmitry Jemerov dce6cb0cfc Highlight Kotlin files in build output
#KT-12246 Fixed
2017-08-30 10:18:00 +02:00
Pavel V. Talanov 4ada692421 Provide correct resolve scope to binaries in script dependencies
#KT-16760 Fixed
2017-08-29 20:55:20 +03:00
Pavel V. Talanov a120130069 Workaround NonClasspathClassFinder not supporting inner classes
Explicitly split qualified names, can be removed once platform is fixed

 #KT-19310 Fixed
2017-08-29 20:54:25 +03:00
Toshiaki Kameyama a6c2135851 Counter loop in Java is transformed to less effective loop in Kotlin #KT-19337 Fixed 2017-08-29 17:37:58 +02:00
Dmitry Jemerov eefc6ebcc9 Add missing read action in KotlinBuildScriptManipulator 2017-08-29 17:33:42 +02:00
baratynskiy 67fdd9f76e javac-wrapper: fixes after rebase and review 2017-08-29 18:01:36 +03:00
baratynskiy 2dc0c55e76 javac-wrapper: get rid of TreePath because it is slow 2017-08-29 18:01:36 +03:00
baratynskiy 1b0d7ff5be javac-wrapper: constant evaluator 2017-08-29 18:01:36 +03:00
baratynskiy 4f180e1292 javac-wrapper: identifier resolver 2017-08-29 18:01:36 +03:00
baratynskiy 01883a41cb javac-wrapper: refactoring, fixes and tests 2017-08-29 18:01:36 +03:00
baratynskiy 8494e54608 javac-wrapper: -Xuse-javac -> -Xuse-javac and -Xcompile-java 2017-08-29 18:01:36 +03:00
Nicolay Mitropolsky 2224720a90 findClass is nullable in IDEA 171, so !! added 2017-08-29 17:40:53 +03:00
Nicolay Mitropolsky 108a40261b KtLightAnnotationForSourceEntry fix for reading unnamed java-annotation parameter 2017-08-29 17:32:07 +03:00
Sergey Igushkin e1924e0d2f (minor) Modify warning logic for separate classes dirs opt-out flag
(cherry picked from commit 0dfe1a1)
2017-08-29 14:39:17 +03:00
Sergey Igushkin 0e28d612e7 Add a test for the opt-out flag for disabling separate classes directory
(cherry picked from commit 393966d)
2017-08-29 14:39:17 +03:00
Sergey Igushkin 0263919dbd Provide an opt-out flag for separate classes dirs with Gradle 4.0+
Issue #KT-19774 Fixed

(cherry picked from commit 2aa6f5a)
2017-08-29 14:39:17 +03:00
Dmitry Jemerov 843a9871b1 Detect library kind field based on type, not name 2017-08-29 10:29:22 +02:00
Dmitry Jemerov 106db13a6a Add missing read action (EA-105188 - assert: FileManagerImpl.findFile) 2017-08-29 10:16:35 +02:00
Dmitry Jemerov f37cc9c8ef Start read action at correct time (EA-105045) 2017-08-29 10:16:35 +02:00
Dmitry Jemerov f7f3bacc8e Add missing write action (EA-102929) 2017-08-29 10:16:34 +02:00
Dmitry Jemerov cc5d23440e Correctly check for project disposed (EA-103064) 2017-08-29 10:16:33 +02:00
Alexey Tsvetkov ac3beabf43 Update 'idea.plugins.compatible.build' in KotlinCoreEnvironment
When compiler test was run before Intellij tests,
KotlinCoreEnvironment set the 'idea.plugins.compatible.build'
system property to '171.9999', which then prevented
Kotlin plugin from loading in Intellij tests (so all these tests failed),
because Kotlin plugin has 'sinceBuild' set to '172.1'.
2017-08-29 04:28:10 +03:00
Alexey Tsvetkov cb1ffdccd7 Add test where unused file is removed 2017-08-29 04:28:10 +03:00