Commit Graph

3846 Commits

Author SHA1 Message Date
Michael Bogdanov 0080ebd386 Fix for KT-7273: Bad local variable type when using non-local return
#KT-7273 Fixed
2015-04-17 14:24:34 +03:00
Svetlana Isakova d40fd440b0 KT-7433 Type inference pushes Unit inside generic function with lower bound constraint
#KT-7433 Fixed
 #KT-7351 Fixed
2015-04-16 21:02:42 +03:00
Mikhail Glukhikh 109e0abb6d Review fixes for mutable variable smart casting (mostly refactoring).
DataFlowValue.isPredictable() introduced instead of isStableIdentifier().
Parenthesized assignments are treated correctly.
2015-04-16 20:11:03 +03:00
Mikhail Glukhikh e97e792674 Review fixes for smart casts in / out loops.
LoopTypeInfo became TypeInfoWithJumpInfo rewritten in Kotlin.
Fixed a bug with break inside Elvis inside a loop, a pack of related tests added.
isTrueConstant moved to JetPsiUtil.
2015-04-16 20:11:01 +03:00
Mikhail Glukhikh d5aed62410 Smart casts for local variables not captured in a closure and not changed in a loop, see #KT-3175.
isLocalVariable added. Assignment / initialization analysis.
Control whether a variable is changed in a loop at the beginning and at the end of the loop.
Control whether a variable is captured in a closure. #KT-3175  Fixed. #KT-2266  Fixed.
Tests for variable null safety and for variables is/as operations.
Loop / closure / variable property tests are included.
Old tests changed in accordance with KT-3175. In particular, all three of testSmartcastImpossible were fixed.
2015-04-16 20:10:58 +03:00
Pavel V. Talanov 818a6b5c2e Fix various tests and test data
Since we now distinguish between binaries and java source roots
2015-04-16 16:40:37 +03:00
Pavel V. Talanov d76f293dc9 Speed up finding kotlin binaries and java files in CLI
Change VirtualFileFinder api to accept ClassId and adjust usages
Introduce KotlinCoreProjectEnvironment to create special KotlinCliJavaFileManager which shares cache with CliVirtualFileFinder
Truly distinguish between java source roots and binary roots: don't search for source files in classpath and vica versa
Implement JvmDependenciesIndex
2015-04-16 16:40:28 +03:00
Pavel V. Talanov 94cc847c48 Drop module "ktm" scripts and support java source roots in "xml" modules
Drop kotlin.modules package from runtime
Move adapted classes into compiler
Unsupport files with "ktm" extension
Delete code for loading module scripts
Drop tests for module scripts
Separate section for java source roots in xml script generator/parser
2015-04-16 16:40:19 +03:00
Alexander Udalov 1b0a78077f Use assert with lazy message in project instead of eager one 2015-04-16 13:55:06 +03:00
Alexander Udalov 44e35cad29 Make 'sure' an inline function with a lazy parameter
Also replace some other non-lazy stdlib function usages with the new lazy
'sure'
2015-04-16 13:55:06 +03:00
Denis Zharkov b2a2e4ae92 Add bytecodeText test for annotation with default value
It checks that no value is emitted if argument is not specified
2015-04-16 10:40:20 +03:00
Denis Zharkov 98ffa3b475 Render Class-constant as javaClass<T>() 2015-04-16 10:40:20 +03:00
Denis Zharkov 2a03994ecb JVM: Write signature for annotation parameter 2015-04-16 10:40:20 +03:00
Denis Zharkov 8f0e290dec Create additional constructor for java annotation with Class-parameter
One of them with KClass<*> parameters and other with java.lang.Class<*>.

It's needed just for backward compatibility, and second one is deprecared.
2015-04-16 10:40:20 +03:00
Denis Zharkov f5111180c3 Load Class<?> as KClass<*> for Java annotations parameters 2015-04-16 10:40:20 +03:00
Denis Zharkov f942f6ac8e Move ReflectionTypes to builtins 2015-04-16 10:40:19 +03:00
Denis Zharkov cc17f7d82d JVM: Support using KClass as annotation parameter type 2015-04-16 10:40:19 +03:00
Denis Zharkov 82674e56b9 Frontend: Allow using KClass as annotation parameter type 2015-04-16 10:40:19 +03:00
Dmitry Jemerov 5bbbadeb37 add a token for inline Markdown links; add test for identifier links with labels 2015-04-15 19:48:46 +02:00
Michael Nedzelsky 6842c98285 JS: tests for KT-7357: extension functions from external KJS library couldn't be called in some cases 2015-04-15 17:00:06 +03:00
Mikhail Glukhikh 1544755838 Test refactoring 2015-04-14 19:11:26 +03:00
Mikhail Glukhikh 8184bccda1 Extended loop data flow analysis was implemented. #KT-6283 Fixed. #KT-6284 Fixed.
A local descendant of JetTypeInfo added to save separately current data flow info and jump point data flow info together with jump opportunity.
Now data flow analysis know about loop bodies that must be executed at least once (do...while, while(true) until the first break/continue).
A set of tests for smart casts in and after loops.
Existing DoWhile and WhileTrue resolve tests corrected in accordance.
2015-04-14 19:11:22 +03:00
Evgeny Gerashchenko 7b77ce58a5 Added assertion. There should be either space symbol after prefix (e.g., //ABSENT: A) or no symbols at all (e.g. //RUNTIME). 2015-04-14 15:01:29 +03:00
Dmitry Jemerov 9434e4bee9 mark wrapper methods that pass default values of parameters as synthetic
#KT-7314 Fixed
2015-04-13 15:26:20 +02:00
Michael Bogdanov 7b0f6018dc Fix nameless function inlining 2015-04-13 16:11:21 +03:00
Michael Bogdanov 7025a4f933 Test framewrk update: check lambda inlining 2015-04-13 16:11:21 +03:00
Michael Bogdanov 27c40edeb4 InlineTestUtil convertion 2015-04-13 16:11:21 +03:00
Michael Bogdanov 9c74b22262 Rename InlineTestUtil.java to *.kt 2015-04-13 16:11:21 +03:00
Michael Bogdanov e200b97ca4 Inline callable references
#KT-6900 Fixed
2015-04-13 16:11:21 +03:00
Dmitry Jemerov 991db29731 drop covariant specialisation for supertypes 2015-04-13 15:28:50 +03:00
Evgeny Gerashchenko 508c7a58b6 KT-7377 Throwable: Empty PSI elements should not be passed to createDescriptor from UnusedReceiverParameterInspection
#KT-7377 fixed
2015-04-13 15:04:00 +03:00
Alexander Udalov 92fa107471 Delete three diagnostic tests which rendered parts of JRE
- PackageLocalClassNotImportedWithDefaultImport.kt goes to codegen multi-file
  tests. File in java.lang moved to kotlin.jvm, which seems irrelevant to the
  test, because java.lang is prohibited by the VM
- MergePackagesWithJava.kt (KT-689, Java and Kotlin in the same package) and
  kt955.kt (Unable to import from default package) are considered too obsolete
  to even test and are thus deleted

Also check that there's no more than 1000 lines in the .txt file in diagnostic
tests.
2015-04-10 20:35:18 +03:00
Alexander Udalov 94df191f86 Regenerate tests 2015-04-10 20:26:34 +03:00
Alexander Udalov 69e7a25b08 Drop InnerTestClasses annotation, use Java reflection 2015-04-10 20:26:33 +03:00
Alexander Udalov 5c06204658 Move ExpectLoadError from tests to testData
To avoid loading all sources under "compiler/tests" in each test. Saves about
20-25% when running LoadJavaTestGenerated
2015-04-10 20:26:33 +03:00
Michael Bogdanov 67c2f7105b Fix for KT-6863: Internal compiler error folding functions
#KT-6863 Fixed
2015-04-10 08:59:27 +03:00
Michael Bogdanov a24d845bd0 Test for KT-7009: VerifyError: Bad type on operand stack in daload
#KT-7009 Obsolete
2015-04-10 08:59:27 +03:00
Michael Bogdanov 824d1ac556 Fix for KT-7306: Implicit array conversions cause ClassCastException at runtime
#KT-7306 Fixed
2015-04-10 08:59:26 +03:00
Alexander Udalov 6182b3ff5c Prohibit Array::class, require type arguments for reified parameters 2015-04-09 19:46:47 +03:00
Alexey Sedunov 06960be3ad Minor: Extract findElementByComment() function 2015-04-09 13:49:18 +03:00
Alexey Sedunov 4af608ef84 Parser: Recovery for parameter with missing name 2015-04-09 13:49:17 +03:00
Michael Bogdanov 20653090d3 Test for KT-7338: Incorrect code is emitted for is-checks with array types, resulting in java.lang.VerifyError
#KT-7338 Obsolete
2015-04-09 11:10:33 +03:00
Michael Bogdanov efd4a3ce84 Print bytecode on test fail 2015-04-09 09:25:26 +03:00
Michael Bogdanov c582b1d9ce Generate linenumber if needed after inlining 2015-04-09 09:25:26 +03:00
Evgeny Gerashchenko eeeb741d42 Added test for obsolete bug and removed workaround in code. 2015-04-08 15:14:16 +03:00
Alexander Udalov 4956b24810 Merge two DescriptorRenderer parameters about parameter name rendering
Also disable parameter name rendering completely in
AbstractJvmRuntimeDescriptorLoaderTest because they can't be obtained anyway in
reflection
2015-04-07 20:25:08 +03:00
Alexander Udalov 47e7235e64 Add different tests on class loaders in reflection 2015-04-07 20:25:07 +03:00
Alexander Udalov 137ee53e85 Reflection test: only skip Java annotation constructors
The order of Kotlin annotation parameters is retained
2015-04-07 20:25:05 +03:00
Alexander Udalov 715641fb0d Call getMethod/getDeclaredMethod depending on visibility 2015-04-07 20:20:40 +03:00
Alexander Udalov 0202217135 Fix JVM signatures involving multi-dimensional array types
Apparently ASM's Type#getElementType returns the type of the array even if it's
multi-dimensional, so the loop was incorrect
2015-04-07 20:06:23 +03:00