Commit Graph

1715 Commits

Author SHA1 Message Date
Valentin Kipyatkov 98dc8f234e Drop suppport for annotation syntax without '@' from parser 2015-10-15 19:20:07 +03:00
Alexander Udalov bf4a681589 Deduce receiver type of callable reference from LHS, not from descriptor 2015-10-15 18:25:42 +03:00
Alexander Udalov 2cf437c0e2 Fix type of callable reference to fake override 2015-10-15 18:25:41 +03:00
Yan Zhulanow d52f245cf7 Rename unary plus/minus in builtins and stdlib 2015-10-15 18:23:58 +03:00
Michael Nedzelsky 890ae3e914 Make single-file classes tolerant to having many main()'s 2015-10-15 15:46:26 +03:00
Michael Nedzelsky 57205f5721 drop BASE_WITH_NULLABLE_UPPER_BOUND 2015-10-14 20:51:01 +03:00
Alexander Udalov ced1edcf98 Prohibit callable references to object members
To be able to make them more useful in the future, i.e. bound to the object
instance
2015-10-14 20:45:56 +03:00
Alexander Udalov ec1b4776fe Deprecate PropertyMetadata, use KProperty<*> for delegated properties instead 2015-10-14 20:45:25 +03:00
Alexander Udalov 3c74f48f91 Pass KProperty instances to property delegates
Inherit KProperty from PropertyMetadata, cache corresponding KProperty objects
instead of PropertyMetadataImpl objects, add support for properties with 2
receivers
2015-10-14 20:45:24 +03:00
Mikhail Glukhikh f8a356747e Stdlib rename: 'name' and 'ordinal' are now properties in Enum, same name functions are deprecated 2015-10-14 20:40:13 +03:00
Mikhail Glukhikh 78cfeb0d7d Stdlib rename: List.indexOf(T), List.lastIndexOf(T), MutableCollection.removeAll(Collection<T>), MutableCollection.retainAll(Collection<T>) 2015-10-14 20:40:09 +03:00
Denis Zharkov 6322198a11 Revert 'isEmpty' transformation 2015-10-14 20:40:01 +03:00
Denis Zharkov 17c906658d Transform Throwable members to properties 2015-10-14 20:39:59 +03:00
Denis Zharkov e062e32f95 Do not load special builtin overrides from Java as synthesized
It has been done just to avoid clashes with real declarations that look
like our builtins: e.g. 'String removeAt(int index) {}' and 'String remove(int index) {}'in Java.

But synthesized members are even weaker than extensions.

Solution is just to ignore the latter declaration and treat first as effective override
of out builltin.
2015-10-14 20:39:51 +03:00
Denis Zharkov d71b0144d5 Adjust testData to *Map transformation 2015-10-14 20:39:40 +03:00
Denis Zharkov 6fa8083a70 Transform builtin Map declaration and adjust stdlib 2015-10-14 20:39:38 +03:00
Denis Zharkov f0e3fd617d Adjust testData to CharSequence.length transformation 2015-10-14 20:39:35 +03:00
Denis Zharkov 1305d9755a Transform CharSequence.length to property 2015-10-14 20:39:29 +03:00
Alexey Tsvetkov 5449cea6b7 Make Array type parameter T non-reified 2015-10-14 18:36:53 +03:00
Alexey Tsvetkov 62c25c0370 Replace is Array<T> with .isArrayOf<T>() 2015-10-14 18:36:53 +03:00
Mikhail Glukhikh c0faf82f77 Initializer is now required for mutable properties with backing fields and open or custom setter #KT-9449 Fixed
Setters without body are not taken into account accordingly to KT-9449.
Old INITIALIZATION_USING_BACKING_FIELD_SETTER are both dropped.
2015-10-14 18:00:13 +03:00
Mikhail Glukhikh 9c9ab671b3 Effective visibility: local is now considered private, TYPE_DEPENDS_ON_LOCAL_CLASS diagnostics removed as repeated #KT-9542 Fixed #KT-9526 Fixed 2015-10-14 18:00:10 +03:00
Mikhail Glukhikh 3a902d6002 Effective visibility: fix for internal & protected vs protected comparison #KT-9582 Fixed 2015-10-14 18:00:07 +03:00
Mikhail Glukhikh c210ca5b4d Additional correctness check for noinline & crossinline #KT-9567 Fixed 2015-10-14 18:00:02 +03:00
Michael Nedzelsky 27b13dda65 improve diagnostic for KT-9484 Don't allow named arguments for inherited functions with parameter name conflicts
#KT-9484 Fixed
2015-10-14 16:58:19 +03:00
Michael Nedzelsky d05a7224c7 add check for escaped identifiers 2015-10-14 16:57:06 +03:00
Pavel V. Talanov 47cca7db1f Test data: adjust test data after prohibiting properties with typeparameters not used in receiver 2015-10-14 13:42:13 +03:00
Pavel V. Talanov be15399313 Report errors for type parameters of properties that are not used in receiver types 2015-10-14 13:40:10 +03:00
Yan Zhulanow 275f3f8954 'operator' checks 2015-10-14 01:29:10 +03:00
Yan Zhulanow dc8e796e49 getValue()/setValue() should be marked with 'operator' 2015-10-14 01:29:09 +03:00
Svetlana Isakova 075a8eaf39 Moved 'Exact' and 'NoInfer' annotations to stdlib 2015-10-13 21:42:54 +03:00
Alexey Tsvetkov c21534fea1 Fix annotation on parameter in function type test data 2015-10-13 20:11:34 +03:00
Valentin Kipyatkov d728417f7f Fixed KT-9496 FQ-class name inserted in type argument on copy/paste
#KT-9496 Fixed
2015-10-13 19:13:22 +03:00
Mikhail Glukhikh 8473be357f Effective visibility: separate InternalProtected and InternalProtectedBound, messages, test change 2015-10-13 16:31:28 +03:00
Mikhail Glukhikh 4dbd7e7f69 Effective visibility: lower bounds introduced for all protected and for protected and internal #KT-9540 Fixed 2015-10-13 16:26:05 +03:00
Alexey Tsvetkov 0e606a3210 Prohibit named parameters in function types in supertype position 2015-10-13 16:07:55 +03:00
Alexey Tsvetkov 90849a67ae Prohibit annotations, modifiers and default values for parameters in function type
#KT-7619 fixed
2015-10-13 16:07:55 +03:00
Andrey Breslav 8e7f6f3c8c Migrated from @HiddenDeclaration to @Deprecated(..., level = DeprecationLevel.HIDDEN) 2015-10-13 13:50:16 +03:00
Michael Bogdanov 7ce770d97d Test data fix 2015-10-13 10:50:07 +03:00
Andrey Breslav 95240fc29f DEPRECATED_ERROR supported 2015-10-13 01:44:46 +03:00
Alexander Udalov 34267e436e Merge two deprecation diagnostics into one DEPRECATION
This also fixes weird suppressions in user code: instead of
«@Suppress("DEPRECATED_SYMBOL_WITH_MESSAGE")» you should now use
«@Suppress("DEPRECATION")»
2015-10-13 01:44:45 +03:00
Mikhail Glukhikh 92f031cc46 Warning "value of type parameter is predetermined" is no more generated for sealed bound #KT-9244 Fixed 2015-10-12 18:28:47 +03:00
Dmitry Petrov b24623810e Java 8 and Any-related restrictions: fix commits clash in testData 2015-10-12 18:17:51 +03:00
Mikhail Glukhikh e121ba549e Accessor visibilities are now forbidden for abstract properties 2015-10-12 18:12:39 +03:00
Dmitry Petrov 7e51fb8521 Check for exposed local classes (or objects) in type signatures 2015-10-12 15:24:54 +03:00
Andrey Breslav a2e5e60c68 TRAIT -> INTERFACE in diagnostics 2015-10-12 14:36:38 +03:00
Dmitry Petrov 7e9e427d4c Java 8 rules for method overrides:
- report errors on implementing methods of Any in interfaces
- update testData

~~~

Java 8 override restrictions: interface can't implement a method of 'Any'
- update compiler sources
2015-10-12 14:12:31 +03:00
Dmitry Petrov 5d9ee7efee Java 8 rules for method overrides:
- base class method wins against a (default) interface method,
so an abstract base class method should always be implemented
in a derived class;

- interface methods clash regardless of abstract/default
with possibly undefined behavior at run-time,
so a class or interface should always define its own method
for methods inherited from multiple interfaces and not from base class;

- meaningful diagnostics for class inheriting conflicting JVM signatures.
Since no override will happen under Java 8 rules,
ACCIDENTAL_OVERRIDE is misleading for this case;

- update testData.
2015-10-12 14:12:31 +03:00
Mikhail Glukhikh 64543e3f52 Implicit Nothing return type is now deprecated 2015-10-12 13:30:16 +03:00
Mikhail Glukhikh 65f0f312ff Private setter is now forbidden for non-private late init variables 2015-10-12 13:30:13 +03:00