    package itest.demo1

    trait DemoB {
      var variable = "Hello"
      val value = "World"
      //val fct : =>String = "foo"
      def f2(fct:()=>String, bool: =>Boolean)

      def noArgsReturnString = "noArg"
      def noArgsNoReturn {}
      def zeroArgsReturnString() = "zeroArgs"
      def zeroArgsNoReturn() = {}
      def twoArgs(i: Int, s: String) = {s.length + i}

      @Deprecated
      def deprecatedByAnnotation(i: Int) = i

      /**
       * @deprecated replace by ...
       */
      def deprecatedByCommentsTag(i: Int) = i

      /**
       * @todo bbmlablab
       */
      def methodWithTodoByCommentsTag(i: Int) = i

      /**
       * return this but doesn't define return type explicitly
       * @return this
       */
      def returnThis() = this

      /**
       * return this, and define return type to this.type
       * @return this
       */
      def returnThisWithCovariantType() : this.type = this
    }

    case class DemoCaseClass(att1: String, val att2: String, var att3: String)
    case object DemoCaseObject{
     val att2 = ""
     var att3 = ""
    }