MYSTERRIA3.0

Scala и Idea - косяки разбора

Вот такой вот класс будет благополучно пропущен аудитом Idea:

class Cat(foo: String = "bar") {
    var tailLength: Int = 0
    var name = ""

    def this(tailLength: Int) {
        this()
        this.tailLength = tailLength

    }

    def this(tailLength: Int, name: String) {
        this()
        this.tailLength = tailLength
        this.name = name
    }

    def otherFoo(that: Cat): String = {
        this.foo.intersect(that.foo)
    }

    override def toString: String = {
        s"Cat $name has tail of $tailLength m foo=$foo"
    }
}

 

Как вы понимаете, это никогда в жизни не соберется в байткод, так как поле "foo" будет объявлено приватным полем объекта, а не класса и следственно обращение к полю "foo" другого объекта в методе "otherFoo" не является допустимым. Тем не менее Idea благополучно рисует зеленую галочку и ничего ее в этом классе не смущает.

Рубрики: Scala

↑ Наверх


blog comments powered by Disqus

Контакты

Igor Zinkovsky aka TLoD,Snake. Писать на электропочту, стучаться в аську 302380533, искать в Санкт-Петербурге.

© 2002-2019