Commit Graph

205 Commits

Author SHA1 Message Date
Andrey Breslav
070a7d4d72 Serialization of flexible types supported 2014-10-13 15:38:20 +04:00
Andrey Breslav
91b0b83ec3 Java declaration annotations are treated as type annotations
This is needed, for example, to approximate flexible types correctly when rendering them in the code
2014-10-13 15:38:06 +04:00
Andrey Breslav
d25a76e044 Disabling @KotlinSignature checks in PLATFORM_TYPES mode 2014-10-13 15:38:05 +04:00
Andrey Breslav
ea3215b361 Massive test data update for compiledJava 2014-10-13 15:38:05 +04:00
Andrey Breslav
583694a450 Flexible types for primitive arrays 2014-10-13 15:37:54 +04:00
Andrey Breslav
8134d097e3 Another portion of test data fixed 2014-10-13 15:37:54 +04:00
Andrey Breslav
fefadaa171 Rendering platform type for java.util.Map.Entry as kotlin.(Mutable)Map.(Mutable)Entry 2014-10-13 15:37:53 +04:00
Andrey Breslav
dd2e95b3bc Substitution implemented for flexible occurrences of Java type parameters 2014-10-13 15:37:52 +04:00
Andrey Breslav
bf53222bd9 Flexible types in SAM conversions 2014-10-13 15:37:51 +04:00
Andrey Breslav
bdf7e924b5 Rendering flexible types with "!" and optional parts 2014-10-13 15:37:50 +04:00
Andrey Breslav
0cbbb6a0db Test data fixed 2014-10-13 15:37:47 +04:00
Alexander Udalov
9434114c45 Make DescriptorRenderer escape names with dollars and other characters
#KT-5791 Fixed
2014-09-18 10:42:48 +04:00
Zalim Bashorov
30208d5532 Minor: drop semicolon in package declaration everywhere. 2014-09-16 19:32:37 +04:00
Alexander Udalov
73a92c6aa9 Remove JavaClass.getAllMethods()/getAllFields()
Their behavior is different in PSI and reflection (two things that this
interface is supposed to unify), so there's no point in making it interface
methods, rather we should just walk supertype hierarchy manually

Also make JavaClassImpl.getSupertypes() invoke PsiClass.getSuperTypes(),
because it also contains java.lang.Object for interfaces, which makes
equals/hashCode/toString appear in interfaces' getAllMethods() as well
2014-09-15 19:30:53 +04:00
Alexander Udalov
f39c3041d2 Make MISSING_VAL_ON_ANNOTATION_PARAMETER error instead of warning
Annotation with a parameter that is not stored doesn't make any sense
2014-09-15 19:30:52 +04:00
Alexander Udalov
7595e32bb6 Use ClassId instead of JvmClassName in KotlinJvmBinaryClass
ClassId contains exact information about origin of the class (e.g. if '$' in
the class name denotes nested classes separator or just a character in the
name)
2014-09-15 19:30:51 +04:00
Alexander Udalov
ec02382976 Assert that reference annotation argument is always an enum value
Rename JavaReferenceAnnotationArgument on that occasion to
JavaEnumValueAnnotationArgument. Also add a test on a nested enum annotation
argument
2014-09-15 19:30:49 +04:00
Nikolay Krasko
65d358a066 Don't generate component function in lazy resolve for parameter if it has no val/var 2014-09-11 12:52:56 +04:00
Nikolay Krasko
caee19cdc7 Generate copy() in data class even if constructor is empty or not present 2014-09-11 12:52:55 +04:00
Nikolay Krasko
fa393cf4f5 Escape surrogate characters 2014-09-11 12:52:54 +04:00
Alexander Udalov
b52f337f7f Drop enum class object hack
Place valueOf() and values() into the static scope of the corresponding enum
class

 #KT-5580 Fixed
 #KT-2410 Fixed
2014-09-09 20:42:37 +04:00
Alexander Udalov
bcfb5f3b09 Rewrite Java resolve to use static class scope instead of synthesized packages
#KT-4149 Fixed
 #KT-4839 Fixed
2014-09-09 20:42:36 +04:00
Andrey Breslav
1933e30905 Test data split between compiledJava tests and compiledKotlin tests
Basically, this commit splits test data from the from java-txt-kt to two pairs java-txt and kt-txt.
This commit leads to some duplication in test data.
This is temporary: in the platform types branch the test data for LoadJava tests will be changed dramatically, so duplication will go away
2014-08-21 12:22:22 +04:00
Evgeny Gerashchenko
f2b1879aae Added test for KT-1735 Can't access "assert" function from stdlib
#KT-1735 fixed
2014-08-04 13:38:36 +04:00
Alexander Udalov
fb958897a9 Introduce kotlin.Cloneable
- Cloneable is a trait with a single protected member 'clone', which is mapped
  to java.lang.Cloneable on JVM
- 'clone' is non-abstract to be able to call 'super.clone()' in the
  implementations. Also if you need your class to be Cloneable, most of the
  time inheriting from Cloneable and calling 'super.clone()' will work
- hack 'super.clone()' in JVM intrinsics and TImpl delegation generation
- make arrays Cloneable, handle 'clone()' calls in the intrinsic

 #KT-4890 Fixed
2014-07-25 21:19:39 +04:00
Alexander Udalov
f3309d1fa7 Don't ignore methods of Object in tests
Ignore methods of kotlin.Any instead
2014-07-25 21:19:39 +04:00
Alexander Udalov
5dc37217c8 Remove Object from supertypes in LoadJava testData 2014-07-25 21:19:38 +04:00
Alexander Udalov
a79398fa00 Don't load Object as a supertype for Java classes
#KT-4890 In Progress
 #KT-5002 Fixed
2014-07-25 21:19:37 +04:00
Zalim Bashorov
c767ffc3e7 Unit.VALUE -> Unit in testData 2014-07-25 17:16:40 +04:00
Alexander Udalov
540b87a1dc Support object array annotation arguments in deserialization 2014-07-19 02:13:26 +04:00
Andrey Breslav
caec40b3a8 Fix test data 2014-07-05 18:31:55 +04:00
Andrey Breslav
06d060d5de KT-4295 Wrong diagnostic about "weaken access privilege" when override properties in constructor
#KT-4295 Fixed
2014-07-05 17:47:00 +04:00
Pavel V. Talanov
245919d691 Use module to resolve annotation classes in AnnotationDescriptorLoader 2014-07-03 20:46:36 +04:00
Evgeny Gerashchenko
bf442a9700 Fixed loading integral constants from compiled classes. 2014-06-24 22:18:13 +04:00
Evgeny Gerashchenko
aa41ae09ed Merge remote-tracking branch 'origin/master' into incremental 2014-06-19 11:43:59 +04:00
Evgeny Gerashchenko
7fdd4a339e KT-5087 Private members of Java classes should be marked as invisible, not unresolved
#KT-5087 fixed
2014-06-18 19:52:15 +04:00
Evgeny Gerashchenko
cf5fe672de Added test for KT-2381 Can't resolve references to fields inherited from Java class when used Kotlin class is loaded from bytecode
#KT-2381 obsolete
2014-06-18 19:52:12 +04:00
Evgeny Gerashchenko
b65f6e1e0e KT-2303 Support loading private class members from bytecode
#KT-2303 obsolete
2014-06-18 19:52:12 +04:00
Andrey Breslav
fe09bd4fd8 Tests for annotation deserialization when platform names are used 2014-06-10 18:21:37 +04:00
Alexander Udalov
d78d4bc44c Disallow extension properties with backing fields
#KT-1682 Fixed
2014-05-29 21:24:05 +04:00
Alexander Udalov
ea31f372aa Check for syntax/diagnostic errors in some tests 2014-05-29 21:24:05 +04:00
Alexander Udalov
33f8c49275 Minor, change test case according to its name 2014-05-29 21:07:34 +04:00
Pavel V. Talanov
b3898cfb0d Force the user of AstAccessControl to write at least one test violating restriction, implement such tests for existing tests
This is needed because the slightest change in the test setup can make the check useless without the client knowing
The solution is ugly but gives at least some protection against this
2014-05-21 15:40:29 +04:00
Pavel V. Talanov
0d4feb3bf3 JetInitializerList#getInitializers() by stub 2014-05-21 15:40:09 +04:00
Pavel V. Talanov
72bdacb074 Add explicit return types to several test data files so that AST access is not needed
Test cases are chosen so that addition/removal of explicit type will not interfere with the original purpose of the test
2014-05-21 15:40:08 +04:00
Pavel V. Talanov
a807712ce7 Mark test data files for cases which can't be resolved without AST access 2014-05-21 15:40:07 +04:00
Andrey Breslav
773cb9efbe Signature comparison used to find super functions in SignaturesPropagationData
#KT-4509 Fixed
2014-05-21 15:26:05 +04:00
Andrey Breslav
a861e5bc5e A test for the case fixed in 291741754b
When Java binaries refer to Kotlin binaries, and then some Kotlin source refers to the same Kotlin binary class, we should load this class consistently
2014-05-14 18:58:57 +04:00
Alexander Udalov
888a6c0c9b Add tests on Kotlin against compiled Java+Kotlin
The original purpose was to create a test that parameter names are inherited on
a K-J-K hierarchy when "K-J" is compiled to bytecode, but that's not possible
right now because of KT-4509
2014-05-14 18:58:57 +04:00
Andrey Breslav
3a9f577d1d All bounds may be specified in 'where' clause
Exception fixed in AlternativeMethodSignatureData
2014-05-13 20:19:43 +04:00