Java 8 rules for method overrides:

- report errors on implementing methods of Any in interfaces
- update testData

~~~

Java 8 override restrictions: interface can't implement a method of 'Any'
- update compiler sources
This commit is contained in:
Dmitry Petrov
2015-10-08 13:00:13 +03:00
parent 5d9ee7efee
commit 7e9e427d4c
36 changed files with 247 additions and 190 deletions
@@ -8,8 +8,8 @@ package foo
import java.util.ArrayList
import java.util.HashMap
interface Element {
fun render(builder: StringBuilder, indent: String)
abstract class Element {
abstract fun render(builder: StringBuilder, indent: String)
override fun toString(): String {
val builder = StringBuilder()
@@ -18,13 +18,13 @@ interface Element {
}
}
class TextElement(val text: String) : Element {
class TextElement(val text: String) : Element() {
override fun render(builder: StringBuilder, indent: String) {
builder.append("$indent$text\n")
}
}
abstract class Tag(val name: String) : Element {
abstract class Tag(val name: String) : Element() {
val children = ArrayList<Element>()
val attributes = HashMap<String, String>()
@@ -8,8 +8,8 @@ package foo
import java.util.ArrayList
import java.util.HashMap
interface Element {
fun render(builder: StringBuilder, indent: String)
abstract class Element {
abstract fun render(builder: StringBuilder, indent: String)
override fun toString(): String {
val builder = StringBuilder()
@@ -18,13 +18,13 @@ interface Element {
}
}
class TextElement(val text: String) : Element {
class TextElement(val text: String) : Element() {
override fun render(builder: StringBuilder, indent: String) {
builder.append("$indent$text\n")
}
}
abstract class Tag(val name: String) : Element {
abstract class Tag(val name: String) : Element() {
val children = ArrayList<Element>()
val attributes = HashMap<String, String>()