KT-1016 Add initializers for fields more correctly
This commit is contained in:
@@ -12,6 +12,7 @@ import org.jetbrains.jet.j2k.visitors.*;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static org.jetbrains.jet.j2k.ConverterUtil.countWritingAccesses;
|
||||||
import static org.jetbrains.jet.j2k.ConverterUtil.createMainFunction;
|
import static org.jetbrains.jet.j2k.ConverterUtil.createMainFunction;
|
||||||
import static org.jetbrains.jet.j2k.visitors.TypeVisitor.*;
|
import static org.jetbrains.jet.j2k.visitors.TypeVisitor.*;
|
||||||
|
|
||||||
@@ -99,7 +100,7 @@ public class Converter {
|
|||||||
List<Member> members = new LinkedList<Member>();
|
List<Member> members = new LinkedList<Member>();
|
||||||
for (PsiElement e : psiClass.getChildren()) {
|
for (PsiElement e : psiClass.getChildren()) {
|
||||||
if (e instanceof PsiMethod) members.add(methodToFunction((PsiMethod) e, true));
|
if (e instanceof PsiMethod) members.add(methodToFunction((PsiMethod) e, true));
|
||||||
else if (e instanceof PsiField) members.add(fieldToField((PsiField) e));
|
else if (e instanceof PsiField) members.add(fieldToField((PsiField) e, psiClass));
|
||||||
else if (e instanceof PsiClass) members.add(classToClass((PsiClass) e));
|
else if (e instanceof PsiClass) members.add(classToClass((PsiClass) e));
|
||||||
else if (e instanceof PsiClassInitializer) members.add(initializerToInitializer((PsiClassInitializer) e));
|
else if (e instanceof PsiClassInitializer) members.add(initializerToInitializer((PsiClassInitializer) e));
|
||||||
else if (e instanceof PsiMember) System.out.println(e.getClass() + " " + e.getText());
|
else if (e instanceof PsiMember) System.out.println(e.getClass() + " " + e.getText());
|
||||||
@@ -147,7 +148,7 @@ public class Converter {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private static Class classToClass(@NotNull PsiClass psiClass) {
|
private static Class classToClass(@NotNull PsiClass psiClass) {
|
||||||
final Set<String> modifiers = modifiersListToModifiersSet(psiClass.getModifierList());
|
final Set<String> modifiers = modifiersListToModifiersSet(psiClass.getModifierList());
|
||||||
final List<Field> fields = fieldsToFieldList(psiClass.getFields());
|
final List<Field> fields = fieldsToFieldList(psiClass.getFields(), psiClass);
|
||||||
final List<Element> typeParameters = elementsToElementList(psiClass.getTypeParameters());
|
final List<Element> typeParameters = elementsToElementList(psiClass.getTypeParameters());
|
||||||
final List<Type> implementsTypes = typesToNotNullableTypeList(psiClass.getImplementsListTypes());
|
final List<Type> implementsTypes = typesToNotNullableTypeList(psiClass.getImplementsListTypes());
|
||||||
final List<Type> extendsTypes = typesToNotNullableTypeList(psiClass.getExtendsListTypes());
|
final List<Type> extendsTypes = typesToNotNullableTypeList(psiClass.getExtendsListTypes());
|
||||||
@@ -260,14 +261,14 @@ public class Converter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static List<Field> fieldsToFieldList(@NotNull PsiField[] fields) {
|
private static List<Field> fieldsToFieldList(@NotNull PsiField[] fields, PsiClass psiClass) {
|
||||||
List<Field> result = new LinkedList<Field>();
|
List<Field> result = new LinkedList<Field>();
|
||||||
for (PsiField f : fields) result.add(fieldToField(f));
|
for (PsiField f : fields) result.add(fieldToField(f, psiClass));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static Field fieldToField(@NotNull PsiField field) {
|
private static Field fieldToField(@NotNull PsiField field, PsiClass psiClass) {
|
||||||
Set<String> modifiers = modifiersListToModifiersSet(field.getModifierList());
|
Set<String> modifiers = modifiersListToModifiersSet(field.getModifierList());
|
||||||
if (field instanceof PsiEnumConstant) // TODO: remove instanceof
|
if (field instanceof PsiEnumConstant) // TODO: remove instanceof
|
||||||
return new EnumConstant(
|
return new EnumConstant(
|
||||||
@@ -280,7 +281,8 @@ public class Converter {
|
|||||||
new IdentifierImpl(field.getName()), // TODO
|
new IdentifierImpl(field.getName()), // TODO
|
||||||
modifiers,
|
modifiers,
|
||||||
typeToType(field.getType()),
|
typeToType(field.getType()),
|
||||||
createSureCallOnlyForChain(field.getInitializer(), field.getType()) // TODO: add modifiers
|
createSureCallOnlyForChain(field.getInitializer(), field.getType()), // TODO: add modifiers
|
||||||
|
countWritingAccesses(field, psiClass)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public class EnumConstant extends Field {
|
public class EnumConstant extends Field {
|
||||||
public EnumConstant(Identifier identifier, Set<String> modifiers, @NotNull Type type, Element params) {
|
public EnumConstant(Identifier identifier, Set<String> modifiers, @NotNull Type type, Element params) {
|
||||||
super(identifier, modifiers, type.convertedToNotNull(), params);
|
super(identifier, modifiers, type.convertedToNotNull(), params, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -14,11 +14,13 @@ import static org.jetbrains.jet.j2k.Converter.getDefaultInitializer;
|
|||||||
*/
|
*/
|
||||||
public class Field extends Member {
|
public class Field extends Member {
|
||||||
final Identifier myIdentifier;
|
final Identifier myIdentifier;
|
||||||
|
private final int myWritingAccesses;
|
||||||
final Type myType;
|
final Type myType;
|
||||||
final Element myInitializer;
|
final Element myInitializer;
|
||||||
|
|
||||||
public Field(Identifier identifier, Set<String> modifiers, Type type, Element initializer) {
|
public Field(Identifier identifier, Set<String> modifiers, Type type, Element initializer, int writingAccesses) {
|
||||||
myIdentifier = identifier;
|
myIdentifier = identifier;
|
||||||
|
myWritingAccesses = writingAccesses;
|
||||||
myModifiers = modifiers;
|
myModifiers = modifiers;
|
||||||
myType = type;
|
myType = type;
|
||||||
myInitializer = initializer;
|
myInitializer = initializer;
|
||||||
@@ -45,7 +47,7 @@ public class Field extends Member {
|
|||||||
|
|
||||||
modifierList.add(accessModifier());
|
modifierList.add(accessModifier());
|
||||||
|
|
||||||
modifierList.add(myModifiers.contains(Modifier.FINAL) ? "val" : "var");
|
modifierList.add(isVal() ? "val" : "var");
|
||||||
|
|
||||||
if (modifierList.size() > 0)
|
if (modifierList.size() > 0)
|
||||||
return AstUtil.join(modifierList, SPACE) + SPACE;
|
return AstUtil.join(modifierList, SPACE) + SPACE;
|
||||||
@@ -53,24 +55,23 @@ public class Field extends Member {
|
|||||||
return EMPTY;
|
return EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isVal() {
|
||||||
|
return myModifiers.contains(Modifier.FINAL);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStatic() {
|
public boolean isStatic() {
|
||||||
return myModifiers.contains(Modifier.STATIC);
|
return myModifiers.contains(Modifier.STATIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFinal() {
|
|
||||||
return myModifiers.contains(Modifier.FINAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String toKotlin() {
|
public String toKotlin() {
|
||||||
String modifier = modifiersToKotlin();
|
final String declaration = modifiersToKotlin() + myIdentifier.toKotlin() + SPACE + COLON + SPACE + myType.toKotlin();
|
||||||
|
|
||||||
if (myInitializer.isEmpty())
|
if (myInitializer.isEmpty())
|
||||||
return modifier + myIdentifier.toKotlin() + SPACE + COLON + SPACE + myType.toKotlin() + SPACE + EQUAL + SPACE + getDefaultInitializer(this);
|
return declaration + (isVal() && !isStatic() && myWritingAccesses == 1 ? EMPTY : SPACE + EQUAL + SPACE + getDefaultInitializer(this));
|
||||||
|
|
||||||
return modifier + myIdentifier.toKotlin() + SPACE + COLON + SPACE + myType.toKotlin() + SPACE +
|
return declaration + SPACE + EQUAL + SPACE + myInitializer.toKotlin();
|
||||||
EQUAL + SPACE + myInitializer.toKotlin();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
package test
|
package test
|
||||||
public open class Test(str : String) {
|
public open class Test(str : String) {
|
||||||
{
|
|
||||||
myStr = str
|
|
||||||
}
|
|
||||||
var myStr : String? = "String2"
|
var myStr : String? = "String2"
|
||||||
open public fun sout(str : String) : Unit {
|
open public fun sout(str : String) : Unit {
|
||||||
System.out?.println(str)
|
System.out?.println(str)
|
||||||
@@ -17,4 +14,7 @@ sout(test)
|
|||||||
sout(dummy(test))
|
sout(dummy(test))
|
||||||
Test(test)
|
Test(test)
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
myStr = str
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
open class C(arg1 : Int) {
|
open class C(arg1 : Int) {
|
||||||
|
val myArg1 : Int
|
||||||
|
var myArg2 : Int = 0
|
||||||
|
var myArg3 : Int = 0
|
||||||
{
|
{
|
||||||
myArg1 = arg1
|
myArg1 = arg1
|
||||||
myArg2 = 0
|
myArg2 = 0
|
||||||
myArg3 = 0
|
myArg3 = 0
|
||||||
}
|
}
|
||||||
val myArg1 : Int = 0
|
|
||||||
var myArg2 : Int = 0
|
|
||||||
var myArg3 : Int = 0
|
|
||||||
class object {
|
class object {
|
||||||
open fun init(arg1 : Int, arg2 : Int, arg3 : Int) : C {
|
open fun init(arg1 : Int, arg2 : Int, arg3 : Int) : C {
|
||||||
val __ = C(arg1)
|
val __ = C(arg1)
|
||||||
|
|||||||
@@ -1,13 +1,7 @@
|
|||||||
package org.test.customer
|
package org.test.customer
|
||||||
open class Customer(first : String?, last : String?) {
|
open class Customer(first : String?, last : String?) {
|
||||||
{
|
public val _firstName : String?
|
||||||
doSmthBefore()
|
public val _lastName : String?
|
||||||
_firstName = first
|
|
||||||
_lastName = last
|
|
||||||
doSmthAfter()
|
|
||||||
}
|
|
||||||
public val _firstName : String? = null
|
|
||||||
public val _lastName : String? = null
|
|
||||||
open public fun getFirstName() : String? {
|
open public fun getFirstName() : String? {
|
||||||
return _firstName
|
return _firstName
|
||||||
}
|
}
|
||||||
@@ -18,6 +12,12 @@ open private fun doSmthBefore() : Unit {
|
|||||||
}
|
}
|
||||||
open private fun doSmthAfter() : Unit {
|
open private fun doSmthAfter() : Unit {
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
doSmthBefore()
|
||||||
|
_firstName = first
|
||||||
|
_lastName = last
|
||||||
|
doSmthAfter()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
open class CustomerBuilder() {
|
open class CustomerBuilder() {
|
||||||
public var _firstName : String? = "Homer"
|
public var _firstName : String? = "Homer"
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
public open class Identifier<T>(_myName : T?, _myHasDollar : Boolean) {
|
public open class Identifier<T>(_myName : T?, _myHasDollar : Boolean) {
|
||||||
{
|
|
||||||
myName = _myName
|
|
||||||
myHasDollar = _myHasDollar
|
|
||||||
}
|
|
||||||
private val myName : T? = null
|
private val myName : T? = null
|
||||||
private var myHasDollar : Boolean = false
|
private var myHasDollar : Boolean = false
|
||||||
private var myNullable : Boolean = true
|
private var myNullable : Boolean = true
|
||||||
open public fun getName() : T? {
|
open public fun getName() : T? {
|
||||||
return myName
|
return myName
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
myName = _myName
|
||||||
|
myHasDollar = _myHasDollar
|
||||||
|
}
|
||||||
class object {
|
class object {
|
||||||
open public fun init<T>(name : T?) : Identifier<T> {
|
open public fun init<T>(name : T?) : Identifier<T> {
|
||||||
val __ = Identifier(name, false)
|
val __ = Identifier(name, false)
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
public open class Identifier(_myName : String?, _myHasDollar : Boolean) {
|
public open class Identifier(_myName : String?, _myHasDollar : Boolean) {
|
||||||
{
|
|
||||||
myName = _myName
|
|
||||||
myHasDollar = _myHasDollar
|
|
||||||
}
|
|
||||||
private val myName : String? = null
|
private val myName : String? = null
|
||||||
private var myHasDollar : Boolean = false
|
private var myHasDollar : Boolean = false
|
||||||
private var myNullable : Boolean = true
|
private var myNullable : Boolean = true
|
||||||
open public fun getName() : String? {
|
open public fun getName() : String? {
|
||||||
return myName
|
return myName
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
myName = _myName
|
||||||
|
myHasDollar = _myHasDollar
|
||||||
|
}
|
||||||
class object {
|
class object {
|
||||||
open public fun init(name : String?) : Identifier {
|
open public fun init(name : String?) : Identifier {
|
||||||
val __ = Identifier(name, false)
|
val __ = Identifier(name, false)
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
public open class Test(_myName : String?, _a : Boolean, _b : Double, _c : Float, _d : Long, _e : Int, _f : Short, _g : Char) {
|
public open class Test(_myName : String?, _a : Boolean, _b : Double, _c : Float, _d : Long, _e : Int, _f : Short, _g : Char) {
|
||||||
|
private val myName : String?
|
||||||
|
private var a : Boolean = false
|
||||||
|
private var b : Double = 0.dbl
|
||||||
|
private var c : Float = 0.flt
|
||||||
|
private var d : Long = 0
|
||||||
|
private var e : Int = 0
|
||||||
|
private var f : Short = 0
|
||||||
|
private var g : Char = ' '
|
||||||
{
|
{
|
||||||
myName = _myName
|
myName = _myName
|
||||||
a = _a
|
a = _a
|
||||||
@@ -9,14 +17,6 @@ e = _e
|
|||||||
f = _f
|
f = _f
|
||||||
g = _g
|
g = _g
|
||||||
}
|
}
|
||||||
private val myName : String? = null
|
|
||||||
private var a : Boolean = false
|
|
||||||
private var b : Double = 0.dbl
|
|
||||||
private var c : Float = 0.flt
|
|
||||||
private var d : Long = 0
|
|
||||||
private var e : Int = 0
|
|
||||||
private var f : Short = 0
|
|
||||||
private var g : Char = ' '
|
|
||||||
class object {
|
class object {
|
||||||
open public fun init() : Test {
|
open public fun init() : Test {
|
||||||
val __ = Test(null, false, 0.dbl, 0.flt, 0, 0, 0, ' ')
|
val __ = Test(null, false, 0.dbl, 0.flt, 0, 0, 0, ' ')
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
package demo
|
package demo
|
||||||
enum class MyEnum(_color : Int) {
|
enum class MyEnum(_color : Int) {
|
||||||
{
|
|
||||||
color = _color
|
|
||||||
}
|
|
||||||
RED : MyEnum(10)
|
RED : MyEnum(10)
|
||||||
BLUE : MyEnum(20)
|
BLUE : MyEnum(20)
|
||||||
private val color : Int = 0
|
private val color : Int
|
||||||
public fun getColor() : Int {
|
public fun getColor() : Int {
|
||||||
return color
|
return color
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
color = _color
|
||||||
|
}
|
||||||
public fun name() : String { return "" }
|
public fun name() : String { return "" }
|
||||||
public fun order() : Int { return 0 }
|
public fun order() : Int { return 0 }
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
enum class Color(c : Int) {
|
enum class Color(c : Int) {
|
||||||
{
|
|
||||||
code = c
|
|
||||||
}
|
|
||||||
WHITE : Color(21)
|
WHITE : Color(21)
|
||||||
BLACK : Color(22)
|
BLACK : Color(22)
|
||||||
RED : Color(23)
|
RED : Color(23)
|
||||||
@@ -11,6 +8,9 @@ private var code : Int = 0
|
|||||||
public fun getCode() : Int {
|
public fun getCode() : Int {
|
||||||
return code
|
return code
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
code = c
|
||||||
|
}
|
||||||
public fun name() : String { return "" }
|
public fun name() : String { return "" }
|
||||||
public fun order() : Int { return 0 }
|
public fun order() : Int { return 0 }
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package demo
|
package demo
|
||||||
enum class Color(c : Int) {
|
enum class Color(c : Int) {
|
||||||
{
|
|
||||||
code = c
|
|
||||||
}
|
|
||||||
private var code : Int = 0
|
private var code : Int = 0
|
||||||
public fun getCode() : Int {
|
public fun getCode() : Int {
|
||||||
return code
|
return code
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
code = c
|
||||||
|
}
|
||||||
public fun name() : String { return "" }
|
public fun name() : String { return "" }
|
||||||
public fun order() : Int { return 0 }
|
public fun order() : Int { return 0 }
|
||||||
}
|
}
|
||||||
@@ -3,11 +3,11 @@ open class `$$$$$`() {
|
|||||||
open class `$`() {
|
open class `$`() {
|
||||||
}
|
}
|
||||||
open class `$$`(`$$$$` : `$$$$$`?) : `$`() {
|
open class `$$`(`$$$$` : `$$$$$`?) : `$`() {
|
||||||
{
|
val `$$$` : `$$$$$`?
|
||||||
`$$$` = `$$$$`
|
|
||||||
}
|
|
||||||
val `$$$` : `$$$$$`? = null
|
|
||||||
open public fun `$$$$$$`() : `$$$$$`? {
|
open public fun `$$$$$$`() : `$$$$$`? {
|
||||||
return `$$$`
|
return `$$$`
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
`$$$` = `$$$$`
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
open class Base<T>(name : T?) {
|
open class Base<T>(name : T?) {
|
||||||
}
|
}
|
||||||
open class One<T, K>(name : T?, second : K?) : Base<T?>(name) {
|
open class One<T, K>(name : T?, second : K?) : Base<T?>(name) {
|
||||||
|
private var mySecond : K? = null
|
||||||
{
|
{
|
||||||
mySecond = second
|
mySecond = second
|
||||||
}
|
}
|
||||||
private var mySecond : K? = null
|
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
open class Base(name : String?) {
|
open class Base(name : String?) {
|
||||||
}
|
}
|
||||||
open class One(name : String?, second : String?) : Base(name) {
|
open class One(name : String?, second : String?) : Base(name) {
|
||||||
|
private var mySecond : String? = null
|
||||||
{
|
{
|
||||||
mySecond = second
|
mySecond = second
|
||||||
}
|
}
|
||||||
private var mySecond : String? = null
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package demo;
|
||||||
|
|
||||||
|
class C {
|
||||||
|
private final int i;
|
||||||
|
public C(int i) {
|
||||||
|
this.i = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package demo
|
||||||
|
open class C(i : Int) {
|
||||||
|
private val i : Int
|
||||||
|
{
|
||||||
|
this.i = i
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
public open class Identifier<T>(_myName : T?, _myHasDollar : Boolean) {
|
public open class Identifier<T>(_myName : T?, _myHasDollar : Boolean) {
|
||||||
{
|
|
||||||
myName = _myName
|
|
||||||
myHasDollar = _myHasDollar
|
|
||||||
}
|
|
||||||
private val myName : T? = null
|
private val myName : T? = null
|
||||||
private var myHasDollar : Boolean = false
|
private var myHasDollar : Boolean = false
|
||||||
private var myNullable : Boolean = true
|
private var myNullable : Boolean = true
|
||||||
open public fun getName() : T? {
|
open public fun getName() : T? {
|
||||||
return myName
|
return myName
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
myName = _myName
|
||||||
|
myHasDollar = _myHasDollar
|
||||||
|
}
|
||||||
class object {
|
class object {
|
||||||
open public fun init<T>(name : T?) : Identifier<T> {
|
open public fun init<T>(name : T?) : Identifier<T> {
|
||||||
val __ = Identifier(name, false)
|
val __ = Identifier(name, false)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.voltvoodoo.saplo4j.model
|
package com.voltvoodoo.saplo4j.model
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
public open class Language(code : String?) : Serializable {
|
public open class Language(code : String?) : Serializable {
|
||||||
{
|
|
||||||
this.code = code
|
|
||||||
}
|
|
||||||
protected var code : String? = null
|
protected var code : String? = null
|
||||||
override public fun toString() : String? {
|
override public fun toString() : String? {
|
||||||
return this.code
|
return this.code
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
this.code = code
|
||||||
|
}
|
||||||
}
|
}
|
||||||
open class Base() {
|
open class Base() {
|
||||||
open fun test() : Unit {
|
open fun test() : Unit {
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.voltvoodoo.saplo4j.model
|
package com.voltvoodoo.saplo4j.model
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
public open class Language(code : String?) : Serializable {
|
public open class Language(code : String?) : Serializable {
|
||||||
{
|
|
||||||
this.code = code
|
|
||||||
}
|
|
||||||
protected var code : String? = null
|
protected var code : String? = null
|
||||||
open public fun equals(other : Language?) : Boolean {
|
open public fun equals(other : Language?) : Boolean {
|
||||||
return other?.toString()?.equals(this.toString()).sure()
|
return other?.toString()?.equals(this.toString()).sure()
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
this.code = code
|
||||||
|
}
|
||||||
class object {
|
class object {
|
||||||
public var ENGLISH : Language? = Language("en")
|
public var ENGLISH : Language? = Language("en")
|
||||||
public var SWEDISH : Language? = Language("sv")
|
public var SWEDISH : Language? = Language("sv")
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package demo
|
||||||
|
open class C(a : Int) {
|
||||||
|
var abc : Int = 0
|
||||||
|
{
|
||||||
|
abc = (a * 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user