Commit Graph

2070 Commits

Author SHA1 Message Date
Jack Zhou 2f47e30a1a Fixed UnsupportedOperationException when a namespace is used in place of an expression. 2013-01-21 13:10:19 +04:00
Nikolay Krasko 6ce830e999 Add information about unsupported class for label descriptor 2013-01-17 21:05:08 +04:00
Alexander Udalov 192a81591b Resolve qualified nested class expressions
lookupNamespaceType now returns NamespaceType of a scope not only of the
namespace found by name, but also of the classifier static classes scope found
by the same name. This allows correct resolution of expressions
"Class.Nested.member()", where Class comes from Java (previously it was
resolved into a NamespaceDescriptor with a NamespaceType).

NamespaceDescriptor.getNamespaceType() is deleted since there are no sense in
namespace's NamespaceType alone anymore.

Also some minor refactoring (referencedName param is useless)

 #KT-1174 In Progress
2013-01-16 23:11:50 +04:00
Alexander Udalov c4b5577555 Do not report NO_CLASS_OBJECT when namespacesAllowed=true
Now with nested classes the expression "A.something" makes sense even when A
doesn't have a class object ("something" could be a nested class)

Also "A" expression now gets a NamespaceType with the scope of all static
nested classes of A

 #KT-1174 In Progress
2013-01-16 23:11:50 +04:00
Alexander Udalov 051e94b1c5 Get rid of MutableClassDescriptorLite.isStatic()
isStatic() is now precisely !isInner()
2013-01-16 23:11:48 +04:00
Alexander Udalov b612989eb0 Remove 'inner enum' hack & fix Java inner class resolve
Inner enum was placed into the class object of the outer class. Remove the
hack from frontend, frontend.java & backend. Fix tests

 #KT-1174 In Progress
2013-01-16 23:11:47 +04:00
Alexander Udalov cc6bd6239a Remove unused method 2013-01-16 23:11:46 +04:00
Alexander Udalov 65716431c4 DescriptorRendererImpl now writes 'inner' for inner classes
#KT-1174 In Progress
2013-01-16 23:11:45 +04:00
Alexander Udalov 0b51a6cae0 Disallow nested classes within inner & local classes
#KT-1174 In Progress
2013-01-16 23:11:45 +04:00
Alexander Udalov a0caa88adf Report ILLEGAL_MODIFIER on inappropriate 'inner' keyword usage
#KT-1174 In Progress
2013-01-16 23:11:44 +04:00
Alexander Udalov 0a1907de11 Check all modifiers for objects
DeclarationsChecker didn't check visibility modifiers for objects
2013-01-16 23:11:43 +04:00
Alexander Udalov 7a3000ccac Forbid usage of outer's generic parameter in nested class
#KT-1174 In Progress
2013-01-16 23:11:42 +04:00
Alexander Udalov 43c37398af Labeled this & super to nested class' outer is an error
#KT-1174 In Progress
2013-01-16 23:11:42 +04:00
Alexander Udalov 5d92453532 Inaccessible outer class member is now an error
#KT-1174 In Progress
2013-01-16 23:11:41 +04:00
Alexander Udalov e76abcb625 Add ClassDescriptor.isInner()
Implement in resolve & lazy resolve; place a stub in resolve-java

 #KT-1174 In Progress
2013-01-16 23:11:40 +04:00
Alexander Udalov 84e4611d2b Add 'inner' keyword
Support for the keyword in PSI and stubs

 #KT-1174 In Progress
2013-01-16 23:11:39 +04:00
Alexander Udalov 949f5ed834 JetSimpleNameExpression's name is not null
Modify usages accordingly
2013-01-16 23:11:39 +04:00
Evgeny Gerashchenko 739acbcf01 Fixed test by topologically sorting classes in OverrideResolver. 2013-01-16 15:58:02 +04:00
Vladimir Rudev 290681ceee KT-614 Emit a warning when non-null type is checked for instance of nullable type
#KT-614 Fixed
2013-01-15 23:44:20 +04:00
Andrey Breslav 6f8c9bf0d1 JetClass.isEnum() introduced 2013-01-14 20:20:27 +04:00
Andrey Breslav 66aef9a64f JetClassOrObject implements JetNamedDeclaration 2013-01-14 20:20:14 +04:00
Andrey Breslav 4a6fd1676b Index classes refactored: keys are properly references, ensuring that a keys doesn't get confused across classes 2013-01-14 20:20:12 +04:00
Andrey Breslav df7490d01c Index package FqNames for files 2013-01-14 20:20:11 +04:00
Andrey Breslav 380c8b596a The slow (synchronized) java.util.Stack replaced by com.intellij.util.containers.Stack 2013-01-14 20:20:10 +04:00
Andrey Breslav f1e31341ef Methods reordered 2013-01-14 15:19:49 +04:00
Vladimir Rudev e4d33e386e KT-2255, KT-3032 Repair renaming in JetSimpleNameReference 2013-01-11 21:12:51 +04:00
Evgeny Gerashchenko 8a7548bc84 Wiped traces of JetStandardLibrary class name. 2013-01-11 18:23:05 +04:00
Evgeny Gerashchenko 9d4447e3ae Stabler member sorting.
In case when they have same value parameter types, but different type parameter bounds.
2013-01-11 16:08:32 +04:00
Evgeny Gerashchenko 859ef8432e Removed constructor parenthesis for named objects and enum entries. 2013-01-11 16:08:28 +04:00
Svetlana Isakova 33a82da493 supertype of error type should be an error type, not any 2013-01-10 15:55:50 +04:00
Svetlana Isakova 142d9a090c no senseless comparison for error type 2013-01-10 15:55:50 +04:00
Pavel V. Talanov ad848f2ebc Check for ClassKind in getClassifier() and getObjectDescriptor() implementations in java scopes
# KT-3124 fixed
2013-01-09 18:38:56 +04:00
Svetlana Isakova 0b53bd25bd KT-2397 Prohibit final methods in traits with no implementation
#KT-2397 fixed
2012-12-29 20:08:10 +04:00
Svetlana Isakova 55968aabad fixed an exception from 'getConstructorReferenceExpression'
(from exception analyzer)
2012-12-29 20:08:10 +04:00
Evgeny Gerashchenko e03eaf6dde Removed @author javadocs from code. 2012-12-28 17:44:31 +04:00
Evgeny Gerashchenko dda15f7505 Excluded class object names from FQ name and qualified name. 2012-12-28 14:25:34 +04:00
Evgeny Gerashchenko c041fc8fea Removed sorting of upper bounds in renderer.
Removed corresponding test.
2012-12-28 14:25:18 +04:00
Evgeny Gerashchenko 28c93f2912 Not rendering "final" for top-level functions and properties. 2012-12-28 14:25:18 +04:00
Evgeny Gerashchenko 60f8c8a343 Rendering modality if it is "non-default". 2012-12-28 14:25:17 +04:00
Evgeny Gerashchenko bc9f5da47e Rendering nice unicode arrow for function types in UI. 2012-12-27 20:46:59 +04:00
Evgeny Gerashchenko c0ce15ddfb Made parameter of renderType() @NotNull. 2012-12-27 20:46:59 +04:00
Evgeny Gerashchenko da7f4f3421 Escaping parameter names in "where". 2012-12-27 20:46:59 +04:00
Evgeny Gerashchenko ef1ffa4bf7 Sorting upper bounds when rendering "where" to workaround failing test. 2012-12-27 20:46:56 +04:00
Evgeny Gerashchenko 0df966323d Smarter members sorting. 2012-12-27 20:46:56 +04:00
Evgeny Gerashchenko b13a99d4cd Moved MemberComparator to frontend. 2012-12-27 20:46:56 +04:00
Evgeny Gerashchenko d89f00e981 Fixed missing " " before class object name. 2012-12-27 20:46:56 +04:00
Evgeny Gerashchenko 778df8b1fd Rendering annotations and visibility for class object.
Don't render modality for any object kind.
2012-12-27 20:46:55 +04:00
Evgeny Gerashchenko 63b3e59a18 Render annotation arguments. 2012-12-27 20:46:55 +04:00
Evgeny Gerashchenko bf42e3c093 Rendering "constructor" instead of "ctor". 2012-12-27 20:46:54 +04:00
Evgeny Gerashchenko df11628fb0 Added annotation filtering in DescriptorRenderer. 2012-12-27 20:46:54 +04:00