Commit Graph

3420 Commits

Author SHA1 Message Date
Stanislav Erokhin fa9ca54e78 Fixed local return inside function expression. 2015-03-12 17:11:47 +03:00
Stanislav Erokhin 929f1bc9ba Fixed method hasTypeParameterListBeforeFunctionName in JetNamedFunction 2015-03-12 17:11:47 +03:00
Stanislav Erokhin a89b48c577 Backend support for function expression 2015-03-12 17:11:46 +03:00
Stanislav Erokhin 44895a23cf Frontend support for function as expression 2015-03-12 17:11:46 +03:00
Stanislav Erokhin a235110d44 Fixed function expression recovery 2015-03-12 17:11:45 +03:00
Stanislav Erokhin 983e1bc932 Added function as expression support to parser 2015-03-12 17:11:44 +03:00
Stanislav Erokhin 560c32c0f1 Added diagnostic error when in function declaration name was omitted 2015-03-12 17:11:44 +03:00
Stanislav Erokhin a8536fef9b Mute syntax error when function name was omitted 2015-03-12 17:11:44 +03:00
Stanislav Erokhin a33450395c Resolve parenthesized element as expression 2015-03-12 17:11:43 +03:00
Stanislav Erokhin 3b92cab9e0 Changed containing declaration for PropertyDeclarationInnerScope 2015-03-12 17:11:43 +03:00
Stanislav Erokhin 2c8cf05f7a Added backend tests with closure local function in local class 2015-03-12 17:11:42 +03:00
Nikolay Krasko dcd29cb65d Revert "Generate descriptor for trait constructor. Exception is thrown otherwise (EA-38416)"
This reverts commit 6ba120bba8.
2015-03-12 14:18:22 +03:00
Nikolay Krasko 6ba120bba8 Generate descriptor for trait constructor. Exception is thrown otherwise (EA-38416) 2015-03-12 12:59:22 +03:00
Michael Bogdanov 30832ed774 Properly report diagnostics on platformStatic annotations
#KT-6937 Fixed
2015-03-12 10:29:00 +03:00
Alexey Sedunov 11a4cdf7ec Control-Flow Analysis: Fix NPE for array assignments without right-hand side
#EA-63602 Fixed
2015-03-11 23:33:58 +03:00
Alexey Sedunov 56031cb270 Control-Flow Analysis: Fix bug in finally-block repetition in the presence of non-local returns
#EA-65982 Fixed
2015-03-11 23:33:57 +03:00
Pavel V. Talanov 2987e72d29 Do not report redeclaration when outer class and default object's members clash
Previously we prohibited classes and properties with the same name (now it's unnecessary)
Add test for backends that they support qualified (by default object name) member references inside class body
2015-03-11 21:06:05 +03:00
Andrey Breslav 266485add3 Serialization of star projections fixed 2015-03-11 19:38:14 +03:00
Andrey Breslav 61989ba245 KT-6815 Representing raw types when used as supertypes for Java classes
#KT-6815 Fixed
2015-03-11 18:27:37 +03:00
Andrey Breslav e0b7e4efca KT-6803 Subtyping breaks on star-projections for recursive generics
Star-projections have upper bounds of the form "parameter's bound where all parameter of the same class are substituted with their star-projections"

  #KT-6803 Fixed
2015-03-11 18:27:36 +03:00
Alexander Udalov 11b693c3be Add test on scripts with classpath 2015-03-11 18:08:14 +03:00
Denis Zharkov 70c573864a Prohibit DelegationBy specifier when no primary constructor
Also add codegen test for case when there is primary
2015-03-11 17:45:29 +03:00
Denis Zharkov 582755e71a Don't generate empty constructor if there is secondary one with empty parameter list 2015-03-11 17:45:29 +03:00
Denis Zharkov aab706a6a6 Revert test checking ENUM_ENTRY_ILLEGAL_TYPE 2015-03-11 17:45:28 +03:00
Denis Zharkov 5eb4dcd913 Report conflicting overloads for constructors
- It's worked almost fine but diagnostics were filtered out by
  positioning strategy.

- Also a couple of "put" calls to Multimap are replaced by "putValues"
  within OverloadResolver, that is more semantically correct.

- Note that constructors of top-level classes are handled when processing
  package, it helps to figure out if there are clashes with top-level
  functions that have the same name.

- But constructors of different classes are not reported as
  overloads because containing classes has the same name and will be
  reported as redeclaration.
2015-03-11 17:45:28 +03:00
Denis Zharkov 9d2d3c0c7b Take data flow info from delegation call 2015-03-11 17:45:28 +03:00
Denis Zharkov aa5599f6ca Improve positioning strategy for delegation calls 2015-03-11 17:45:28 +03:00
Denis Zharkov 4022982760 Add synthetic argument to default constructors
It's need to add synthetic argument (of type that user can't use)
to constructors with default arguments to avoid clashing with
real user's constructor having the same set of parameters
and additional int's arguments.
2015-03-11 17:45:28 +03:00
Denis Zharkov 67f97fea42 Prohibit data classes with no primary constructor 2015-03-11 17:45:28 +03:00
Denis Zharkov 111a138a2a Serialize secondary constructors 2015-03-11 17:45:27 +03:00
Denis Zharkov e65382e6ec Support secondary constructors in JVM backend
There is a lot of changes about closures calculating and generating.

1. As classes can have more than one constructor each of them should
have closure arguments.

2. Captured variables set is the same for all of them.

3. Within constructors bodies/delegating calls closure parameters
should be accessed through method arguments because fields may be
not initialized yet.
2015-03-11 17:45:27 +03:00
Denis Zharkov 4c26d037d9 Resolve property initializer if there is no primary constructor 2015-03-11 17:45:27 +03:00
Denis Zharkov a872a51a19 Prohibit explicit super call for enum ctrs 2015-03-11 17:45:26 +03:00
Denis Zharkov f07566d30d Add warning for initializers with obsolete syntax
Expected 'init' keyword before class initializer
2015-03-11 17:45:26 +03:00
Denis Zharkov 0dc155d8c9 Resolve annotations on secondary constructors 2015-03-11 17:45:26 +03:00
Denis Zharkov 7d963e8e07 Differ this/non-this instances for vars initialization in class
When deal with constructed object (not this) treat it like it's fully initialized.

Otherwise (this or access with no receiver) access instruction
should be handled as it was before.

 #KT-6788 Fixed
 #KT-4126 Fixed
2015-03-11 17:45:25 +03:00
Denis Zharkov f673f4ff47 Prohibit super delegation call if there is primary constructor 2015-03-11 17:45:25 +03:00
Denis Zharkov 835a0df13a Prohibit secondary constructors in traits 2015-03-11 17:45:25 +03:00
Denis Zharkov 4a628a3d8f Prohibit supertype initialization without primary constructor 2015-03-11 17:45:25 +03:00
Denis Zharkov 28fbdb7c53 Prohibit constructors declarations for object 2015-03-11 17:45:24 +03:00
Denis Zharkov 3fef4ad742 Minor, drop unneeded accept 2015-03-11 17:45:24 +03:00
Denis Zharkov 525ddf9eb0 Prevent circular secondary constructors delegation 2015-03-11 17:45:24 +03:00
Denis Zharkov 7f20c4a237 Control flow changes for secondary constructors 2015-03-11 17:45:24 +03:00
Denis Zharkov 61ae694be4 Allow return statements in secondary constructors 2015-03-11 17:45:24 +03:00
Denis Zharkov 80e13d3f70 Allow class initializer without primary constructor 2015-03-11 17:45:23 +03:00
Denis Zharkov 3509cafcea Allow no super class initialization within header
if there is no primary constructor
2015-03-11 17:45:23 +03:00
Denis Zharkov 1555eec954 Secondary constructors delegation calls and body resolve 2015-03-11 17:45:23 +03:00
Denis Zharkov b2cecf1dd0 Secondary constructors resolve 2015-03-11 17:45:23 +03:00
Denis Zharkov 3ba94d7352 Parsing: secondary constructors 2015-03-11 17:45:22 +03:00
Denis Zharkov a55e8911ea Drop parsing of enum initializers using `this'
#KT-6626 Fixed
2015-03-11 17:45:22 +03:00