Patrick Walton
eb4d39e1fe
libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
...
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.
This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Tim Chevalier
f1e78c6dd7
Merge pull request #4672 from alexcrichton/linearmap-len-fix
...
Fix the len() method on LinearMap during popping
2013-01-29 10:38:41 -08:00
Alex Crichton
810eeef444
Fix the len() method on LinearMap during popping
2013-01-29 11:16:39 -05:00
William Ting
bb51a8442f
Add support for Ubuntu named clang packages.
...
Ubuntu's clang packages have additional information appended to the end of
the version.
- Building Rust v0.5 with clang v3.0-6ubuntu3 fails.
- Building Rust v0.5 and incoming with clang v3.1-5ppa (backported from Debian)
works.
Closes #4441 .
2013-01-28 21:54:11 -08:00
Tim Chevalier
fc9650b146
testsuite: De-record most bench tests
2013-01-28 19:41:56 -08:00
Tim Chevalier
3b36708ca7
testsuite: De-record pretty tests
2013-01-28 19:41:56 -08:00
Tim Chevalier
58ec84a098
testsuite: Remove structural records from remaining compile-fail tests
2013-01-28 19:41:56 -08:00
Tim Chevalier
15871a7458
rustc: Check struct field types when heap memory lint checks are enabled
2013-01-28 19:41:56 -08:00
Tim Chevalier
91676f3fa6
syntax: Don't add an extra space before the last comma...
...
...when printing struct update expressions.
2013-01-28 19:41:56 -08:00
Tim Chevalier
9f11485357
testsuite: Allow structural records in two tests that use pipes
2013-01-28 19:41:56 -08:00
Tim Chevalier
93043baab4
testsuite: Add #[allow(structural_records)] to pipes tests
...
These will require a snapshot.
2013-01-28 19:41:56 -08:00
Tim Chevalier
dd38af240b
compiletest: Allow legacy records
...
But also remove most uses of structural records.
2013-01-28 19:41:56 -08:00
Tim Chevalier
c5461e46ae
core: Allow legacy records in in a few modules
...
Because of macros, #[allow(structural_records]] in
extfmt, gc, os, pipes, and run. Will need a snapshot.
2013-01-28 19:41:56 -08:00
Tim Chevalier
31d78b2f07
Add #[legacy_records] crate attribute
...
In rustc, rustdoc, rusti, syntax, and std.
2013-01-28 19:41:56 -08:00
Tim Chevalier
6cbccc92b7
rustc: In lint, forbid structural records unless legacy_records is on
2013-01-28 19:41:55 -08:00
Tim Chevalier
db6af50d53
rustc: Add legacy_records field to the type context
2013-01-28 19:41:55 -08:00
Brian Anderson
a72aeef9f7
Revert readline optimization and add test
2013-01-28 19:32:02 -08:00
Tim Chevalier
3a6849f36b
Revert "Revert "Merge pull request #4633 from thestinger/treemap""
...
This reverts commit d73077f82d
.
2013-01-28 17:20:29 -08:00
Brian Anderson
ab0b7b2784
Add Michael Neumann to AUTHORS
2013-01-28 14:42:46 -08:00
Brian Anderson
d9170e14b1
Tidy
2013-01-28 14:41:20 -08:00
Michael Neumann
d38939c7e8
Slightly optimize read_line()
...
No need to allocate an additional vector. Instead directly push into the
string.
2013-01-28 14:40:11 -08:00
Michael Neumann
1ecdf3abc1
Greatly improve performance for TcpSocketBuf.read
...
For every call to the read() function the internal buffer was copied
into a new buffer (minus the bytes copied into the result buffer). When
the internal buffer is large enough, this severely affects performance,
especially when read_line() is used which calls read_byte() (which calls
read()) for each read byte.
For line oriented I/O this wasn't all that bad, because the internal
buffers usually never were very big. The effect is much more visible
once the buffer grows larger.
Now we always first look into the internal buffer and copy as many bytes
as possible (and desired) into the result buffer. If we need more, we
call the socket read function and use the result as the new internal
buffer, then continue to copy from the (new) internal buffer, and so on.
2013-01-28 14:40:11 -08:00
Michael Neumann
0c3ef3cc6b
Convert log(debug, ...) to debug!(...)
2013-01-28 14:40:11 -08:00
Michael Neumann
02de11c1e7
Fix example code
2013-01-28 14:40:11 -08:00
Brian Anderson
2a48aef0a8
Merge remote-tracking branch 'thestinger/hashmap' into deriving
2013-01-28 14:28:59 -08:00
Brian Anderson
c75cc0aa10
Merge remote-tracking branch 'codeblack08/treemap-ord' into deriving
2013-01-28 14:15:58 -08:00
Daniel Micay
8eaf0737b7
get rid of LinearMap's find_copy method
2013-01-28 16:06:09 -05:00
Niko Matsakis
e8f3690123
Change "// WARN" in tidy to "// NOTE" as requested by @catamorphism
2013-01-28 10:01:59 -08:00
Niko Matsakis
ef4c060594
Address @catamorphism's comments regarding docs
2013-01-28 10:01:59 -08:00
Niko Matsakis
4b15bfde81
loan: Track whether or not the current path owns the data being
...
lent. We can be more liberal with respect to the scope of the loan
if we do not own the data being lent, which used to be impossible
but can now occur with `&mut`.
r=pcwalton
2013-01-28 10:01:59 -08:00
Niko Matsakis
b4acde3bf7
remove unused variable
2013-01-28 10:01:59 -08:00
Niko Matsakis
e6cadc4c03
remove hacks now that #3148 is fixed
...
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
2b67d88809
Rewrite the coercion code to be more readable, more sound, and to reborrow when
...
needed.
Regarding soundness: there was a subtle bug in how it was done before; see the
compile-fail test for an example.
Regarding reborrowing: reborrowing allows mut and const
slices/borrowed-pointers to be used with pure fns that expect immutable data.
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
c07ae16de1
rename assign to coerce, remove some bad copies
...
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
05b6df49b8
Refactor to make inference code around unification more readable
...
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
923b3154c6
Do not try to encode/decode inference types, should not be necessary
...
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
19e015c44a
Add to_str() definitions for some AST types
...
r=brson
2013-01-28 10:01:59 -08:00
Niko Matsakis
08bc19cbcd
Remove bounds from type decl of smallintmap
...
r=brson
2013-01-28 10:01:55 -08:00
Niko Matsakis
a4ba11189d
Extend region guarantor logic to handle autoref, which will
...
be necessary for reborrowing.
r=catamorphism
2013-01-28 10:00:41 -08:00
Niko Matsakis
8f14d43206
Make tidy actually work
...
r=catamorphism
2013-01-28 10:00:39 -08:00
Niko Matsakis
0004be9eca
Detect "// WARN" in tidy and print out, well, a warning! Useful
...
for notating FIXME-style-situations that you want to be reminded
of before you commit.
r=catamorphism
2013-01-28 10:00:35 -08:00
Niko Matsakis
2e10ea58c3
Integrate vec patterns into borrow checker.
...
The tail portion of the pattern effectively borrows a vector,
but the borrow checker knew nothing about this.
r=catamorphism
2013-01-28 10:00:32 -08:00
Niko Matsakis
d4fd30c6ac
Link the lifetimes of regions resulting from borrows of the
...
contents of other borrowed pointers to the lifetimes of the
borrowed value. Fixes #3148 .
r=catamorphism
2013-01-28 10:00:23 -08:00
Cody Schroeder
6a4d1855bf
std: implement lexicographical Ord for TreeMap/TreeSet
2013-01-26 16:39:17 -08:00
Brian Anderson
83ca034d2e
Merge remote-tracking branch 'brson/nocommupstream2'
2013-01-26 14:57:58 -08:00
Graydon Hoare
2372d2c6a8
register more-conservative linux snap
2013-01-26 14:11:34 -08:00
Tim Chevalier
bb183b93ea
testsuite: Eliminate structural records from run-fail tests
2013-01-26 11:38:00 -08:00
Tim Chevalier
72b669df43
fuzzer: Remove structural records
2013-01-26 11:35:17 -08:00
Tim Chevalier
e910e601a6
cargo: remove structural records
2013-01-26 11:35:17 -08:00
Tim Chevalier
0743cec023
core: Remove structural records in library tests
2013-01-26 11:35:17 -08:00