vẻ để biên dịch để điều tương tự.
~/code/scratch: scala -Xprint:typer -e 'trait B; trait A <: B'
// snip
abstract trait B extends scala.AnyRef;
abstract trait A extends java.lang.Object with this.B
~/code/scratch: scala -Xprint:typer -e 'trait B; trait A extends B'
// snip
abstract trait B extends scala.AnyRef;
abstract trait A extends java.lang.Object with this.B
Thông số kỹ thuật không giải thích điều này trong "5.3.3 Đặc điểm". Nhưng Tóm tắt cú pháp không đề cập đến điều này.
TraitDef ::= id [TypeParamClause] TraitTemplateOpt
TraitTemplateOpt ::= Extends TraitTemplate | [[Extends] TemplateBody]
Extends ::= ‘extends’ | ‘<:’
CẬP NHẬT Nó được giới thiệu vào r14632. Với tùy chọn biên dịch -Xexperimental
, nó đánh dấu đặc điểm là trừu tượng, để sử dụng với tính năng ngôn ngữ được đề xuất Virtual Traits. Không có -Xexperimental
, nó là một từ đồng nghĩa cho 'mở rộng' chỉ được phép cho các đặc điểm.
Tôi nghĩ điều đó có nghĩa là B đang mỉm cười tại A –
FWIW, bản cài đặt 2.7.5 của tôi không cho phép. –
Tôi đang sử dụng ảnh chụp nhanh 2.8 (2.8.0.r20331-b20100101020206) –