Alex Crichton
bba701c59d
std: Drop Total from Total{Eq,Ord}
...
This completes the last stage of the renaming of the comparison hierarchy of
traits. This change renames TotalEq to Eq and TotalOrd to Ord.
In the future the new Eq/Ord will be filled out with their appropriate methods,
but for now this change is purely a renaming change.
[breaking-change]
2014-06-01 10:31:27 -07:00
Alex Crichton
748bc3ca49
std: Rename {Eq,Ord} to Partial{Eq,Ord}
...
This is part of the ongoing renaming of the equality traits. See #12517 for more
details. All code using Eq/Ord will temporarily need to move to Partial{Eq,Ord}
or the Total{Eq,Ord} traits. The Total traits will soon be renamed to {Eq,Ord}.
cc #12517
[breaking-change]
2014-05-30 15:52:24 -07:00
Kevin Butler
09fc34066b
librustc: Fix snake case errors.
...
A number of functions/methods have been moved or renamed to align
better with rust standard conventions.
rustc:🔙 🔗 :WriteOutputFile => write_output_file
rustc::middle::ty::EmptyBuiltinBounds => empty_builtin_bounds
rustc::middle::ty::AllBuiltinBounds => all_builtin_bounds
rustc::middle::liveness::IrMaps => IrMaps::new
rustc::middle::liveness::Liveness => Liveness::new
rustc::middle::resolve::NameBindings => NameBindings::new
rustc::middle::resolve::PrimitiveTypeTable => PrimitiveTypeTable::new
rustc::middle::resolve::Resolver => Resolver::new
rustc::middle::trans::datum::Datum => Datum::new
rustc::middle::trans::datum::DatumBlock => DatumBlock::new
rustc::middle::trans::datum::Rvalue => Rvalue::new
rustc::middle::typeck::infer::new_ValsAndBindings => ::infer::unify::ValsAndBindings::new
rustc::middle::typeck::infer::region_inference::RegionVarBindings => RegionVarBindings::new
[breaking-change]
2014-05-30 17:55:42 +01:00
Alex Crichton
42aed6bde2
std: Remove format_strbuf!()
...
This was only ever a transitionary macro.
2014-05-28 08:35:41 -07:00
Richo Healey
553074506e
core: rename strbuf::StrBuf to string::String
...
[breaking-change]
2014-05-24 21:48:10 -07:00
Patrick Walton
6559a3675e
librustc: Remove all uses of ~str
from librustc.
2014-05-12 11:28:57 -07:00
Nick Cameron
5854811082
Refactor rslt
to Result::new
2014-05-03 23:14:56 +12:00
Corey Richardson
f9973103c5
middle: trans: datum: remove dead code
2014-04-02 11:17:22 -04:00
Alex Crichton
89fa141cd7
rustc: Switch field privacy as necessary
2014-03-31 15:47:36 -07:00
Daniel Micay
3829ac2a52
use TotalEq for HashMap
...
Closes #5283
2014-03-23 01:59:11 -04:00
Eduard Burtescu
0bb6de3076
De-@ move maps and rework parts of trans.
2014-03-17 09:53:08 +02:00
Eduard Burtescu
6c42ef31dc
De-@ trans contexts.
2014-03-17 09:53:07 +02:00
Eduard Burtescu
9b1fee898f
De-@ ty::ctxt usage.
2014-03-17 09:53:06 +02:00
Huon Wilson
efaf4db24c
Transition to new Hash
, removing IterBytes and std::to_bytes.
2014-02-24 07:44:10 +11:00
Niko Matsakis
64c9b5c3ae
trans/datum -- move mutable variable into closure
2014-02-11 16:55:23 -05:00
Huon Wilson
5e2de79b30
rustc: load bools as unsigned numbers.
...
Apparently loading them signed will break if/when they become i1.
2014-02-08 12:13:28 +11:00
Huon Wilson
285c25f7f4
rustc: put range asserts on char
loads.
...
A `char` is a Unicode codepoint, and so ranges from 0--0x10FFFF (with
the surrogate gaps): we may as well inform LLVM of this.
2014-02-08 12:13:28 +11:00
Huon Wilson
212507413a
rustc: update docs & propagate @[]/@str removal more.
...
Various functions can now be made specific to ~[], or just non-managed
vectors.
2014-02-02 02:59:04 +11:00
Eduard Burtescu
e81ab4198c
Removed take_glue from tydesc, inlining the equivalent refcount increment code instead.
2014-01-27 22:32:30 +02:00
Niko Matsakis
5e7657fafb
Distinguish zero-size types from those that we return as void
2014-01-16 19:10:17 -05:00
Niko Matsakis
14b0abfd82
Consider all zero-sized data structures to be voidish, bypassing some "quirky" parts of LLVM (see e.g. LLVM bug 9900) but also generating better code
2014-01-16 15:11:22 -05:00
Niko Matsakis
419ac4a1b8
Issue #3511 - Rationalize temporary lifetimes.
...
Major changes:
- Define temporary scopes in a syntax-based way that basically defaults
to the innermost statement or conditional block, except for in
a `let` initializer, where we default to the innermost block. Rules
are documented in the code, but not in the manual (yet).
See new test run-pass/cleanup-value-scopes.rs for examples.
- Refactors Datum to better define cleanup roles.
- Refactor cleanup scopes to not be tied to basic blocks, permitting
us to have a very large number of scopes (one per AST node).
- Introduce nascent documentation in trans/doc.rs covering datums and
cleanup in a more comprehensive way.
2014-01-15 18:34:38 -05:00
Daniel Micay
0e885e42b1
remove reference counting headers from ~
...
Unique pointers and vectors currently contain a reference counting
header when containing a managed pointer.
This `{ ref_count, type_desc, prev, next }` header is not necessary and
not a sensible foundation for tracing. It adds needless complexity to
library code and is responsible for breakage in places where the branch
has been left out.
The `borrow_offset` field can now be removed from `TyDesc` along with
the associated handling in the compiler.
Closes #9510
Closes #11533
2014-01-14 22:01:40 -05:00
Eduard Burtescu
509fc92a9b
Removed remnants of @mut
and ~mut
from comments and the type system.
2014-01-12 02:26:04 +02:00
Eduard Burtescu
08ac616d37
Use the right type for self in methods and remove obsoleted items.
...
Fixes #7411 , #10615 .
2014-01-11 16:40:23 +02:00
Eduard Burtescu
5ad2a7825b
Removed obsolete 'e' prefix on ty_evec and ty_estr.
2014-01-11 16:40:23 +02:00
Patrick Walton
5e637a890c
librustc: Move block contexts into per-function arenas, and
...
stack-allocate function contexts.
2014-01-07 17:00:47 -08:00
Brian Anderson
3b1862a82f
Don't allow newtype structs to be dereferenced. #6246
2014-01-04 14:44:12 -08:00
Brian Anderson
18cef3fad4
Don't allow single-variant enums to be dereferenced. #6246
...
I'm not sure if this was even intentional at this point.
2014-01-04 13:17:31 -08:00
Patrick Walton
88281290ff
librustc: Remove @mut
support from the typechecker and borrow checker
2014-01-03 14:02:01 -08:00
Patrick Walton
b941677ea3
librustc: De-@mut
the crate context
2013-12-26 13:01:26 -08:00
Patrick Walton
c9432327c4
librustc: Change @mut Block
to @Block
.
2013-12-26 13:01:21 -08:00
Patrick Walton
8ceb374ab7
librustc: Remove non-procedure uses of do
from librustc, librustdoc,
...
and librustpkg.
2013-11-26 08:25:00 -08:00
Patrick Walton
7e3f20133a
librustc: Change most uses of &fn()
to ||
.
2013-11-19 13:22:03 -08:00
Niko Matsakis
195f1d77bd
Rename and modernize region enum names
2013-11-08 19:47:57 -05:00
Niko Matsakis
3d1f3f4de0
Rename misleading contains_managed to owns_managed
2013-11-05 15:51:18 -05:00
Alex Crichton
daf5f5a4d1
Drop the '2' suffix from logging macros
...
Who doesn't like a massive renaming?
2013-10-22 08:09:56 -07:00
Daniel Micay
34ae5d70ac
partially fix immediate rvalues
...
The code generation previously assumed a reference could not alter the
value in a way the destructor would notice. This is an incorrect
assumption for `&mut`, and is also incorrect for an `&` pointer to a
non-`Freeze` type.
Closes #7972
2013-10-17 16:50:07 -04:00
Daniel Micay
bd7610f3e3
introduce base_and_len
fns for element length
2013-10-16 12:28:25 -04:00
Daniel Micay
ef3ec1fe97
rename base_and_len
-> base_and_byte_len
2013-10-16 12:00:31 -04:00
Alex Crichton
de7d143176
Fix existing privacy/visibility violations
...
This commit fixes all of the fallout of the previous commit which is an attempt
to refine privacy. There were a few unfortunate leaks which now must be plugged,
and the most horrible one is the current `shouldnt_be_public` module now inside
`std::rt`. I think that this either needs a slight reorganization of the
runtime, or otherwise it needs to just wait for the external users of these
modules to get replaced with their `rt` implementations.
Other fixes involve making things pub which should be pub, and otherwise
updating error messages that now reference privacy instead of referencing an
"unresolved name" (yay!).
2013-10-07 13:00:52 -07:00
Daniel Micay
abe648d608
treat uninhabited enums as voidish
2013-10-02 10:02:52 -04:00
bors
33a5928b46
auto merge of #9656 : thestinger/rust/immediate, r=alexcrichton
...
fn foo() -> (u32, u8, u8, u8, u8) {
(4, 5, 6, 7, 8)
}
Before:
; Function Attrs: nounwind uwtable
define void @_ZN3foo18hbb616262f874f8daf4v0.0E({ i32, i8, i8, i8, i8 }* noalias nocapture sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
"function top level":
%2 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 0
store i32 4, i32* %2, align 4
%3 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 1
store i8 5, i8* %3, align 4
%4 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 2
store i8 6, i8* %4, align 1
%5 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 3
store i8 7, i8* %5, align 2
%6 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 4
store i8 8, i8* %6, align 1
ret void
}
After:
; Function Attrs: nounwind readnone uwtable
define { i32, i8, i8, i8, i8 } @_ZN3foo18hbb616262f874f8daf4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
"function top level":
ret { i32, i8, i8, i8, i8 } { i32 4, i8 5, i8 6, i8 7, i8 8 }
}
2013-10-01 21:56:27 -07:00
Daniel Micay
5e4ae4f45f
make small (<= size_of::<int>()) tuples immediate
...
fn foo() -> (u32, u8, u8, u8, u8) {
(4, 5, 6, 7, 8)
}
Before:
; Function Attrs: nounwind uwtable
define void @_ZN3foo18hbb616262f874f8daf4v0.0E({ i32, i8, i8, i8, i8 }* noalias nocapture sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
"function top level":
%2 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 0
store i32 4, i32* %2, align 4
%3 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 1
store i8 5, i8* %3, align 4
%4 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 2
store i8 6, i8* %4, align 1
%5 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 3
store i8 7, i8* %5, align 2
%6 = getelementptr inbounds { i32, i8, i8, i8, i8 }* %0, i64 0, i32 4
store i8 8, i8* %6, align 1
ret void
}
After:
; Function Attrs: nounwind readnone uwtable
define { i32, i8, i8, i8, i8 } @_ZN3foo18hbb616262f874f8daf4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone) #0 {
"function top level":
ret { i32, i8, i8, i8, i8 } { i32 4, i8 5, i8 6, i8 7, i8 8 }
}
2013-10-01 02:57:59 -04:00
Alex Crichton
1b80558be3
rustc: Remove usage of fmt!
2013-09-30 23:21:19 -07:00
Daniel Micay
11b7109b7b
rm only use of type_is_immediate outside of trans
2013-09-30 18:16:35 -04:00
Marvin Löbel
7419085337
Modernized a few more types in syntax::ast
2013-09-03 14:45:06 +02:00
Marvin Löbel
539f37925c
Modernized a few type names in rustc and syntax
2013-09-01 14:43:26 +02:00
Niko Matsakis
303f650ecf
Issue #3678 : Remove wrappers and call foreign functions directly
2013-08-19 07:13:15 -04:00
Michael Woerister
8a329770b6
New naming convention for ast::{node_id, local_crate, crate_node_id, blk_check_mode, ty_field, ty_method}
2013-07-29 16:16:48 +02:00