JET-47 Require a ':' in object literals
This commit is contained in:
@@ -238,7 +238,7 @@ arrayAccess
|
||||
;
|
||||
|
||||
objectLiteral
|
||||
: "object" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
|
||||
: "object" ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
|
||||
;
|
||||
|
||||
/* Factory methods:
|
||||
|
||||
@@ -1591,7 +1591,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
|
||||
/*
|
||||
* objectLiteral
|
||||
* : "object" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
|
||||
* : "object" ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
|
||||
* ;
|
||||
*/
|
||||
public void parseObjectLiteral() {
|
||||
@@ -1605,6 +1605,8 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
myJetParsing.parseClassBody();
|
||||
}
|
||||
else {
|
||||
expect(COLON, "Expecting ':'", TokenSet.create(IDENTIFIER, NAMESPACE_KEYWORD));
|
||||
|
||||
myJetParsing.parseDelegationSpecifierList();
|
||||
if (at(LBRACE)) {
|
||||
myJetParsing.parseClassBody();
|
||||
|
||||
@@ -28,15 +28,15 @@ class foo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo {
|
||||
private class object : Fooo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo, Bar by foo {
|
||||
private class object : Fooo, Bar by foo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo, Bar by foo, Goo()
|
||||
private class object : Fooo, Bar by foo, Goo()
|
||||
}
|
||||
|
||||
class Bar {}
|
||||
@@ -74,15 +74,15 @@ class foo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo {
|
||||
private class object : Fooo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo, Bar by foo {
|
||||
private class object : Fooo, Bar by foo {
|
||||
|
||||
}
|
||||
|
||||
private class object Fooo, Bar by foo, Goo()
|
||||
private class object : Fooo, Bar by foo, Goo()
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -202,6 +202,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
@@ -223,6 +225,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
@@ -256,6 +260,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
@@ -553,6 +559,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
@@ -574,6 +582,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
@@ -607,6 +617,8 @@ JetFile: SimpleClassMembers.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -23,7 +23,7 @@ fun a(
|
||||
a : foo = new Foo<A>(bar),
|
||||
a : foo = new Foo(),
|
||||
a : foo = new Foo<bar>(),
|
||||
a : foo = object Foo{},
|
||||
a : foo = object : Foo{},
|
||||
a : foo = throw new Foo(),
|
||||
a : foo = return 10,
|
||||
a : foo = break,
|
||||
|
||||
@@ -485,6 +485,8 @@ JetFile: SimpleExpressions.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
fun foo() {
|
||||
|
||||
addMouseListener(object MouseAdapter() {
|
||||
addMouseListener(object : MouseAdapter() {
|
||||
|
||||
private var clickCount = 0;
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ JetFile: AnonymousObjects.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CALL
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -129,7 +129,7 @@ class BinaryTree<T> : IMutableSet<T> {
|
||||
|
||||
override fun iterator() : IIterator<T> = mutableIterator()
|
||||
|
||||
override fun mutableIterator() : IMutableIterator<T> = object IMutableIterator {
|
||||
override fun mutableIterator() : IMutableIterator<T> = object : IMutableIterator {
|
||||
val version = BinaryTree.this.version
|
||||
val down = Stack<TreeNode>()
|
||||
val up = Stack<TreeNode>()
|
||||
|
||||
@@ -1872,6 +1872,8 @@ JetFile: BinaryTree.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
val foo = object AntBuilder() {
|
||||
val foo = object : AntBuilder() {
|
||||
|
||||
[lazy] val groovy = library {
|
||||
classpath("$libs/groovy-...")
|
||||
|
||||
@@ -11,6 +11,8 @@ JetFile: Builder.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CALL
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -9,7 +9,7 @@ virtual class Buildable {
|
||||
|
||||
class List<T> {
|
||||
|
||||
class object Buildable {
|
||||
class object : Buildable {
|
||||
override fun newBuilder<E, R>() : Builder<E, R>
|
||||
|
||||
}
|
||||
|
||||
@@ -137,6 +137,8 @@ JetFile: PolymorphicClassObjects.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CLASS
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -5,7 +5,7 @@ class ArrayList<T> : IMutableList<T> {
|
||||
|
||||
override fun iterator() : IIterator<T> = mutableIterator()
|
||||
|
||||
override fun mutableIterator() : IMutableIterator<T> = object IMutableIterator() { // T is inferred
|
||||
override fun mutableIterator() : IMutableIterator<T> = object : IMutableIterator() { // T is inferred
|
||||
private val index = 0
|
||||
private var myVersion = version
|
||||
|
||||
|
||||
@@ -142,6 +142,8 @@ JetFile: ArrayList.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CALL
|
||||
TYPE_REFERENCE
|
||||
|
||||
@@ -11,7 +11,7 @@ enum class List<out T>(theSize : Int) : IList<T> {
|
||||
get() = this == Nil
|
||||
|
||||
|
||||
override fun iterator() = object IIterator() {
|
||||
override fun iterator() = object : IIterator() {
|
||||
private var current = List.this
|
||||
|
||||
override val hasNext
|
||||
|
||||
@@ -226,6 +226,8 @@ JetFile: List.jet
|
||||
OBJECT_LITERAL
|
||||
PsiElement(object)('object')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
DELEGATION_SPECIFIER_LIST
|
||||
DELEGATOR_SUPER_CALL
|
||||
TYPE_REFERENCE
|
||||
|
||||
Reference in New Issue
Block a user