rust/src
Patrick Walton f1520ea0cf librustc: Check built-in trait bounds on implementations when direct
method calls are involved.

This breaks code like:

    impl<T:Copy> Foo for T { ... }

    fn take_param<T:Foo>(foo: &T) { ... }

    fn main() {
        let x = box 3i; // note no `Copy` bound
        take_param(&x);
    }

Change this code to not contain a type error. For example:

    impl<T:Copy> Foo for T { ... }

    fn take_param<T:Foo>(foo: &T) { ... }

    fn main() {
        let x = 3i; // satisfies `Copy` bound
        take_param(&x);
    }

Closes #15860.

[breaking-change]
2014-07-25 00:50:35 -07:00
..
compiler-rt@62a4ca6055 Update compiler-rt to work for non-v7 arm. 2014-06-18 17:02:08 -07:00
compiletest collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
doc libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
driver Snapshot cleanup 2014-03-23 09:45:13 -07:00
etc auto merge of #15424 : TeXitoi/rust/relicense-shootout-threadring, r=brson 2014-07-24 18:11:03 +00:00
grammar Don't run lexer tests by default 2014-07-21 19:26:20 -07:00
gyp@1e46da1000
jemalloc@024c67ad65 Updated deps 2014-06-12 20:20:12 +03:00
liballoc collections: Move push/pop to MutableSeq 2014-07-23 13:20:10 -07:00
libarena Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libbacktrace Bundle libbacktrace with the compiler 2014-03-11 21:02:34 -07:00
libcollections auto merge of #15945 : treeman/rust/doc-smallint-update, r=alexcrichton 2014-07-24 22:51:10 +00:00
libcore librustc: Check built-in trait bounds on implementations when direct 2014-07-25 00:50:35 -07:00
libcoretest librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
libdebug deprecate Vec::get 2014-07-17 12:08:31 +12:00
libflate Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libfmt_macros Register new snapshots 2014-07-09 10:57:58 -07:00
libfourcc Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libgetopts auto merge of #15867 : cmr/rust/rewrite-lexer4, r=alexcrichton 2014-07-22 07:16:17 +00:00
libglob deprecate Vec::get 2014-07-17 12:08:31 +12:00
libgraphviz Get rid of few warnings in tests 2014-07-21 09:55:04 -07:00
libgreen libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
libhexfloat Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
liblibc auto merge of #15584 : alexcrichton/rust/warn-annoyances, r=cmr 2014-07-13 04:46:31 +00:00
liblog Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libnative Test fixes from the rollup 2014-07-24 08:48:50 -07:00
libnum auto merge of #15718 : treeman/rust/integer-doc, r=alexcrichton 2014-07-17 20:36:19 +00:00
librand Add a ton of ignore-lexer-test 2014-07-21 18:38:40 -07:00
libregex collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
libregex_macros Refactoring: Only use MacroExpander for expanding outside of 2014-07-22 01:00:03 +02:00
librlibc rlibc: add unit tests 2014-07-21 09:54:23 -07:00
librustc librustc: Check built-in trait bounds on implementations when direct 2014-07-25 00:50:35 -07:00
librustc_back librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
librustc_llvm Register new snapshots 2014-07-19 20:38:00 -07:00
librustdoc rustdoc: Add a --crate-name option 2014-07-24 07:26:26 -07:00
librustrt libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
librustuv libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
libsemver Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libserialize Deprecated str::raw::from_utf8_owned 2014-07-24 07:25:43 -07:00
libstd librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
libsync auto merge of #15781 : alexcrichton/rust/issue-15758, r=bblum 2014-07-24 02:16:13 +00:00
libsyntax librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
libterm collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
libtest Get rid of few warnings in tests 2014-07-21 09:55:04 -07:00
libtime auto merge of #15867 : cmr/rust/rewrite-lexer4, r=alexcrichton 2014-07-22 07:16:17 +00:00
libunicode librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
liburl Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libuuid Get rid of few warnings in tests 2014-07-21 09:55:04 -07:00
libuv@43495892de Update libuv 2014-04-24 09:08:07 -07:00
llvm@cd24b5c663 Updated LLVM for iOS 2014-07-24 07:25:55 -07:00
rt auto merge of #14963 : w3ln4/rust/master, r=alexcrichton 2014-06-24 13:46:54 +00:00
rustllvm rustllvm: Don't require null terminators in files 2014-07-24 11:31:28 -07:00
test librustc: Check built-in trait bounds on implementations when direct 2014-07-25 00:50:35 -07:00
README.md Update README file for src/ directory 2014-06-03 14:06:54 +02:00
snapshots.txt Register new snapshots 2014-07-19 20:38:00 -07:00

This is a preliminary version of the Rust compiler, libraries and tools.

Source layout:

Path Description
librustc/ The self-hosted compiler
liballoc/ Rust's core allocation library
libcore/ The Rust core library
libdebug/ Debugging utilities
libstd/ The standard library (imported and linked by default)
libgreen/ The M:N runtime library
libnative/ The 1:1 runtime library
libsyntax/ The Rust parser and pretty-printer
libtest/ Rust's test-runner code
------------------- ---------------------------------------------------------
libarena/ The arena (a fast but limited) memory allocator
libbacktrace/ The libbacktrace library
libcollections/ A collection of useful data structures and containers
libflate/ Simple compression library
libfmt_macros/ Macro support for format strings
libfourcc/ Data format identifier library
libgetopts/ Get command-line-options library
libglob/ Unix glob patterns library
libgraphviz/ Generating files for Graphviz
libhexfloat/ Hexadecimal floating-point literals
liblibc/ Bindings for the C standard library
liblog/ Utilities for program-wide and customizable logging
libnum/ Extended number support library (complex, rational, etc)
librand/ Random numbers and distributions
libregex/ Regular expressions
libregex_macros/ The regex! syntax extension
libsemver/ Rust's semantic versioning library
libserialize/ Encode-Decode types library
libsync/ Concurrency mechanisms and primitives
libterm/ ANSI color library for terminals
libtime/ Time operations library
liburl/ URL handling lirary
libuuid/ UUID's handling code
------------------- ---------------------------------------------------------
rt/ The runtime system
rt/rust_*.c - Some of the runtime services
rt/vg - Valgrind headers
rt/msvc - MSVC support
rt/sundown - The Markdown library used by rustdoc
------------------- ---------------------------------------------------------
compiletest/ The test runner
test/ Testsuite
test/codegen - Tests for the LLVM IR infrastructure
test/compile-fail - Tests that should fail to compile
test/debug-info - Tests for the debuginfo tool
test/run-fail - Tests that should compile, run and fail
test/run-make - Tests that depend on a Makefile infrastructure
test/run-pass - Tests that should compile, run and succeed
test/bench - Benchmarks and miscellaneous
test/pretty - Pretty-printer tests
test/auxiliary - Dependencies of tests
------------------- ---------------------------------------------------------
librustdoc/ The Rust API documentation tool
libuv/ The libuv submodule
librustuv/ Rust libuv support code
------------------- ---------------------------------------------------------
llvm/ The LLVM submodule
rustllvm/ LLVM support code
------------------- ---------------------------------------------------------
etc/ Scripts, editors support, misc

NOTE: This list (especially the second part of the table which contains modules and libraries) is highly volatile and subject to change.