]> git.lizzy.rs Git - rust.git/commit
support `default impl` for specialization
authorGianni Ciccarelli <gianni.ciccarelli@gmail.com>
Fri, 18 Nov 2016 16:14:42 +0000 (17:14 +0100)
committerGianni Ciccarelli <gianni.ciccarelli@gmail.com>
Mon, 24 Apr 2017 10:08:48 +0000 (10:08 +0000)
commit116e9831a57dd09b4c580c2f480064299137b0b0
tree7cd1a4b68c97f201a062207064deaa1a5f45fdd7
parent15ce54096a589de277771ad1f55a334fe2661a64
support `default impl` for specialization

this commit implements the first step of the `default impl` feature:
all items in a `default impl` are (implicitly) `default` and hence
specializable.
In order to test this feature I've copied all the tests provided for the
`default` method implementation (in run-pass/specialization and
compile-fail/specialization directories) and moved the `default` keyword
from the item to the impl.
See referenced issue for further info
50 files changed:
cargo
rls
src/compiler-rt
src/doc/book
src/doc/reference
src/jemalloc
src/liblibc
src/librustc/hir/lowering.rs
src/librustc/hir/mod.rs
src/librustc/hir/print.rs
src/librustc/middle/reachable.rs
src/librustc/middle/resolve_lifetime.rs
src/librustc/traits/project.rs
src/librustc_metadata/cstore_impl.rs
src/librustc_metadata/decoder.rs
src/librustc_metadata/encoder.rs
src/librustc_metadata/schema.rs
src/librustc_save_analysis/dump_visitor.rs
src/librustc_trans/collector.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/wfcheck.rs
src/librustc_typeck/coherence/unsafety.rs
src/librustdoc/doctree.rs
src/librustdoc/visit_ast.rs
src/libsyntax/ast.rs
src/libsyntax/feature_gate.rs
src/libsyntax/fold.rs
src/libsyntax/parse/parser.rs
src/libsyntax/print/pprust.rs
src/libsyntax/visit.rs
src/libsyntax_ext/deriving/generic/mod.rs
src/rt/hoedown [deleted submodule]
src/test/compile-fail/specialization/defaultimpl/specialization-default-projection.rs [new file with mode: 0644]
src/test/compile-fail/specialization/defaultimpl/specialization-default-types.rs [new file with mode: 0644]
src/test/compile-fail/specialization/defaultimpl/specialization-feature-gate-default.rs [new file with mode: 0644]
src/test/compile-fail/specialization/defaultimpl/specialization-no-default.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/auxiliary/go_trait.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/auxiliary/specialization_cross_crate.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/auxiliary/specialization_cross_crate_defaults.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-allowed-cross-crate.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-assoc-fns.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-basics.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-cross-crate-defaults.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-cross-crate-no-gate.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-cross-crate.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-default-methods.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-out-of-order.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-overlap-projection.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-projection-alias.rs [new file with mode: 0644]
src/test/run-pass/specialization/defaultimpl/specialization-projection.rs [new file with mode: 0644]