Refactoring: use DescriptionRenderer to generate overriding functions / properties.
This commit is contained in:
committed by
Andrey Breslav
parent
01c4826b06
commit
2352d86932
+149
-149
@@ -29,215 +29,215 @@ class JavaToKotlinMethodMapGenerated {
|
|||||||
ImmutableMultimap.Builder<String, JavaToKotlinMethodMap.ClassData> b = ImmutableMultimap.builder();
|
ImmutableMultimap.Builder<String, JavaToKotlinMethodMap.ClassData> b = ImmutableMultimap.builder();
|
||||||
|
|
||||||
put(b, "java.lang.String", "String",
|
put(b, "java.lang.String", "String",
|
||||||
pair("compareTo(java.lang.String)", "fun compareTo(that : jet.String) : jet.Int"),
|
pair("compareTo(java.lang.String)", "fun compareTo(that: jet.String): jet.Int"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("toString()", "fun toString() : jet.String")
|
pair("toString()", "fun toString(): jet.String")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.CharSequence", "CharSequence",
|
put(b, "java.lang.CharSequence", "CharSequence",
|
||||||
pair("toString()", "fun toString() : jet.String")
|
pair("toString()", "fun toString(): jet.String")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.Throwable", "Throwable",
|
put(b, "java.lang.Throwable", "Throwable",
|
||||||
pair("getCause()", "fun getCause() : jet.Throwable?"),
|
pair("getCause()", "fun getCause(): jet.Throwable?"),
|
||||||
pair("getMessage()", "fun getMessage() : jet.String?"),
|
pair("getMessage()", "fun getMessage(): jet.String?"),
|
||||||
pair("printStackTrace()", "fun printStackTrace() : jet.Unit")
|
pair("printStackTrace()", "fun printStackTrace(): jet.Unit")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.Comparable", "Comparable",
|
put(b, "java.lang.Comparable", "Comparable",
|
||||||
pair("compareTo(T)", "fun compareTo(other : T) : jet.Int")
|
pair("compareTo(T)", "fun compareTo(other: T): jet.Int")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.Enum", "Enum",
|
put(b, "java.lang.Enum", "Enum",
|
||||||
pair("name()", "fun name() : jet.String"),
|
pair("name()", "fun name(): jet.String"),
|
||||||
pair("ordinal()", "fun ordinal() : jet.Int")
|
pair("ordinal()", "fun ordinal(): jet.Int")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.Iterable", "Iterable",
|
put(b, "java.lang.Iterable", "Iterable",
|
||||||
pair("iterator()", "fun iterator() : jet.Iterator<T>")
|
pair("iterator()", "fun iterator(): jet.Iterator<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.lang.Iterable", "MutableIterable",
|
put(b, "java.lang.Iterable", "MutableIterable",
|
||||||
pair("iterator()", "fun iterator() : jet.MutableIterator<T>")
|
pair("iterator()", "fun iterator(): jet.MutableIterator<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Iterator", "Iterator",
|
put(b, "java.util.Iterator", "Iterator",
|
||||||
pair("hasNext()", "fun hasNext() : jet.Boolean"),
|
pair("hasNext()", "fun hasNext(): jet.Boolean"),
|
||||||
pair("next()", "fun next() : T")
|
pair("next()", "fun next(): T")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Iterator", "MutableIterator",
|
put(b, "java.util.Iterator", "MutableIterator",
|
||||||
pair("hasNext()", "fun hasNext() : jet.Boolean"),
|
pair("hasNext()", "fun hasNext(): jet.Boolean"),
|
||||||
pair("next()", "fun next() : T"),
|
pair("next()", "fun next(): T"),
|
||||||
pair("remove()", "fun remove() : jet.Unit")
|
pair("remove()", "fun remove(): jet.Unit")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Collection", "Collection",
|
put(b, "java.util.Collection", "Collection",
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.Iterator<E>"),
|
pair("iterator()", "fun iterator(): jet.Iterator<E>"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Collection", "MutableCollection",
|
put(b, "java.util.Collection", "MutableCollection",
|
||||||
pair("add(E)", "fun add(e : E) : jet.Boolean"),
|
pair("add(E)", "fun add(e: E): jet.Boolean"),
|
||||||
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c : jet.Collection<E>) : jet.Boolean"),
|
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c: jet.Collection<E>): jet.Boolean"),
|
||||||
pair("clear()", "fun clear() : jet.Unit"),
|
pair("clear()", "fun clear(): jet.Unit"),
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.MutableIterator<E>"),
|
pair("iterator()", "fun iterator(): jet.MutableIterator<E>"),
|
||||||
pair("remove(java.lang.Object)", "fun remove(o : jet.Any?) : jet.Boolean"),
|
pair("remove(java.lang.Object)", "fun remove(o: jet.Any?): jet.Boolean"),
|
||||||
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.List", "List",
|
put(b, "java.util.List", "List",
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("get(int)", "fun get(index : jet.Int) : E"),
|
pair("get(int)", "fun get(index: jet.Int): E"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("indexOf(java.lang.Object)", "fun indexOf(o : jet.Any?) : jet.Int"),
|
pair("indexOf(java.lang.Object)", "fun indexOf(o: jet.Any?): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.Iterator<E>"),
|
pair("iterator()", "fun iterator(): jet.Iterator<E>"),
|
||||||
pair("lastIndexOf(java.lang.Object)", "fun lastIndexOf(o : jet.Any?) : jet.Int"),
|
pair("lastIndexOf(java.lang.Object)", "fun lastIndexOf(o: jet.Any?): jet.Int"),
|
||||||
pair("listIterator()", "fun listIterator() : jet.ListIterator<E>"),
|
pair("listIterator()", "fun listIterator(): jet.ListIterator<E>"),
|
||||||
pair("listIterator(int)", "fun listIterator(index : jet.Int) : jet.ListIterator<E>"),
|
pair("listIterator(int)", "fun listIterator(index: jet.Int): jet.ListIterator<E>"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("subList(int, int)", "fun subList(fromIndex : jet.Int, toIndex : jet.Int) : jet.List<E>"),
|
pair("subList(int, int)", "fun subList(fromIndex: jet.Int, toIndex: jet.Int): jet.List<E>"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.List", "MutableList",
|
put(b, "java.util.List", "MutableList",
|
||||||
pair("add(E)", "fun add(e : E) : jet.Boolean"),
|
pair("add(E)", "fun add(e: E): jet.Boolean"),
|
||||||
pair("add(int, E)", "fun add(index : jet.Int, element : E) : jet.Unit"),
|
pair("add(int, E)", "fun add(index: jet.Int, element: E): jet.Unit"),
|
||||||
pair("addAll(int, java.util.Collection<? extends E>)", "fun addAll(index : jet.Int, c : jet.Collection<E>) : jet.Boolean"),
|
pair("addAll(int, java.util.Collection<? extends E>)", "fun addAll(index: jet.Int, c: jet.Collection<E>): jet.Boolean"),
|
||||||
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c : jet.Collection<E>) : jet.Boolean"),
|
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c: jet.Collection<E>): jet.Boolean"),
|
||||||
pair("clear()", "fun clear() : jet.Unit"),
|
pair("clear()", "fun clear(): jet.Unit"),
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("get(int)", "fun get(index : jet.Int) : E"),
|
pair("get(int)", "fun get(index: jet.Int): E"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("indexOf(java.lang.Object)", "fun indexOf(o : jet.Any?) : jet.Int"),
|
pair("indexOf(java.lang.Object)", "fun indexOf(o: jet.Any?): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.Iterator<E>"),
|
pair("iterator()", "fun iterator(): jet.Iterator<E>"),
|
||||||
pair("lastIndexOf(java.lang.Object)", "fun lastIndexOf(o : jet.Any?) : jet.Int"),
|
pair("lastIndexOf(java.lang.Object)", "fun lastIndexOf(o: jet.Any?): jet.Int"),
|
||||||
pair("listIterator()", "fun listIterator() : jet.MutableListIterator<E>"),
|
pair("listIterator()", "fun listIterator(): jet.MutableListIterator<E>"),
|
||||||
pair("listIterator(int)", "fun listIterator(index : jet.Int) : jet.MutableListIterator<E>"),
|
pair("listIterator(int)", "fun listIterator(index: jet.Int): jet.MutableListIterator<E>"),
|
||||||
pair("remove(int)", "fun remove(index : jet.Int) : E"),
|
pair("remove(int)", "fun remove(index: jet.Int): E"),
|
||||||
pair("remove(java.lang.Object)", "fun remove(o : jet.Any?) : jet.Boolean"),
|
pair("remove(java.lang.Object)", "fun remove(o: jet.Any?): jet.Boolean"),
|
||||||
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("set(int, E)", "fun set(index : jet.Int, element : E) : E"),
|
pair("set(int, E)", "fun set(index: jet.Int, element: E): E"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("subList(int, int)", "fun subList(fromIndex : jet.Int, toIndex : jet.Int) : jet.MutableList<E>"),
|
pair("subList(int, int)", "fun subList(fromIndex: jet.Int, toIndex: jet.Int): jet.MutableList<E>"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Set", "Set",
|
put(b, "java.util.Set", "Set",
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.Iterator<E>"),
|
pair("iterator()", "fun iterator(): jet.Iterator<E>"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Set", "MutableSet",
|
put(b, "java.util.Set", "MutableSet",
|
||||||
pair("add(E)", "fun add(e : E) : jet.Boolean"),
|
pair("add(E)", "fun add(e: E): jet.Boolean"),
|
||||||
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c : jet.Collection<E>) : jet.Boolean"),
|
pair("addAll(java.util.Collection<? extends E>)", "fun addAll(c: jet.Collection<E>): jet.Boolean"),
|
||||||
pair("clear()", "fun clear() : jet.Unit"),
|
pair("clear()", "fun clear(): jet.Unit"),
|
||||||
pair("contains(java.lang.Object)", "fun contains(o : jet.Any?) : jet.Boolean"),
|
pair("contains(java.lang.Object)", "fun contains(o: jet.Any?): jet.Boolean"),
|
||||||
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("containsAll(java.util.Collection<?>)", "fun containsAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("iterator()", "fun iterator() : jet.MutableIterator<E>"),
|
pair("iterator()", "fun iterator(): jet.MutableIterator<E>"),
|
||||||
pair("remove(java.lang.Object)", "fun remove(o : jet.Any?) : jet.Boolean"),
|
pair("remove(java.lang.Object)", "fun remove(o: jet.Any?): jet.Boolean"),
|
||||||
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("removeAll(java.util.Collection<?>)", "fun removeAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c : jet.Collection<jet.Any?>) : jet.Boolean"),
|
pair("retainAll(java.util.Collection<?>)", "fun retainAll(c: jet.Collection<jet.Any?>): jet.Boolean"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("toArray()", "fun toArray() : jet.Array<jet.Any?>"),
|
pair("toArray()", "fun toArray(): jet.Array<jet.Any?>"),
|
||||||
pair("toArray(T[])", "fun <T> toArray(a : jet.Array<out T>) : jet.Array<T>")
|
pair("toArray(T[])", "fun <T> toArray(a: jet.Array<out T>): jet.Array<T>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Map", "Map",
|
put(b, "java.util.Map", "Map",
|
||||||
pair("containsKey(java.lang.Object)", "fun containsKey(key : jet.Any?) : jet.Boolean"),
|
pair("containsKey(java.lang.Object)", "fun containsKey(key: jet.Any?): jet.Boolean"),
|
||||||
pair("containsValue(java.lang.Object)", "fun containsValue(value : jet.Any?) : jet.Boolean"),
|
pair("containsValue(java.lang.Object)", "fun containsValue(value: jet.Any?): jet.Boolean"),
|
||||||
pair("entrySet()", "fun entrySet() : jet.Set<jet.Map.Entry<K, V>>"),
|
pair("entrySet()", "fun entrySet(): jet.Set<jet.Map.Entry<K, V>>"),
|
||||||
pair("get(java.lang.Object)", "fun get(key : jet.Any?) : V?"),
|
pair("get(java.lang.Object)", "fun get(key: jet.Any?): V?"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("keySet()", "fun keySet() : jet.Set<K>"),
|
pair("keySet()", "fun keySet(): jet.Set<K>"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("values()", "fun values() : jet.Collection<V>")
|
pair("values()", "fun values(): jet.Collection<V>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Map", "MutableMap",
|
put(b, "java.util.Map", "MutableMap",
|
||||||
pair("clear()", "fun clear() : jet.Unit"),
|
pair("clear()", "fun clear(): jet.Unit"),
|
||||||
pair("containsKey(java.lang.Object)", "fun containsKey(key : jet.Any?) : jet.Boolean"),
|
pair("containsKey(java.lang.Object)", "fun containsKey(key: jet.Any?): jet.Boolean"),
|
||||||
pair("containsValue(java.lang.Object)", "fun containsValue(value : jet.Any?) : jet.Boolean"),
|
pair("containsValue(java.lang.Object)", "fun containsValue(value: jet.Any?): jet.Boolean"),
|
||||||
pair("entrySet()", "fun entrySet() : jet.MutableSet<jet.MutableMap.MutableEntry<K, V>>"),
|
pair("entrySet()", "fun entrySet(): jet.MutableSet<jet.MutableMap.MutableEntry<K, V>>"),
|
||||||
pair("get(java.lang.Object)", "fun get(key : jet.Any?) : V?"),
|
pair("get(java.lang.Object)", "fun get(key: jet.Any?): V?"),
|
||||||
pair("isEmpty()", "fun isEmpty() : jet.Boolean"),
|
pair("isEmpty()", "fun isEmpty(): jet.Boolean"),
|
||||||
pair("keySet()", "fun keySet() : jet.MutableSet<K>"),
|
pair("keySet()", "fun keySet(): jet.MutableSet<K>"),
|
||||||
pair("put(K, V)", "fun put(key : K, value : V) : V?"),
|
pair("put(K, V)", "fun put(key: K, value: V): V?"),
|
||||||
pair("putAll(java.util.Map<? extends K,? extends V>)", "fun putAll(m : jet.Map<out K, V>) : jet.Unit"),
|
pair("putAll(java.util.Map<? extends K,? extends V>)", "fun putAll(m: jet.Map<out K, V>): jet.Unit"),
|
||||||
pair("remove(java.lang.Object)", "fun remove(key : jet.Any?) : V?"),
|
pair("remove(java.lang.Object)", "fun remove(key: jet.Any?): V?"),
|
||||||
pair("size()", "fun size() : jet.Int"),
|
pair("size()", "fun size(): jet.Int"),
|
||||||
pair("values()", "fun values() : jet.MutableCollection<V>")
|
pair("values()", "fun values(): jet.MutableCollection<V>")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Map.Entry", "Map.Entry",
|
put(b, "java.util.Map.Entry", "Map.Entry",
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("getKey()", "fun getKey() : K"),
|
pair("getKey()", "fun getKey(): K"),
|
||||||
pair("getValue()", "fun getValue() : V"),
|
pair("getValue()", "fun getValue(): V"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int")
|
pair("hashCode()", "fun hashCode(): jet.Int")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.Map.Entry", "MutableMap.MutableEntry",
|
put(b, "java.util.Map.Entry", "MutableMap.MutableEntry",
|
||||||
pair("equals(java.lang.Object)", "fun equals(other : jet.Any?) : jet.Boolean"),
|
pair("equals(java.lang.Object)", "fun equals(other: jet.Any?): jet.Boolean"),
|
||||||
pair("getKey()", "fun getKey() : K"),
|
pair("getKey()", "fun getKey(): K"),
|
||||||
pair("getValue()", "fun getValue() : V"),
|
pair("getValue()", "fun getValue(): V"),
|
||||||
pair("hashCode()", "fun hashCode() : jet.Int"),
|
pair("hashCode()", "fun hashCode(): jet.Int"),
|
||||||
pair("setValue(V)", "fun setValue(value : V) : V")
|
pair("setValue(V)", "fun setValue(value: V): V")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.ListIterator", "ListIterator",
|
put(b, "java.util.ListIterator", "ListIterator",
|
||||||
pair("hasNext()", "fun hasNext() : jet.Boolean"),
|
pair("hasNext()", "fun hasNext(): jet.Boolean"),
|
||||||
pair("hasPrevious()", "fun hasPrevious() : jet.Boolean"),
|
pair("hasPrevious()", "fun hasPrevious(): jet.Boolean"),
|
||||||
pair("next()", "fun next() : T"),
|
pair("next()", "fun next(): T"),
|
||||||
pair("nextIndex()", "fun nextIndex() : jet.Int"),
|
pair("nextIndex()", "fun nextIndex(): jet.Int"),
|
||||||
pair("previous()", "fun previous() : T"),
|
pair("previous()", "fun previous(): T"),
|
||||||
pair("previousIndex()", "fun previousIndex() : jet.Int")
|
pair("previousIndex()", "fun previousIndex(): jet.Int")
|
||||||
);
|
);
|
||||||
|
|
||||||
put(b, "java.util.ListIterator", "MutableListIterator",
|
put(b, "java.util.ListIterator", "MutableListIterator",
|
||||||
pair("add(E)", "fun add(e : T) : jet.Unit"),
|
pair("add(E)", "fun add(e: T): jet.Unit"),
|
||||||
pair("hasNext()", "fun hasNext() : jet.Boolean"),
|
pair("hasNext()", "fun hasNext(): jet.Boolean"),
|
||||||
pair("hasPrevious()", "fun hasPrevious() : jet.Boolean"),
|
pair("hasPrevious()", "fun hasPrevious(): jet.Boolean"),
|
||||||
pair("next()", "fun next() : T"),
|
pair("next()", "fun next(): T"),
|
||||||
pair("nextIndex()", "fun nextIndex() : jet.Int"),
|
pair("nextIndex()", "fun nextIndex(): jet.Int"),
|
||||||
pair("previous()", "fun previous() : T"),
|
pair("previous()", "fun previous(): T"),
|
||||||
pair("previousIndex()", "fun previousIndex() : jet.Int"),
|
pair("previousIndex()", "fun previousIndex(): jet.Int"),
|
||||||
pair("remove()", "fun remove() : jet.Unit"),
|
pair("remove()", "fun remove(): jet.Unit"),
|
||||||
pair("set(E)", "fun set(e : T) : jet.Unit")
|
pair("set(E)", "fun set(e: T): jet.Unit")
|
||||||
);
|
);
|
||||||
|
|
||||||
map = b.build();
|
map = b.build();
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package org.jetbrains.jet.renderer;
|
package org.jetbrains.jet.renderer;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||||
@@ -27,6 +26,22 @@ import org.jetbrains.jet.lang.types.JetType;
|
|||||||
public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
||||||
DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder().setWithDefinedIn(false).build();
|
DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder().setWithDefinedIn(false).build();
|
||||||
|
|
||||||
|
DescriptorRenderer SOURCE_CODE = new DescriptorRendererBuilder()
|
||||||
|
.setNormalizedVisibilities(true)
|
||||||
|
.setWithDefinedIn(false)
|
||||||
|
.setShortNames(false)
|
||||||
|
.setShowInternalKeyword(false)
|
||||||
|
.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OVERRIDE)
|
||||||
|
.setUnitReturnType(false).build();
|
||||||
|
|
||||||
|
DescriptorRenderer SOURCE_CODE_SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder()
|
||||||
|
.setNormalizedVisibilities(true)
|
||||||
|
.setWithDefinedIn(false)
|
||||||
|
.setShortNames(true)
|
||||||
|
.setShowInternalKeyword(false)
|
||||||
|
.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OVERRIDE)
|
||||||
|
.setUnitReturnType(false).build();
|
||||||
|
|
||||||
DescriptorRenderer COMPACT = new DescriptorRendererBuilder()
|
DescriptorRenderer COMPACT = new DescriptorRendererBuilder()
|
||||||
.setWithDefinedIn(false)
|
.setWithDefinedIn(false)
|
||||||
.setModifiers(false).build();
|
.setModifiers(false).build();
|
||||||
@@ -58,6 +73,10 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
|||||||
PLAIN, HTML
|
PLAIN, HTML
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum OverrideRenderingPolicy {
|
||||||
|
RENDER_OVERRIDE, RENDER_OPEN, RENDER_OPEN_OVERRIDE
|
||||||
|
}
|
||||||
|
|
||||||
/** @see DefaultValueParameterHandler */
|
/** @see DefaultValueParameterHandler */
|
||||||
interface ValueParametersHandler {
|
interface ValueParametersHandler {
|
||||||
void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder);
|
void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder);
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class DescriptorRendererBuilder {
|
public class DescriptorRendererBuilder {
|
||||||
private boolean shortNames = false;
|
private boolean shortNames = false;
|
||||||
@@ -31,6 +30,11 @@ public class DescriptorRendererBuilder {
|
|||||||
private boolean debugMode = false;
|
private boolean debugMode = false;
|
||||||
private boolean classWithPrimaryConstructor = false;
|
private boolean classWithPrimaryConstructor = false;
|
||||||
private boolean verbose = false;
|
private boolean verbose = false;
|
||||||
|
private boolean unitReturnType = true;
|
||||||
|
private boolean normalizedVisibilities = false;
|
||||||
|
private boolean showInternalKeyword = true;
|
||||||
|
@NotNull
|
||||||
|
private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN;
|
||||||
@NotNull
|
@NotNull
|
||||||
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler();
|
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler();
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -76,6 +80,26 @@ public class DescriptorRendererBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DescriptorRendererBuilder setUnitReturnType(boolean unitReturnType) {
|
||||||
|
this.unitReturnType = unitReturnType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DescriptorRendererBuilder setNormalizedVisibilities(boolean normalizedVisibilities) {
|
||||||
|
this.normalizedVisibilities = normalizedVisibilities;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DescriptorRendererBuilder setShowInternalKeyword(boolean showInternalKeyword) {
|
||||||
|
this.showInternalKeyword = showInternalKeyword;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DescriptorRendererBuilder setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy) {
|
||||||
|
this.overrideRenderingPolicy = overrideRenderingPolicy;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DescriptorRendererBuilder setValueParametersHandler(@NotNull DescriptorRenderer.ValueParametersHandler valueParametersHandler) {
|
public DescriptorRendererBuilder setValueParametersHandler(@NotNull DescriptorRenderer.ValueParametersHandler valueParametersHandler) {
|
||||||
this.valueParametersHandler = valueParametersHandler;
|
this.valueParametersHandler = valueParametersHandler;
|
||||||
return this;
|
return this;
|
||||||
@@ -93,6 +117,8 @@ public class DescriptorRendererBuilder {
|
|||||||
|
|
||||||
public DescriptorRenderer build() {
|
public DescriptorRenderer build() {
|
||||||
return new DescriptorRendererImpl(shortNames, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor,
|
return new DescriptorRendererImpl(shortNames, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor,
|
||||||
verbose, valueParametersHandler, textFormat, excludedAnnotationClasses);
|
verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, overrideRenderingPolicy,
|
||||||
|
valueParametersHandler, textFormat, excludedAnnotationClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,11 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
private final boolean debugMode;
|
private final boolean debugMode;
|
||||||
private final boolean classWithPrimaryConstructor;
|
private final boolean classWithPrimaryConstructor;
|
||||||
private final boolean verbose;
|
private final boolean verbose;
|
||||||
|
private final boolean unitReturnType;
|
||||||
|
private final boolean normalizedVisibilities;
|
||||||
|
private final boolean showInternalKeyword;
|
||||||
|
@NotNull
|
||||||
|
private final OverrideRenderingPolicy overrideRenderingPolicy;
|
||||||
@NotNull
|
@NotNull
|
||||||
private final ValueParametersHandler handler;
|
private final ValueParametersHandler handler;
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -70,6 +75,10 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
boolean debugMode,
|
boolean debugMode,
|
||||||
boolean classWithPrimaryConstructor,
|
boolean classWithPrimaryConstructor,
|
||||||
boolean verbose,
|
boolean verbose,
|
||||||
|
boolean unitReturnType,
|
||||||
|
boolean normalizedVisibilities,
|
||||||
|
boolean showInternalKeyword,
|
||||||
|
@NotNull OverrideRenderingPolicy overrideRenderingPolicy,
|
||||||
@NotNull ValueParametersHandler handler,
|
@NotNull ValueParametersHandler handler,
|
||||||
@NotNull TextFormat textFormat,
|
@NotNull TextFormat textFormat,
|
||||||
@NotNull Collection<FqName> excludedAnnotationClasses
|
@NotNull Collection<FqName> excludedAnnotationClasses
|
||||||
@@ -81,6 +90,10 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
this.classWithPrimaryConstructor = classWithPrimaryConstructor;
|
this.classWithPrimaryConstructor = classWithPrimaryConstructor;
|
||||||
this.verbose = verbose;
|
this.verbose = verbose;
|
||||||
|
this.unitReturnType = unitReturnType;
|
||||||
|
this.normalizedVisibilities = normalizedVisibilities;
|
||||||
|
this.showInternalKeyword = showInternalKeyword;
|
||||||
|
this.overrideRenderingPolicy = overrideRenderingPolicy;
|
||||||
this.debugMode = debugMode;
|
this.debugMode = debugMode;
|
||||||
this.textFormat = textFormat;
|
this.textFormat = textFormat;
|
||||||
this.excludedAnnotationClasses = Sets.newHashSet(excludedAnnotationClasses);
|
this.excludedAnnotationClasses = Sets.newHashSet(excludedAnnotationClasses);
|
||||||
@@ -307,6 +320,10 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
|
|
||||||
private void renderVisibility(@NotNull Visibility visibility, @NotNull StringBuilder builder) {
|
private void renderVisibility(@NotNull Visibility visibility, @NotNull StringBuilder builder) {
|
||||||
if (!modifiers) return;
|
if (!modifiers) return;
|
||||||
|
if (normalizedVisibilities) {
|
||||||
|
visibility = visibility.normalize();
|
||||||
|
}
|
||||||
|
if (!showInternalKeyword && visibility == Visibilities.INTERNAL) return;
|
||||||
builder.append(renderKeyword(visibility.toString())).append(" ");
|
builder.append(renderKeyword(visibility.toString())).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,19 +342,32 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
|
|
||||||
private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) {
|
private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) {
|
||||||
if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) {
|
if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) {
|
||||||
|
if (overridesSomething(callable)
|
||||||
|
&& overrideRenderingPolicy == OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||||
|
&& callable.getModality() == Modality.OPEN) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
renderModality(callable.getModality(), builder);
|
renderModality(callable.getModality(), builder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean overridesSomething(CallableMemberDescriptor callable) {
|
||||||
|
return !callable.getOverriddenDescriptors().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
private void renderOverrideAndMemberKind(@NotNull CallableMemberDescriptor callableMember, @NotNull StringBuilder builder) {
|
private void renderOverrideAndMemberKind(@NotNull CallableMemberDescriptor callableMember, @NotNull StringBuilder builder) {
|
||||||
if (verbose) {
|
if (!modifiers) return;
|
||||||
if (!callableMember.getOverriddenDescriptors().isEmpty()) {
|
if (overridesSomething(callableMember)) {
|
||||||
builder.append("override /*").append(callableMember.getOverriddenDescriptors().size()).append("*/ ");
|
if (overrideRenderingPolicy != OverrideRenderingPolicy.RENDER_OPEN) {
|
||||||
}
|
builder.append("override ");
|
||||||
if (callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) {
|
if (verbose) {
|
||||||
builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ ");
|
builder.append("/*").append(callableMember.getOverriddenDescriptors().size()).append("*/ ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (verbose && callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) {
|
||||||
|
builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -371,7 +401,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
builder.append(renderKeyword(variance)).append(" ");
|
builder.append(renderKeyword(variance)).append(" ");
|
||||||
}
|
}
|
||||||
renderName(typeParameter, builder);
|
renderName(typeParameter, builder);
|
||||||
if (typeParameter.getUpperBounds().size() == 1) {
|
int upperBoundsCount = typeParameter.getUpperBounds().size();
|
||||||
|
if ((upperBoundsCount > 1 && !topLevel) || upperBoundsCount == 1) {
|
||||||
JetType upperBound = typeParameter.getUpperBounds().iterator().next();
|
JetType upperBound = typeParameter.getUpperBounds().iterator().next();
|
||||||
if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) {
|
if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) {
|
||||||
builder.append(" : ").append(renderType(upperBound));
|
builder.append(" : ").append(renderType(upperBound));
|
||||||
@@ -443,7 +474,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
renderName(function, builder);
|
renderName(function, builder);
|
||||||
renderValueParameters(function, builder);
|
renderValueParameters(function, builder);
|
||||||
JetType returnType = function.getReturnType();
|
JetType returnType = function.getReturnType();
|
||||||
builder.append(" : ").append(returnType == null ? "[NULL]" : escape(renderType(returnType)));
|
if (unitReturnType || !KotlinBuiltIns.getInstance().isUnit(returnType)) {
|
||||||
|
builder.append(": ").append(returnType == null ? "[NULL]" : escape(renderType(returnType)));
|
||||||
|
}
|
||||||
renderWhereSuffix(function.getTypeParameters(), builder);
|
renderWhereSuffix(function.getTypeParameters(), builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,6 +491,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
|
|
||||||
renderTypeParameters(classDescriptor.getTypeConstructor().getParameters(), builder, false);
|
renderTypeParameters(classDescriptor.getTypeConstructor().getParameters(), builder, false);
|
||||||
renderValueParameters(constructor, builder);
|
renderValueParameters(constructor, builder);
|
||||||
|
renderWhereSuffix(constructor.getTypeParameters(), builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderWhereSuffix(@NotNull List<TypeParameterDescriptor> typeParameters, @NotNull StringBuilder builder) {
|
private void renderWhereSuffix(@NotNull List<TypeParameterDescriptor> typeParameters, @NotNull StringBuilder builder) {
|
||||||
@@ -465,8 +499,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
|
|
||||||
for (TypeParameterDescriptor typeParameter : typeParameters) {
|
for (TypeParameterDescriptor typeParameter : typeParameters) {
|
||||||
if (typeParameter.getUpperBounds().size() > 1) {
|
if (typeParameter.getUpperBounds().size() > 1) {
|
||||||
|
boolean first = true;
|
||||||
for (JetType upperBound : typeParameter.getUpperBounds()) {
|
for (JetType upperBound : typeParameter.getUpperBounds()) {
|
||||||
upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound)));
|
// first parameter is rendered by renderTypeParameter:
|
||||||
|
if (!first) {
|
||||||
|
upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound)));
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -531,7 +570,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderName(variable, builder);
|
renderName(variable, builder);
|
||||||
builder.append(" : ").append(escape(renderType(typeToRender)));
|
builder.append(": ").append(escape(renderType(typeToRender)));
|
||||||
|
|
||||||
if (verbose && varargElementType != null) {
|
if (verbose && varargElementType != null) {
|
||||||
builder.append(" /*").append(escape(renderType(realType))).append("*/");
|
builder.append(" /*").append(escape(renderType(realType))).append("*/");
|
||||||
@@ -555,7 +594,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
builder.append(escape(renderType(receiver.getType()))).append(".");
|
builder.append(escape(renderType(receiver.getType()))).append(".");
|
||||||
}
|
}
|
||||||
renderName(property, builder);
|
renderName(property, builder);
|
||||||
builder.append(" : ").append(escape(renderType(property.getType())));
|
builder.append(": ").append(escape(renderType(property.getType())));
|
||||||
|
|
||||||
renderWhereSuffix(property.getTypeParameters(), builder);
|
renderWhereSuffix(property.getTypeParameters(), builder);
|
||||||
}
|
}
|
||||||
@@ -709,4 +748,4 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public class NamespaceComparator {
|
|||||||
private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder()
|
private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder()
|
||||||
.setWithDefinedIn(false)
|
.setWithDefinedIn(false)
|
||||||
.setExcludedAnnotationClasses(Arrays.asList(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)))
|
.setExcludedAnnotationClasses(Arrays.asList(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)))
|
||||||
|
.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE)
|
||||||
.setVerbose(true).build();
|
.setVerbose(true).build();
|
||||||
|
|
||||||
private static final ImmutableSet<String> JAVA_OBJECT_METHOD_NAMES = ImmutableSet.of(
|
private static final ImmutableSet<String> JAVA_OBJECT_METHOD_NAMES = ImmutableSet.of(
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.psi.JetExpression;
|
|||||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||||
import org.jetbrains.jet.plugin.JetBundle;
|
import org.jetbrains.jet.plugin.JetBundle;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.OverrideUtil;
|
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.ReferenceToClassesShortening;
|
import org.jetbrains.jet.plugin.codeInsight.ReferenceToClassesShortening;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -112,8 +112,7 @@ public class JetChangeFunctionSignatureAction implements QuestionAction {
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String getTextFor(FunctionDescriptor aValue) {
|
public String getTextFor(FunctionDescriptor aValue) {
|
||||||
return OverrideUtil.createOverridenFunctionSignatureStringFromDescriptor(
|
return CodeInsightUtils.createFunctionSignatureStringFromDescriptor(
|
||||||
project,
|
|
||||||
aValue,
|
aValue,
|
||||||
/* shortTypeNames = */ true);
|
/* shortTypeNames = */ true);
|
||||||
}
|
}
|
||||||
@@ -121,8 +120,7 @@ public class JetChangeFunctionSignatureAction implements QuestionAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void changeSignature(final JetNamedFunction element, final Project project, FunctionDescriptor signature) {
|
private static void changeSignature(final JetNamedFunction element, final Project project, FunctionDescriptor signature) {
|
||||||
final String signatureString = OverrideUtil.createOverridenFunctionSignatureStringFromDescriptor(
|
final String signatureString = CodeInsightUtils.createFunctionSignatureStringFromDescriptor(
|
||||||
project,
|
|
||||||
signature,
|
signature,
|
||||||
/* shortTypeNames = */ false);
|
/* shortTypeNames = */ false);
|
||||||
|
|
||||||
|
|||||||
@@ -12,12 +12,14 @@ import com.intellij.psi.util.PsiUtilCore;
|
|||||||
import com.intellij.refactoring.util.CommonRefactoringUtil;
|
import com.intellij.refactoring.util.CommonRefactoringUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetBlockExpression;
|
import org.jetbrains.jet.lang.psi.JetBlockExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetElement;
|
import org.jetbrains.jet.lang.psi.JetElement;
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -167,4 +169,13 @@ public class CodeInsightUtils {
|
|||||||
|
|
||||||
private CodeInsightUtils() {
|
private CodeInsightUtils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static String createFunctionSignatureStringFromDescriptor(
|
||||||
|
@NotNull FunctionDescriptor descriptor,
|
||||||
|
boolean shortTypeNames
|
||||||
|
) {
|
||||||
|
DescriptorRenderer renderer = shortTypeNames ? DescriptorRenderer.SOURCE_CODE_SHORT_NAMES_IN_TYPES : DescriptorRenderer.SOURCE_CODE;
|
||||||
|
return renderer.render(descriptor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ import com.intellij.psi.PsiFile;
|
|||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
|
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
|
||||||
|
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -118,18 +118,77 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
|
|||||||
for (DescriptorClassMember selectedElement : selectedElements) {
|
for (DescriptorClassMember selectedElement : selectedElements) {
|
||||||
DeclarationDescriptor descriptor = selectedElement.getDescriptor();
|
DeclarationDescriptor descriptor = selectedElement.getDescriptor();
|
||||||
if (descriptor instanceof SimpleFunctionDescriptor) {
|
if (descriptor instanceof SimpleFunctionDescriptor) {
|
||||||
overridingMembers.add(OverrideUtil.createOverridenFunctionElementFromDescriptor(file.getProject(),
|
overridingMembers.add(overrideFunction(file.getProject(),
|
||||||
(SimpleFunctionDescriptor) descriptor, /* shortTypeNames = */
|
(SimpleFunctionDescriptor) descriptor));
|
||||||
false));
|
|
||||||
}
|
}
|
||||||
else if (descriptor instanceof PropertyDescriptor) {
|
else if (descriptor instanceof PropertyDescriptor) {
|
||||||
overridingMembers.add(
|
overridingMembers.add(
|
||||||
OverrideUtil.createOverridenPropertyElementFromDescriptor(file.getProject(), (PropertyDescriptor) descriptor));
|
overrideProperty(file.getProject(), (PropertyDescriptor) descriptor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return overridingMembers;
|
return overridingMembers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static JetElement overrideProperty(@NotNull Project project, @NotNull PropertyDescriptor descriptor) {
|
||||||
|
PropertyDescriptor newDescriptor = (PropertyDescriptor) descriptor.copy(
|
||||||
|
descriptor.getContainingDeclaration(),
|
||||||
|
Modality.OPEN,
|
||||||
|
descriptor.getVisibility(),
|
||||||
|
descriptor.getKind(),
|
||||||
|
/* copyOverrides = */ true);
|
||||||
|
newDescriptor.addOverriddenDescriptor(descriptor);
|
||||||
|
|
||||||
|
StringBuilder bodyBuilder = new StringBuilder();
|
||||||
|
String initializer = CodeInsightUtils.defaultInitializer(descriptor.getType());
|
||||||
|
if (initializer != null) {
|
||||||
|
bodyBuilder.append(" = ").append(initializer);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
bodyBuilder.append(" = ?");
|
||||||
|
}
|
||||||
|
return JetPsiFactory.createProperty(project, DescriptorRenderer.SOURCE_CODE.render(newDescriptor) + bodyBuilder.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static JetNamedFunction overrideFunction(@NotNull Project project, @NotNull FunctionDescriptor descriptor) {
|
||||||
|
FunctionDescriptor newDescriptor = descriptor.copy(
|
||||||
|
descriptor.getContainingDeclaration(),
|
||||||
|
Modality.OPEN,
|
||||||
|
descriptor.getVisibility(),
|
||||||
|
descriptor.getKind(),
|
||||||
|
/* copyOverrides = */ true);
|
||||||
|
newDescriptor.addOverriddenDescriptor(descriptor);
|
||||||
|
|
||||||
|
boolean isAbstractFun = descriptor.getModality() == Modality.ABSTRACT;
|
||||||
|
StringBuilder delegationBuilder = new StringBuilder();
|
||||||
|
if (isAbstractFun) {
|
||||||
|
delegationBuilder.append("throw UnsupportedOperationException()");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
delegationBuilder.append("super<").append(descriptor.getContainingDeclaration().getName());
|
||||||
|
delegationBuilder.append(">.").append(descriptor.getName()).append("(");
|
||||||
|
}
|
||||||
|
boolean first = true;
|
||||||
|
if (!isAbstractFun) {
|
||||||
|
for (ValueParameterDescriptor parameterDescriptor : descriptor.getValueParameters()) {
|
||||||
|
if (!first) {
|
||||||
|
delegationBuilder.append(", ");
|
||||||
|
}
|
||||||
|
first = false;
|
||||||
|
delegationBuilder.append(parameterDescriptor.getName());
|
||||||
|
}
|
||||||
|
delegationBuilder.append(")");
|
||||||
|
}
|
||||||
|
JetType returnType = descriptor.getReturnType();
|
||||||
|
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
|
||||||
|
|
||||||
|
boolean returnsNotUnit = returnType != null && !builtIns.getUnitType().equals(returnType);
|
||||||
|
String body = "{" + (returnsNotUnit && !isAbstractFun ? "return " : "") + delegationBuilder.toString() + "}";
|
||||||
|
|
||||||
|
return JetPsiFactory.createFunction(project, DescriptorRenderer.SOURCE_CODE.render(newDescriptor) + body);
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Set<CallableMemberDescriptor> collectMethodsToGenerate(@NotNull JetClassOrObject classOrObject, BindingContext bindingContext) {
|
public Set<CallableMemberDescriptor> collectMethodsToGenerate(@NotNull JetClassOrObject classOrObject, BindingContext bindingContext) {
|
||||||
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, classOrObject);
|
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, classOrObject);
|
||||||
|
|||||||
@@ -1,184 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.plugin.codeInsight;
|
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetElement;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|
||||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class OverrideUtil {
|
|
||||||
|
|
||||||
private OverrideUtil() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetElement createOverridenPropertyElementFromDescriptor(@NotNull Project project, @NotNull PropertyDescriptor descriptor) {
|
|
||||||
StringBuilder bodyBuilder = new StringBuilder();
|
|
||||||
bodyBuilder.append(displayableVisibility(descriptor)).append("override ");
|
|
||||||
if (descriptor.isVar()) {
|
|
||||||
bodyBuilder.append("var ");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
bodyBuilder.append("val ");
|
|
||||||
}
|
|
||||||
|
|
||||||
addReceiverParameter(descriptor, bodyBuilder);
|
|
||||||
|
|
||||||
bodyBuilder.append(descriptor.getName()).append(" : ").append(
|
|
||||||
DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getType()));
|
|
||||||
String initializer = CodeInsightUtils.defaultInitializer(descriptor.getType());
|
|
||||||
if (initializer != null) {
|
|
||||||
bodyBuilder.append(" = ").append(initializer);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
bodyBuilder.append(" = ?");
|
|
||||||
}
|
|
||||||
return JetPsiFactory.createProperty(project, bodyBuilder.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String displayableVisibility(MemberDescriptor descriptor) {
|
|
||||||
Visibility visibility = descriptor.getVisibility().normalize();
|
|
||||||
return visibility != Visibilities.INTERNAL ? visibility.toString() + " ": "";
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String renderType(JetType type, boolean shortNames) {
|
|
||||||
if (shortNames) return DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(type);
|
|
||||||
else return DescriptorRenderer.TEXT.renderType(type);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void addReceiverParameter(CallableDescriptor descriptor, StringBuilder bodyBuilder) {
|
|
||||||
ReceiverParameterDescriptor receiverParameter = descriptor.getReceiverParameter();
|
|
||||||
if (receiverParameter != null) {
|
|
||||||
bodyBuilder.append(receiverParameter.getType()).append(".");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static String createOverridenFunctionSignatureStringFromDescriptor(
|
|
||||||
@NotNull Project project,
|
|
||||||
@NotNull FunctionDescriptor descriptor,
|
|
||||||
boolean shortTypeNames
|
|
||||||
) {
|
|
||||||
JetNamedFunction functionElement = createOverridenFunctionElementFromDescriptor(project, descriptor, shortTypeNames);
|
|
||||||
JetExpression bodyExpression = functionElement.getBodyExpression();
|
|
||||||
assert bodyExpression != null : "createOverridenFunctionElementFromDescriptor should always return function with body.";
|
|
||||||
bodyExpression.replace(JetPsiFactory.createWhiteSpace(project));
|
|
||||||
return functionElement.getText().trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetNamedFunction createOverridenFunctionElementFromDescriptor(
|
|
||||||
@NotNull Project project,
|
|
||||||
@NotNull FunctionDescriptor descriptor,
|
|
||||||
boolean shortNames
|
|
||||||
) {
|
|
||||||
StringBuilder bodyBuilder = new StringBuilder();
|
|
||||||
bodyBuilder.append(displayableVisibility(descriptor));
|
|
||||||
bodyBuilder.append("override fun ");
|
|
||||||
|
|
||||||
List<String> whereRestrictions = new ArrayList<String>();
|
|
||||||
if (!descriptor.getTypeParameters().isEmpty()) {
|
|
||||||
bodyBuilder.append("<");
|
|
||||||
boolean first = true;
|
|
||||||
for (TypeParameterDescriptor param : descriptor.getTypeParameters()) {
|
|
||||||
if (!first) {
|
|
||||||
bodyBuilder.append(", ");
|
|
||||||
}
|
|
||||||
|
|
||||||
bodyBuilder.append(param.getName());
|
|
||||||
Set<JetType> upperBounds = param.getUpperBounds();
|
|
||||||
if (!upperBounds.isEmpty()) {
|
|
||||||
boolean firstUpperBound = true;
|
|
||||||
for (JetType upperBound : upperBounds) {
|
|
||||||
String upperBoundText = ": " + renderType(upperBound, shortNames);
|
|
||||||
if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) {
|
|
||||||
if (firstUpperBound) {
|
|
||||||
bodyBuilder.append(upperBoundText);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
whereRestrictions.add(param.getName() + upperBoundText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
firstUpperBound = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
first = false;
|
|
||||||
}
|
|
||||||
bodyBuilder.append("> ");
|
|
||||||
}
|
|
||||||
|
|
||||||
addReceiverParameter(descriptor, bodyBuilder);
|
|
||||||
|
|
||||||
bodyBuilder.append(descriptor.getName()).append("(");
|
|
||||||
boolean isAbstractFun = descriptor.getModality() == Modality.ABSTRACT;
|
|
||||||
StringBuilder delegationBuilder = new StringBuilder();
|
|
||||||
if (isAbstractFun) {
|
|
||||||
delegationBuilder.append("throw UnsupportedOperationException()");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
delegationBuilder.append("super<").append(descriptor.getContainingDeclaration().getName());
|
|
||||||
delegationBuilder.append(">.").append(descriptor.getName()).append("(");
|
|
||||||
}
|
|
||||||
boolean first = true;
|
|
||||||
for (ValueParameterDescriptor parameterDescriptor : descriptor.getValueParameters()) {
|
|
||||||
if (!first) {
|
|
||||||
bodyBuilder.append(", ");
|
|
||||||
if (!isAbstractFun) {
|
|
||||||
delegationBuilder.append(", ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
first = false;
|
|
||||||
bodyBuilder.append(parameterDescriptor.getName());
|
|
||||||
bodyBuilder.append(": ");
|
|
||||||
bodyBuilder.append(renderType(parameterDescriptor.getType(), shortNames));
|
|
||||||
|
|
||||||
if (!isAbstractFun) {
|
|
||||||
delegationBuilder.append(parameterDescriptor.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bodyBuilder.append(")");
|
|
||||||
if (!isAbstractFun) {
|
|
||||||
delegationBuilder.append(")");
|
|
||||||
}
|
|
||||||
JetType returnType = descriptor.getReturnType();
|
|
||||||
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
|
|
||||||
|
|
||||||
boolean returnsNotUnit = returnType != null && !builtIns.getUnitType().equals(returnType);
|
|
||||||
if (returnsNotUnit) {
|
|
||||||
bodyBuilder.append(": ").append(renderType(returnType, shortNames));
|
|
||||||
}
|
|
||||||
if (!whereRestrictions.isEmpty()) {
|
|
||||||
bodyBuilder.append("\n").append("where ").append(StringUtil.join(whereRestrictions, ", "));
|
|
||||||
}
|
|
||||||
bodyBuilder.append("{").append(returnsNotUnit && !isAbstractFun ? "return " : "").append(delegationBuilder.toString()).append("}");
|
|
||||||
|
|
||||||
return JetPsiFactory.createFunction(project, bodyBuilder.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
|||||||
import org.jetbrains.jet.plugin.JetBundle;
|
import org.jetbrains.jet.plugin.JetBundle;
|
||||||
import org.jetbrains.jet.plugin.actions.JetChangeFunctionSignatureAction;
|
import org.jetbrains.jet.plugin.actions.JetChangeFunctionSignatureAction;
|
||||||
import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil;
|
import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheManagerUtil;
|
||||||
import org.jetbrains.jet.plugin.codeInsight.OverrideUtil;
|
import org.jetbrains.jet.plugin.codeInsight.CodeInsightUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction<JetNamedFunc
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private String getFunctionSignatureString(@NotNull FunctionDescriptor functionSignature, boolean shortTypeNames) {
|
private String getFunctionSignatureString(@NotNull FunctionDescriptor functionSignature, boolean shortTypeNames) {
|
||||||
return OverrideUtil.createOverridenFunctionSignatureStringFromDescriptor(
|
return CodeInsightUtils.createFunctionSignatureStringFromDescriptor(
|
||||||
element.getProject(), functionSignature, shortTypeNames);
|
functionSignature, shortTypeNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -136,7 +136,7 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction<JetNamedFunc
|
|||||||
matchParameters(MATCH_NAMES, superParameters, parameters, newParameters, matched, used);
|
matchParameters(MATCH_NAMES, superParameters, parameters, newParameters, matched, used);
|
||||||
matchParameters(MATCH_TYPES, superParameters, parameters, newParameters, matched, used);
|
matchParameters(MATCH_TYPES, superParameters, parameters, newParameters, matched, used);
|
||||||
|
|
||||||
return FunctionDescriptorUtil.replaceFunctionParameters(
|
FunctionDescriptor newFunction = FunctionDescriptorUtil.replaceFunctionParameters(
|
||||||
superFunction.copy(
|
superFunction.copy(
|
||||||
function.getContainingDeclaration(),
|
function.getContainingDeclaration(),
|
||||||
Modality.OPEN,
|
Modality.OPEN,
|
||||||
@@ -144,6 +144,8 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction<JetNamedFunc
|
|||||||
CallableMemberDescriptor.Kind.DELEGATION,
|
CallableMemberDescriptor.Kind.DELEGATION,
|
||||||
/* copyOverrides = */ true),
|
/* copyOverrides = */ true),
|
||||||
newParameters);
|
newParameters);
|
||||||
|
newFunction.addOverriddenDescriptor(superFunction);
|
||||||
|
return newFunction;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user