Luqman Aden
727a565f1e
librustc: Move inline asm stuff to different mod.
2013-03-27 15:41:58 -07:00
Patrick Walton
58338dd3d0
librustc: Fix ICE with cross-crate extern statics. rs=bugfix
2013-03-27 15:41:43 -07:00
Patrick Walton
70b56fa5e9
librustc: Allow expr_repeat to be used with any vstore
2013-03-27 14:13:07 -07:00
Patrick Walton
e5dda811a9
librustc: Allow expr_repeat to be used with any vstore
2013-03-27 13:53:03 -07:00
bors
995425badb
auto merge of #5558 : nikomatsakis/rust/issue-4920-autoref-index-operator, r=nikomatsakis
...
Per discussion on IRC.
r? @pcwalton
2013-03-27 13:27:58 -07:00
Niko Matsakis
2a74fda316
Fix pretty-printer test failure by carrying the bound lifetime names through
...
the types. Initially I thought it would be necessary to thread this data
through not only the AST but the types themselves, but then I remembered that
the pretty printer only cares about the AST. Regardless, I have elected to
leave the changes to the types intact since they will eventually be needed. I
left a few FIXMEs where it didn't seem worth finishing up since the code wasn't
crucial yet.
2013-03-27 11:35:04 -07:00
Niko Matsakis
069529bc5c
Autoref the argument to the index operator ( #4920 )
2013-03-27 13:04:03 -04:00
Huon Wilson
ab5346d119
librustc: Limit the typo suggestions to reasonable suggests.
...
Impose a limit so that the typo suggester only shows reasonable
suggestions (i.e. don't suggest `args` when the error is `foobar`).
2013-03-28 02:19:40 +11:00
Erick Tryzelaar
83e831bc22
syntax: Remove deprecated expr_vstore_fixed
2013-03-27 07:04:16 -07:00
Erick Tryzelaar
7a199d41a9
syntax: fix pretty printing __log stmts
2013-03-27 07:04:15 -07:00
Erick Tryzelaar
4d6dcefcbb
std: Decode::read_enum_variant should pass in the variant names
...
Because the json::Decoder uses the string variant name, we need a
way to correlate the string to the enum index. This passes in a
static &[&str] to read_enum_variant, which allows the json::Decoder
to know which branch it's trying to process.
2013-03-27 07:04:13 -07:00
Niko Matsakis
2c17ff7dbc
Simplify and remove unnecessary use of ast_map
2013-03-27 07:10:04 -04:00
Niko Matsakis
aa67deff33
remove sty_by_ref, though traces still remain due to dtors
2013-03-27 07:09:16 -04:00
Patrick Walton
f41a510631
librustc: Remove obsolete syntax
2013-03-26 21:30:18 -07:00
Patrick Walton
0a4d0f37ca
librustc: Enforce that extern mod
directives come first, then use
directives, then items.
...
Resolve them in this order as well.
2013-03-26 21:30:17 -07:00
Patrick Walton
8b56a8380b
librustc: Modify all code to use new lifetime binder syntax
2013-03-26 21:30:17 -07:00
Patrick Walton
15688eaf28
librustc: Require explicit lifetime binders
2013-03-26 21:29:35 -07:00
Patrick Walton
3b2fcf9f59
librustc: Fix bug with newtype structs containing dtors
2013-03-26 21:29:35 -07:00
Patrick Walton
a376f46862
librustc: Stop parsing [T * N]
.
2013-03-26 21:29:35 -07:00
Patrick Walton
142dbd65da
librustc: Remove all uses of the old [T * N]
fixed-length vector syntax
2013-03-26 21:29:34 -07:00
Daniel Micay
34c5a09ce3
option: rm functions that duplicate methods
2013-03-26 22:44:40 -04:00
Alex Crichton
dbe1354321
Move ast_map::map to LinearMap
2013-03-26 19:21:05 -04:00
Alex Crichton
17459d0bd3
rustc: Purge of HashMap, fixing segfaulting cases
...
Various FIXME comments added around to denote copies which when removed cause
the compiler to segfault at some point before stage2. None of these copies
should even be necessary.
2013-03-26 19:21:04 -04:00
Alex Crichton
6f812fef1b
rustc: Remove uses of oldmap::HashMap
2013-03-26 19:21:04 -04:00
Alex Crichton
fa7772893a
Remove unused imports throughout
2013-03-26 19:20:02 -04:00
bors
3d588c5286
auto merge of #5555 : Kimundi/rust/str-dealloc-3, r=catamorphism
...
- Most functions that used to return `~[~str]` for a list of substrings got turned into iterators over `&str` slices
- Some cleanup of apis, docs and code layout
2013-03-26 15:07:07 -07:00
Niko Matsakis
3ca7c225e5
Stop writing directly to the final type/method/vtable sidetables from astconv
...
and from typeck, which is verboten. We are supposed to write inference results
into the FnCtxt and then these get copied over in writeback. Add assertions
that no inference by-products are added to this table.
Fixes #3888
Fixes #4036
Fixes #4492
2013-03-26 15:39:12 -04:00
Niko Matsakis
6f2783d515
Add various debug statements to trans that I used to help track down the
...
problem and which seem like they could be useful in the future.
2013-03-26 15:16:58 -04:00
Niko Matsakis
e11d13f3de
Rip out old code that still structured method calls as a
...
expr_call(expr_field(...)) rather than an expr_method_call.
There is probably more such code in trans that should be removed.
2013-03-26 15:16:58 -04:00
Niko Matsakis
5f52669296
Fix #4855 : handle bot in regionck
2013-03-26 14:12:13 -04:00
Marvin Löbel
b9de2b5787
Switched over a bunch of splitting funktions to non-allocating iterators
2013-03-26 14:59:17 +01:00
bors
74fb263f7a
auto merge of #5546 : nikomatsakis/rust/ty_region-useful-span, r=catamorphism
...
r? @catamorphism
2013-03-26 06:58:10 -07:00
bors
47ddb59b80
auto merge of #5525 : dbaupp/rust/minor_fixups, r=graydon
...
Kills some warnings, and implements str::each_char_reverse so that it actually iterates. The test case wasn't detecting a failure, since the loop body was never executed.
2013-03-25 21:18:57 -07:00
bors
02d5f090dc
auto merge of #5524 : luqmana/rust/repeat-loop, r=pcwalton
...
`let v = [24, ..1000];` now more or less emits the same IR as:
```Rust
let mut i = 0;
while i < 1000 {
v[i] = 24;
i += 1;
}
```
LLVM will still turn it into a memset if possible with optimization on.
2013-03-25 20:16:01 -07:00
bors
b48e6998d7
auto merge of #5509 : thestinger/rust/oldmap, r=brson
...
The reasoning for doing it this way is that it's much easier to transition method-by-method to the `Map` API than trying to do the migration all at once.
I found an issue unrelated to my changes in one of the run-fail tests - if it uses `LinearMap`, it still fails but exits with 0. I xfailed it for now and opened [an issue](https://github.com/mozilla/rust/issues/5512 ), because it's not caused by these changes.
2013-03-25 18:01:04 -07:00
Luqman Aden
e7f42f140b
Expand on cleanups in trans for expr_repeat and add to tests.
2013-03-25 15:46:10 -07:00
Niko Matsakis
057c40d5bd
make ty_region give a useful span when it fails
2013-03-25 17:39:15 -04:00
Huon Wilson
89a7407c99
librustc: clean-up expr_repeat loop generation: use native integers
2013-03-24 14:19:31 -07:00
Huon Wilson
12df65470f
Kill some warnings: unused imports and old #[deny(..)]s.
2013-03-25 01:17:23 +11:00
Luqman Aden
441313fc0c
librustc: emit loop for expr_repeat instead of 2n instructions in [x, ..n]
2013-03-24 00:59:44 -07:00
bors
a56ec8c134
auto merge of #5515 : nikomatsakis/rust/issue-5514-flexible-coherence-rules, r=pcwalton
...
See issue #5514
r? @pcwalton
2013-03-23 12:36:53 -07:00
Niko Matsakis
a1b4afe067
Update coherence rules to be more flexible for impl Trait for Type
2013-03-23 09:49:47 -04:00
Daniel Micay
11ca2efce1
turn std::oldmap into a wrapper around LinearMap
2013-03-23 02:16:14 -04:00
Patrick Walton
6d81307a9b
librustc: Add explicit lifetime binders and new lifetime notation in core/std/syntax/rustc
2013-03-22 22:24:35 -07:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -07:00
bors
e9b077c0e9
auto merge of #5488 : pcwalton/rust/depure, r=pcwalton
2013-03-22 13:00:56 -07:00
Patrick Walton
e7c60c141b
librustc: Remove pure
from libsyntax and librustc.
2013-03-22 12:57:27 -07:00
bors
b6f9aa1fd7
auto merge of #5483 : pcwalton/rust/static-syntax, r=graydon
...
r? @nikomatsakis
2013-03-22 11:21:48 -07:00
Patrick Walton
4634f7edae
librustc: Remove all uses of static
from functions. rs=destatic
2013-03-22 10:27:39 -07:00
Alex Crichton
c0bbc6242f
Removing some unused imports
2013-03-22 11:49:45 -04:00
Andrew Paseltiner
9966eaaba4
rustc: replace uses of old deriving attribute with new one
2013-03-22 06:24:19 -04:00
bors
9584c60871
auto merge of #5484 : pcwalton/rust/snapshots, r=pcwalton
2013-03-22 00:00:50 -07:00
bors
d52408d46a
auto merge of #5480 : pcwalton/rust/at-const, r=pcwalton
...
r? @catamorphism
2013-03-21 20:39:51 -07:00
Patrick Walton
e7dbe6cd6f
librustc: Register new snapshots
2013-03-21 18:10:20 -07:00
Patrick Walton
94327d00c6
librustc: Replace the &static
bound with 'static
2013-03-21 17:31:35 -07:00
Patrick Walton
d4fee24c7c
librustc: Forbid destructors from being attached to any structs that might contain non-Owned fields. r=nmatsakis
2013-03-21 17:31:34 -07:00
Marvin Löbel
0a47cd5ef1
Un-renamed trim and substr functions.
2013-03-21 23:06:05 +01:00
Marvin Löbel
ee2f3d9673
Switched over substr and trim functions in str to be non-allocating, temporary renamed them to better track use-sites
2013-03-21 23:06:04 +01:00
bors
6aa612a909
auto merge of #5461 : catamorphism/rust/flagless, r=nikomatsakis
...
r? @nikomatsakis The typechecker previously passed around a boolean return flag to
indicate whether it saw something with type _|_ (that is, something
it knows at compile-time will definitely diverge) and also had some
manual checks for the `ty_err` pseudo-type that represents a previous
type error. This was because the typing rules implemented by the
typechecker didn't properly propagate _|_ and ty_err. I fixed it.
This also required changing expected error messages in a few tests,
as now we're printing out fewer derived errors -- in fact, at this
point we should print out no derived errors, so report any that
you see (ones that include "[type error]") as bugs.
2013-03-21 11:46:00 -07:00
Tim Chevalier
f36f9fc91c
rustc: Comments only - explain the invariant about ty_err and ty_bot a little
2013-03-21 11:32:57 -07:00
Patrick Walton
5726fd4526
librustc: Forbid access to cross-crate private static methods
2013-03-21 09:47:17 -07:00
bors
56d288d0dc
auto merge of #5464 : luqmana/rust/const-pat, r=pcwalton
...
r? @pcwalton
2013-03-21 08:49:13 -07:00
bors
b8899138f8
auto merge of #5466 : Kimundi/rust/view-slice-rename, r=bstrie
...
A slice now always refers to something that returns an borrowed pointer, views don't exist anymore. If you want to have an explictit copy of a slice, use `to_owned()`
2013-03-21 07:06:54 -07:00
bors
0b4f2687ce
auto merge of #5470 : sanxiyn/rust/remove-oldmap-2, r=sanxiyn
...
Referencing #4986 .
2013-03-21 06:15:58 -07:00
Seo Sanghyeon
e2b9cddbbb
Switch impls_seen from oldmap
2013-03-21 22:11:30 +09:00
Marvin Löbel
9d9a209e9a
back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> slice_unique
2013-03-21 14:05:57 +01:00
Seo Sanghyeon
f0beb8c059
Switch CoherenceInfo from oldmap
2013-03-21 20:55:28 +09:00
Seo Sanghyeon
dad5c3029d
Time type checking passes separately
2013-03-21 19:28:58 +09:00
bors
3ac89737ca
auto merge of #5465 : sanxiyn/rust/remove-oldmap, r=sanxiyn
...
Improves resolve by 20% as measured by time-passes on rustc.
2013-03-21 01:21:51 -07:00
Seo Sanghyeon
f68f2282c1
Switch Module.import_resolutions from oldmap
2013-03-21 17:10:57 +09:00
Luqman Aden
2ed80c35e2
librustc: Fix path-qualified and cross-crate constants in match patterns.
2013-03-21 00:38:30 -07:00
Seo Sanghyeon
e84323e9b8
Switch Module.children from oldmap
2013-03-21 16:26:38 +09:00
Tim Chevalier
db00362313
Make typechecker compositional
...
The typechecker previously passed around a boolean return flag to
indicate whether it saw something with type _|_ (that is, something
it knows at compile-time will definitely diverge) and also had some
manual checks for the `ty_err` pseudo-type that represents a previous
type error. This was because the typing rules implemented by the
typechecker didn't properly propagate _|_ and ty_err. I fixed it.
This also required changing expected error messages in a few tests,
as now we're printing out fewer derived errors -- in fact, at this
point we should print out no derived errors, so report any that
you see (ones that include "[type error]") as bugs.
2013-03-20 19:44:38 -07:00
Marvin Löbel
a7d296f24c
renamed str::view -> slice_DBG_BRWD
...
renamed str::slice -> slice_DBG_UNIQ
changed vec slice method -> to_owned()
renamed vec view method -> slice_V_DBG_BRWD
2013-03-21 01:50:32 +01:00
bors
6f3d1686b2
auto merge of #5447 : erickt/rust/incoming, r=graydon
...
This normalizes the how we call reverse iteration functions. It also adds a char_len method, and a method to iterate backwards over a string.
2013-03-20 15:30:50 -07:00
bors
99ac243e7b
auto merge of #5445 : nikomatsakis/rust/issue-3678-refactor-trans_call, r=graydon
...
Refactor trans_call to separate out the translation of the arguments, environment, and return pointer. Towards #3678 . r? @brson
2013-03-20 13:15:58 -07:00
bors
0847d52a86
auto merge of #5450 : pcwalton/rust/warnings, r=graydon
...
r? @graydon
2013-03-20 11:52:09 -07:00
Patrick Walton
e72d011f68
librustc: Remove debug code and add scary warnings for rusti/rustpkg
2013-03-20 11:44:01 -07:00
Niko Matsakis
ad70c748c3
Apply explicit self transformation before we enter check_fn
2013-03-20 06:17:03 -04:00
Niko Matsakis
00f97b9fb0
Refactor the self-info so that the def-id is carried in ty_self()
...
and the fn_ctxt doesn't need any self_info field at all.
Step towards fixing `fn(&self)` (cc #4846 ) to have a distinct
lifetime.
2013-03-20 06:14:53 -04:00
bors
db4dc1ffe2
auto merge of #5443 : alexcrichton/rust/less-bad-copy, r=catamorphism
...
Removes a lot of instances of `/*bad*/ copy` throughout libsyntax/librustc. On the plus side, this shaves about 2s off of the runtime when compiling `librustc` with optimizations.
Ideally I would have run a profiler to figure out which copies are the most critical to remove, but in reality there was a liberal amount of `git grep`s along with some spot checking and removing the easy ones.
2013-03-20 00:09:47 -07:00
Alex Crichton
3fac7cce8f
rustc: Remove some bad copies throughout
2013-03-20 01:28:32 -04:00
bors
f3c879fdd8
auto merge of #5442 : pcwalton/rust/extern-block-restriction, r=pcwalton
...
r? @graydon
2013-03-19 21:57:49 -07:00
Erick Tryzelaar
fe74a1c9a2
core: rename vec::rev_each{,i} to vec::each{,i}_reverse
...
I'm making this change because the _reverse suffix is more commonly
used in libcore/libstd.
2013-03-19 20:24:04 -07:00
Patrick Walton
2e7ec80bcc
librustc: Enforce privacy for static methods.
...
This starts moving a bunch of privacy checks into the privacy
checking phase and out of resolve.
2013-03-19 13:40:48 -07:00
bors
e1888948c6
auto merge of #5426 : nikomatsakis/rust/issue-4846-lifetimes-in-expl-self, r=pcwalton
...
(this will be needed for snapshotting at some point)
r? @pcwalton
2013-03-19 12:43:14 -07:00
bors
a14ec73cd2
auto merge of #5356 : jld/rust/enum-less-magic, r=graydon
...
Fixes #1645 .
2013-03-19 11:43:10 -07:00
Niko Matsakis
e821671989
Refactor trans_call to separate out the translation of the arguments, environment, and return pointer
2013-03-19 14:40:34 -04:00
Luqman Aden
8b66578e66
Allow expressions that are not just a single value for repeated fixed length vector syntax.
2013-03-18 17:31:41 -07:00
Luqman Aden
787f5bb0db
Now actually allow using constants in those constant expressions for [T * n].
2013-03-18 17:31:41 -07:00
Luqman Aden
42f95d055c
Allow constant expressions in [Type * n].
2013-03-18 17:31:41 -07:00
Patrick Walton
e78f2e2ac5
librustc: Make the compiler ignore purity.
...
For bootstrapping purposes, this commit does not remove all uses of
the keyword "pure" -- doing so would cause the compiler to no longer
bootstrap due to some syntax extensions ("deriving" in particular).
Instead, it makes the compiler ignore "pure". Post-snapshot, we can
remove "pure" from the language.
There are quite a few (~100) borrow check errors that were essentially
all the result of mutable fields or partial borrows of `@mut`. Per
discussions with Niko I think we want to allow partial borrows of
`@mut` but detect obvious footguns. We should also improve the error
message when `@mut` is erroneously reborrowed.
2013-03-18 17:21:16 -07:00
Patrick Walton
c4db4faefa
libsyntax: Stop parsing old lifetimes, except for the ones on data type declarations.
2013-03-18 17:21:15 -07:00
Patrick Walton
352c070365
librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming
2013-03-18 17:21:14 -07:00
Niko Matsakis
a6187c62e9
Make &self permit explicit lifetimes, but don't really use them
...
(this will be needed for snapshotting at some point).
2013-03-18 15:03:37 -04:00
Luqman Aden
83f2d4ab3d
Fix type_use for inline asm.
2013-03-15 18:57:19 -07:00
Luqman Aden
d68b98a5bf
Don't use by_val for passing asm operands.
2013-03-15 18:55:44 -07:00
Luqman Aden
3d56936be3
Tidy.
2013-03-15 18:55:44 -07:00
Luqman Aden
e182ac4bbd
Actually use no or multiple operands properly.
2013-03-15 18:55:44 -07:00
Luqman Aden
9ead7dad93
Implicitly use addr_of for output operands in asm.
2013-03-15 18:55:44 -07:00
Luqman Aden
59dcbd9f1c
Initial support for output operands in asm.
2013-03-15 18:55:44 -07:00
Luqman Aden
d8ab47e7f9
Properly handle input operands for inline asm.
2013-03-15 18:55:43 -07:00
Luqman Aden
6d078db952
Actually pass inline asm operands around.
2013-03-15 18:55:43 -07:00
Luqman Aden
471d2b1765
Inline asm exprs should be RvalueStmtExpr.
2013-03-15 18:55:43 -07:00
Patrick Walton
1c8490b0d9
librustc: Remove another deprecated use of as Trait
. rs=burningtree
2013-03-14 08:03:05 -07:00
Patrick Walton
aa4c19b6ab
librustc: Allow path-qualified constants in patterns
2013-03-13 20:07:11 -07:00
Patrick Walton
8fa66e8e07
librustc: Remove implicit self from the language, except for old-style drop blocks.
2013-03-13 20:07:10 -07:00
Patrick Walton
a410652bc9
librustc: Remove "base types" from the language.
2013-03-13 20:07:09 -07:00
Patrick Walton
b85158e23a
librustc: Remove overloaded operator autoderef.
2013-03-13 20:07:09 -07:00
Patrick Walton
b1c699815d
librustc: Don't accept as Trait
anymore; fix all occurrences of it.
2013-03-13 20:07:09 -07:00
Patrick Walton
24a0de4e7f
librustc: Separate out trait storage from evec/estr storage
2013-03-13 20:07:08 -07:00
ILyoan
688c4c403d
Remove unused import in librustc
2013-03-14 09:52:51 +09:00
ILyoan
1095bbe5eb
Remove unused variable
2013-03-14 09:52:51 +09:00
bors
ab5472a724
auto merge of #5307 : nikomatsakis/rust/remove-by-val, r=nikomatsakis
...
This is done in two steps:
First, we make foreign functions not consider modes at all. This is because previously ++ mode was the only way to pass structs to foreign functions and so forth. We also add a lint mode warning if you use `&&` mode in a foreign function, since the semantics of that change (it used to pass a pointer to the C function, now it doesn't).
Then, we remove by value and make it equivalent to `+` mode. At the same time, we stop parsing `-` mode and convert all uses of it to `+` mode (it was already being parsed to `+` mode anyhow).
This obsoletes pull request #5298 .
r? @brson
2013-03-13 14:57:55 -07:00
Niko Matsakis
852619d5d7
Remove ++
mode from the compiler (it is parsed as +
mode)
...
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-13 17:00:09 -04:00
Niko Matsakis
efc7f82bc4
Revamp foreign code not to consider the Rust modes. This requires
...
adjusting a few foreign functions that were declared with by-ref
mode. This also allows us to remove by-val mode in the near future.
With copy mode, though, we have to be careful because Rust will implicitly pass
somethings by pointer but this may not be the C ABI rules. For example, rust
will pass a struct Foo as a Foo*. So I added some code into the adapters to
fix this (though the C ABI rules may put the pointer back, oh well).
This patch also includes a lint mode for the use of by-ref mode
in foreign functions as the semantics of this have changed.
2013-03-13 16:59:37 -04:00
bors
67b0f3d5b2
auto merge of #5339 : catamorphism/rust/less-copy, r=catamorphism
2013-03-13 13:57:56 -07:00
bors
7e6020db63
auto merge of #5319 : brson/rust/debuginfo, r=brson
...
Continuing #5140
For the sake of getting this merged I've disabled debuginfo tests on mac (where running gdb needs root). Please feel free to follow up with further improvements.
2013-03-13 11:34:00 -07:00
bors
695e9fd13c
auto merge of #5293 : brson/rust/logging, r=brson
...
r? @graydon
This removes `log` from the language. Because we can't quite implement it as a syntax extension (probably need globals at the least) it simply renames the keyword to `__log` and hides it behind macros.
After this the only way to log is with `debug!`, `info!`, etc. I figure that if there is demand for `log!` we can add it back later.
I am not sure that we ever agreed on this course of action, though I *think* there is consensus that `log` shouldn't be a statement.
2013-03-13 10:40:07 -07:00
Jed Davis
a301db7eef
Represent enums with regular structs; no more alignment-breaking casts.
2013-03-13 10:25:49 -07:00
Tim Chevalier
f9269a1bda
rustc: One Less Bad Copy
2013-03-12 10:04:35 -07:00
Luqman Aden
18b71a7831
Add alignstack option for inline asm.
2013-03-12 01:03:35 -07:00
Luqman Aden
7f500ab4c1
Keep everything tidy.
2013-03-12 01:03:34 -07:00
Luqman Aden
5aa734d6a1
Parse operands properly and add a way to indicate volatile asm.
2013-03-12 01:03:34 -07:00
Luqman Aden
bcc6c3e3db
Require unsafe block for inline assembly.
2013-03-12 01:03:34 -07:00
Luqman Aden
fc78b93c41
Wrap llvm::InlineAsm::AsmDialect
2013-03-12 01:03:34 -07:00
Luqman Aden
ecccc0d649
Parse inline assembly.
2013-03-12 01:03:34 -07:00
Brian Anderson
82f190355b
Remove uses of log
2013-03-11 23:19:42 -07:00
bors
9b9ffd5b41
auto merge of #5304 : jld/rust/const-adjustments, r=graydon
...
These changes make const translation use adjustments (autodereference, autoreference, bare-fn-to-closure), like normal code does, replacing some ad-hoc logic that wasn't always right.
As a convenient side-effect, explicit dereference (both of pointers and of newtypes) is also supported in const expressions.
There is also a “bonus fix” for a bug in the pretty-printer exposed by one of the added tests.
2013-03-11 21:12:43 -07:00
Brian Leibig
c978025d0d
Debuginfo revamp
2013-03-11 14:09:06 -07:00
bors
ce24ebb858
auto merge of #5314 : jld/rust/adt-simplification, r=pcwalton
...
Struct and enum representations have some complicatedness that's no longer needed. Now that everything's in one place and has access to anything we'd want to know about the type, flatten some of that out. Slight changes to representations in some cases.
2013-03-11 11:54:49 -07:00
Patrick Walton
08c840205e
librustc: Lint the old drop
destructor notation off
2013-03-11 09:36:00 -07:00
Patrick Walton
7353568cd8
librustc: Remove old-style operator overloading
2013-03-11 09:36:00 -07:00
Patrick Walton
dc4869945c
librustc: Remove newtype enums from librustc
2013-03-11 09:35:59 -07:00
Patrick Walton
d18f785457
librustc: Replace all uses of fn()
with &fn()
. rs=defun
2013-03-11 09:35:58 -07:00
Seo Sanghyeon
9e85589ad3
Implement vector destructuring from tail
2013-03-11 19:01:51 +09:00
Jed Davis
9eaa608b04
Get rid of the Unit
enum representation.
...
The only thing we really lose is that C-like enums with one variant and a
non-zero discriminant now take up space, but I do not think this is a
common usage. As previously noted, that was mostly there for
transitional compatibility with the pre-adt.rs codebase.
2013-03-11 00:01:04 -07:00
Jed Davis
e6b5e00ea2
Simplify struct representation.
...
Out goes the extra layer of struct wrapping; the destructedness flag is
added to the end of the struct. This means that, if the struct
previously had alignment padding at the end, the flag will live there
instead of increasing the struct size.
2013-03-10 23:57:38 -07:00
Niko Matsakis
62aa8d7de9
Simplify the interface to check_fn by pulling some of the madness out to its callers
2013-03-10 15:05:22 -04:00
Jed Davis
1df0a0ba0f
Const dereference works now, so allow it.
2013-03-09 17:40:59 -08:00
Jed Davis
122e4a28b8
Don't copy const data to do an autoderef+autoref.
2013-03-09 17:40:59 -08:00
Jed Davis
e42afd3129
Let const_deref "dereference" newtypes.
2013-03-09 17:40:59 -08:00
Jed Davis
5ca1d353de
Implement most of adjustment handling for consts.
...
Changes the ad-hoc closure adjustment into using adjustment info instead
of being separately driven from types, and likewise for autoderef.
Also takes care of autoref (the cases we should be seeing in consts,
at least, since we can't be doing method calls which would need the
ref-to-vec mode), which didn't quite work right previously.
However, "dereference" of a newtype isn't handled yet....
2013-03-09 17:40:59 -08:00
Jed Davis
5571ca9b21
Break out const_addr_of.
2013-03-09 17:40:59 -08:00
Niko Matsakis
7cbd4b20ee
Remove @ast::Region and replace with @ast::Lifetime.
...
Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.
2013-03-09 19:43:59 -05:00
Ben Striegel
fdf69dd7b0
Finish de-implicit-selfing everything but the test suite
2013-03-08 19:34:39 -05:00
Alex Crichton
2c87920f52
test: Removing dvec uses
2013-03-08 09:54:41 -05:00
Alex Crichton
2a72099063
rustc: Remove uses of DVec
2013-03-08 09:54:20 -05:00
Patrick Walton
d661711cc2
test: Fix tests.
2013-03-07 22:37:58 -08:00
Patrick Walton
9a17ef9b52
librustc: Stop parsing assert
.
2013-03-07 22:37:57 -08:00
Patrick Walton
d7e74b5e91
librustc: Convert all uses of assert
over to fail_unless!
2013-03-07 22:37:57 -08:00
Patrick Walton
0ea031bcb8
librustc: Remove record patterns from the compiler
2013-03-07 22:37:03 -08:00
Patrick Walton
954ae9c975
libsyntax: Remove struct literal expressions from the compiler
2013-03-07 22:32:55 -08:00
Patrick Walton
4e3dbfe052
librustc: Remove structural record types from the compiler
2013-03-07 22:32:54 -08:00
Patrick Walton
239e64242c
libsyntax: Stop parsing structural record types
2013-03-07 22:32:52 -08:00
Josh Matthews
27668fbfab
Allow casting integers to unsafe pointers in constant expressions.
2013-03-07 15:36:55 -05:00
Josh Matthews
7bb03345cf
Inline constants across crates.
2013-03-07 15:34:52 -05:00
Josh Matthews
50277ec555
Permit casting region pointers to unsafe ones.
2013-03-07 14:48:28 -05:00
Jed Davis
a69ec175f8
GC now-unused imports
2013-03-06 20:41:58 -08:00
Jed Davis
1f9bc64bae
adt.rs renaming: "field" rather than "element"; set_discr -> start_init.
...
This way "field" refers to the abstraction and "element" (as in get_elt,
"get element pointer", etc.) refers to the low-level LLVM operations.
2013-03-06 20:41:58 -08:00
Jed Davis
e13111fc5a
Even more comments for ADT-related interfaces
2013-03-06 20:41:58 -08:00
Jed Davis
6840b48074
trans_cast_to_int is hard to explain; make it trans_get_discr instead.
2013-03-06 20:41:58 -08:00
Jed Davis
8dca7be1df
A little more cosmetic cleanup
2013-03-06 20:41:58 -08:00
Jed Davis
d6acb96c9c
Add lots of comments to adt.rs, and some minor cleanup.
2013-03-06 20:41:58 -08:00
Jed Davis
a9026c7f19
Memoize trans::adt::represent_type
2013-03-06 20:41:58 -08:00
Jed Davis
a8237a46f1
Bonus Fix: typarams are no longer inhabited
2013-03-06 20:41:58 -08:00
Jed Davis
8105da8067
GC the now-unused old layout helpers
2013-03-06 20:41:58 -08:00
Jed Davis
b6bcf1a81f
Finish removing struct layout dependencies from glue.
2013-03-06 20:41:58 -08:00
Jed Davis
71b6e945c1
glue::trans_struct_drop -> adt
2013-03-06 20:41:58 -08:00
Jed Davis
5ca4fdfc98
Convert trans_tuple_struct to trans::adt.
...
Surely this cannot be the best way to get the type.
2013-03-06 20:41:57 -08:00
Jed Davis
29d0430c56
Convert iter_structural_ty to trans::adt
2013-03-06 20:41:57 -08:00
Jed Davis
c0f6909f7e
base::iter_structural_ty: structs and records
2013-03-06 20:41:57 -08:00
Jed Davis
68b3f0d8a4
base::iter_structural_ty: tuples
2013-03-06 20:41:57 -08:00
Jed Davis
ca450e345f
Move trans_enum_variant to trans::adt.
...
As a result, trans_enum_variant no longer cares what kind of enum it's
dealing with, so the "degen" parameter goes away in a bunch of places.
2013-03-06 20:41:57 -08:00
Jed Davis
6bb6baba2c
Renovate cast-to-int
2013-03-06 20:41:57 -08:00
Jed Davis
075affa50d
Convert const field extraction to trans::adt
2013-03-06 20:41:57 -08:00
Jed Davis
59daf76a8d
Make functional-update struct consts not an ICE
2013-03-06 20:41:57 -08:00
Jed Davis
bb689c09f5
Convert const ADT construction to trans::adt.
...
Also converts const cast-from-enum, because it used the same routine to
get the discriminant as what's renovated to construct the enums.
Also fixes ICE on struct-like variants as consts, and provides a slightly
less bad ICE for functional-update-like struct expressions in consts.
2013-03-06 20:41:57 -08:00
Jed Davis
2a028c5ab8
Convert newtype "dereference" to trans::adt.
...
Note that in the ByValue case (which can't happen? yet?) we're still
effectively bitcasting, I think. So this change adds a way to assert
that that's safe.
Note also, for future reference, that LLVM's instcombine pass will turn
a bitcast into a GEP(0, 0, ...) if possible.
2013-03-06 20:41:57 -08:00
Jed Davis
c7325c4172
Convert the rest of the adt GEPi's in _match
2013-03-06 20:41:57 -08:00
Jed Davis
3a4714d92e
Renovate field projection expressions
2013-03-06 20:41:57 -08:00
Jed Davis
40313fb6b0
Renovate nullary variant construction
2013-03-06 20:41:57 -08:00
Jed Davis
fdd28451f6
Convert expr_struct to use adt, and try to share code with tuples.
2013-03-06 20:41:57 -08:00
Jed Davis
5cbc2571c1
Renovate expr_tup translation
2013-03-06 20:41:57 -08:00
Jed Davis
b673b26f03
Factor out discriminant loading more, for use in casts.
2013-03-06 20:41:57 -08:00
Jed Davis
a5030e7615
Wrap const structs in as many LLVM structs as the non-const case.
...
This, like the previous change for unit-like enums, is only necessary
until everything is fully converted to use trans::adt.
2013-03-06 20:40:42 -08:00
Jed Davis
e09a843973
Handle unit-like types specially.
...
This change remains separate from the addition of adt.rs, even though
it's necessary for compatibility with pre-trans::adt representation,
to serve as an example of a change to the representation logic.
2013-03-06 20:37:59 -08:00
Jed Davis
7b2b4faba8
Add a test for enum discriminant range overflow.
...
It causes an LLVM assertion for every host/target word-size combination
on incoming at the time of this writing.
2013-03-06 20:37:28 -08:00
Jed Davis
04ecab909a
Re-add discriminant range annotations
2013-03-06 20:37:28 -08:00
Jed Davis
8a1706610b
Avoid unnecessary casts in struct_GEP
2013-03-06 20:37:28 -08:00
Jed Davis
5e2302a56f
Convert type_of to use trans::adt.
2013-03-06 20:37:28 -08:00
Jed Davis
c4682dcabe
Convert match on enums to use trans::adt.
2013-03-06 20:37:28 -08:00
Jed Davis
626ad484fe
Unified algebraic datatype representation implementation, initial version.
...
Later changes on this branch adapt the rest of rustc::middle::trans
to use this module instead of scattered hard-coded knowledge of
representations; a few of them also have improvements or cleanup for
adt.rs (and many added comments) that weren't drastic enough to justify
changing history to move them into this commit.
2013-03-06 20:37:23 -08:00
bors
95c07479dd
auto merge of #5182 : youknowone/rust/enum-cast, r=brson
...
Fix #4926
2013-03-06 16:51:47 -08:00
bors
8c3728f839
auto merge of #5125 : nikomatsakis/rust/issue-4846-lifetime-defaults, r=nikomatsakis
...
Work towards #4846 .
- Institute new region defaults where all omitted regions get a fresh lifetime.
- Require explicit region names except in functions.
- Fix a bug in region parameterization inference. I've been putting this off because it will not be important when we remove RP inference in favor of explicit declarations, but then it was blocking this patch.
r? @pcwalton
2013-03-06 13:45:51 -08:00
Niko Matsakis
3280e5a33d
Improve error messages when illegal lifetimes are used
2013-03-06 15:12:58 -05:00
Niko Matsakis
d26f6eddfd
Convert region parameterization to change defaults and handle
...
methods correctly
2013-03-06 15:12:58 -05:00
Niko Matsakis
824b9e7dbf
convert FnCtxt methods from @mut self to &self
2013-03-06 15:12:57 -05:00
Niko Matsakis
3168fe06ff
Add manual &self/ and &static/ and /&self declarations that
...
are currently inferred. New rules are coming that will require
them to be explicit. All add some explicit self declarations.
2013-03-06 15:12:57 -05:00
bors
02623871ed
auto merge of #5246 : brson/rust/demode, r=brson
...
r?
2013-03-06 11:51:57 -08:00
Brian Anderson
f1a8b58811
rustc: De-mode some bits of trans
2013-03-06 11:18:34 -08:00
bors
876b6ba792
auto merge of #5253 : nikomatsakis/rust/issue-5243, r=graydon
...
them to be non-monomorphic. Merely having lifetime parameters
is not enough to qualify for that status. Fixes #5243 .
r?
2013-03-06 10:54:58 -08:00
Niko Matsakis
704cd648ac
Fix a bug with region-parameterized enums etc where trans considered
...
them to be non-monomorphic. Merely having lifetime parameters
is not enough to qualify for that status. Fixes #5243 .
2013-03-06 13:01:16 -05:00
Niko Matsakis
6d764cc361
Make object types not implement associated trait. Fixes #5087 .
2013-03-06 11:02:19 -05:00
Niko Matsakis
6267339d68
Fix bug in coherence that causes all cross-crate impls to be regarded as
...
inherent impls, not just those of the `impl Type` variety.
2013-03-06 11:02:19 -05:00
Erick Tryzelaar
743cfce703
core: convert vec::{last,last_opt} to return references
2013-03-05 19:39:18 -08:00
Erick Tryzelaar
a18bf8c67d
rustc: minor code cleanup
2013-03-05 19:37:50 -08:00
Erick Tryzelaar
8f263dd023
rustc: remove some copies
2013-03-05 19:37:05 -08:00
Erick Tryzelaar
d60747a248
core: convert vec::{init,initn} to return references
2013-03-05 19:37:04 -08:00
Erick Tryzelaar
5ae06ae9de
core: convert vec::{tail,tailn} to return references
2013-03-05 19:37:04 -08:00
Patrick Walton
c4075492ad
librustc: Fix silly bug in AST conversion for const vstores. rs=bugfix
...
Means that we'll need another snapshot to rid the language of `[const T]`.
2013-03-05 10:18:36 -08:00
Niko Matsakis
cbfd88a486
Update region inference for traits so that a method with
...
explicit self doesn't incorrectly cause the entire trait to
be tagged as being region-parameterized.
Fixes #5224 .
2013-03-05 08:46:23 -05:00
bors
65986ba0c0
auto merge of #5215 : jld/rust/fn-const-env, r=graydon
...
Fixes #5210 ; unblocks #5183 .
2013-03-05 03:12:43 -08:00
bors
eddefbc893
auto merge of #5212 : thestinger/rust/iter, r=graydon
...
A small step towards fixing #2827
2013-03-05 02:06:50 -08:00
Alex Crichton
cb4ab76e4a
Adding missing imports for tests, and gate off others
2013-03-04 12:27:01 -05:00
Alex Crichton
dfb5c10dea
Remove unused imports throughout src/
2013-03-04 12:27:01 -05:00
Alex Crichton
55461d888f
Change the default level of unused_imports to warn
2013-03-04 12:27:01 -05:00
Jyun-Yan You
c2a61d7df3
rustc: implement MIPS O32 ABI
2013-03-03 20:02:03 -08:00
Jyun-Yan You
5150b9811b
rustc: MIPS32 support
2013-03-03 19:27:27 -08:00
Jed Davis
514fd3efec
Assert that constants are translated with the correct size.
2013-03-03 16:40:44 -08:00
Jed Davis
5f0a123f0d
Construct const fns based on the type, not the definition.
...
Otherwise we can add a null environment when we shouldn't.
Fixes #5210 .
2013-03-03 16:40:41 -08:00
Daniel Micay
af645e8487
replace option::iter with a BaseIter impl
2013-03-03 11:01:17 -05:00
Patrick Walton
ccec510f39
librustc: Stop parsing fn@
, fn~
, and fn&
2013-03-02 18:47:48 -08:00
Patrick Walton
97fd421319
librustc: Remove fn@
, fn~
, and fn&
from librustc. rs=defun
2013-03-02 16:49:31 -08:00
Patrick Walton
a3f728238b
librustc: Forbid chained imports and fix the logic for one-level renaming imports
2013-03-02 16:49:30 -08:00
bors
347d19934d
auto merge of #5198 : youknowone/rust/repeat-count, r=brson
...
Before:
````
test.rs:3:21: 3:30 error: expected constant integer for repeat count but found variable
test.rs:3 let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
^~~~~~~~~
````
After:
````
test.rs:3:27: 3:28 error: expected constant integer for repeat count but found variable
test.rs:3 let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
^
````
2013-03-02 15:33:39 -08:00
Jeong YunWon
b662d3c922
Better highlight for repeat count error
...
Before:
````
test.rs:3:21: 3:30 error: expected constant integer for repeat count but found variable
test.rs:3 let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
^~~~~~~~~
````
After:
````
test.rs:3:27: 3:28 error: expected constant integer for repeat count but found variable
test.rs:3 let a = ~[0, ..n]; //~ ERROR expected constant integer for repeat count but found variable
^
````
2013-03-02 17:44:35 +09:00
Jeong YunWon
7921810842
Allow constant c-like enum to integral/float cast
2013-03-02 16:16:56 +09:00
Erick Tryzelaar
aa3505d8ff
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-03-01 20:35:55 -08:00
Patrick Walton
657c442eca
Merge remote branch 'nmatsakis/parser-perf-problem' into incoming
2013-03-01 18:09:27 -08:00
Niko Matsakis
ca9549bdfc
Avoid calling to_vec() unnecessarily in parser.
...
Also, rename the OptVec-to-vector conversion method to
opt_vec::take_vec() and convert from a method into a fn
because I fear strange bugs.
2013-03-01 19:58:17 -05:00
Patrick Walton
cab8ec242b
librustc: Add missing import. rs=burningtree
2013-03-01 10:43:28 -08:00
Patrick Walton
02a4b5bed3
Merge remote branch 'nmatsakis/issue-4808-representation-of-extern-fn' into incoming
2013-03-01 08:43:36 -08:00
Erick Tryzelaar
85fecd0ba7
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-03-01 07:01:48 -08:00
bors
a660bb362c
auto merge of #5180 : catamorphism/rust/post-snapshot, r=catamorphism
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 22:45:37 -08:00
Tim Chevalier
6b6d15ac20
Remove code that was awaiting a snapshot
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 20:30:50 -08:00
Niko Matsakis
4ecb672d7f
Remove legacy object creation mode, and convert remaining uses of it
2013-02-28 20:28:04 -05:00
Alex Crichton
2df07ddc25
Fix implicit leaks of imports throughout libraries
...
Also touch up use of 'pub' and move some tests around so the tested functions
don't have to be 'pub'
2013-02-28 18:00:34 -05:00
Alex Crichton
f2837fa3f5
Fix leaking immediate children and types via glob imports
2013-02-28 17:59:56 -05:00
Alex Crichton
94a07b6e4a
Fix leaking non-public 'use' statements with glob imports
2013-02-28 17:59:56 -05:00
Niko Matsakis
febdb49e92
Change bare functions so that they are represented by a single pointer.
...
The basic idea is that we add a new kind of adjustment, AutoAddEnv, that pads
an extern fn into a closure by adding the extra NULL word. Then there are a few
misc changes in trans to get the LLVM types to match up.
Fixes #4808 .
2013-02-28 16:03:49 -05:00
Patrick Walton
2859c1ac6d
librustc: Enforce cross-crate method privacy
2013-02-28 11:32:26 -08:00
Patrick Walton
09a2b4e599
librustc: Make methods private if the impl is private
2013-02-28 11:32:26 -08:00
Patrick Walton
107bf96ff0
librustc: Mark all type implementations public. rs=impl-publicity
2013-02-28 11:32:24 -08:00
Erick Tryzelaar
d2c4b6492d
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-28 07:25:49 -08:00
Erick Tryzelaar
3953bdd812
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-28 07:25:31 -08:00
bors
b171d0ef7b
auto merge of #5159 : brson/rust/rtcall, r=brson
2013-02-28 01:12:38 -08:00
bors
c705440ee3
auto merge of #5155 : bstrie/rust/dedrop, r=pcwalton
...
This removes all but 6 uses of `drop {}` from the entire codebase. Removing any of the remaining uses causes various non-trivial bugs; I'll start reporting them once this gets merged.
2013-02-27 23:30:40 -08:00
Brian Anderson
2f858de1c3
Remove the last remnants of rtcalls
2013-02-27 18:34:04 -08:00
bors
d0a12347de
auto merge of #5141 : nikomatsakis/rust/region-syntax-expl-lifetimes, r=nikomatsakis
...
Major changes are:
- replace ~[ty_param] with Generics structure, which includes
both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;
cc #4846
r? @graydon
2013-02-27 17:36:41 -08:00
Niko Matsakis
c623d21e38
Introduce lifetime declarations into the lists of type parameters.
...
Major changes are:
- replace ~[ty_param] with Generics structure, which includes
both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;
cc #4846
2013-02-27 19:42:09 -05:00
Ben Striegel
43d43adf6b
Turn old drop
blocks into Drop
traits
2013-02-27 19:14:19 -05:00
Erick Tryzelaar
7f5d4cbda0
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-27 14:05:39 -08:00
bors
5fc0eccdfa
auto merge of #5070 : youknowone/rust/struct-match2, r=nikomatsakis
...
It is reversed that type of arm pattern and type of search pattern
in error message.
2013-02-27 12:21:49 -08:00
Erick Tryzelaar
7d0ec86c4a
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
2013-02-27 11:03:21 -08:00
Jeong YunWon
35baf5b202
Fix reversed current/expected type
...
Fix some reversed type of arm pattern and type of search pattern
in error message.
2013-02-28 03:31:22 +09:00
Patrick Walton
07c3f5c0de
librustc: Forbid pub
or priv
before trait implementations
2013-02-27 09:40:16 -08:00
bors
061a223723
auto merge of #5118 : youknowone/rust/match-guard, r=nikomatsakis
...
Fix ICE while there is no remained arms after checking guards.
This fix #3601 also.
2013-02-27 06:06:44 -08:00
bors
f4e8ac21cd
auto merge of #5135 : brson/rust/start, r=pcwalton
...
r?
#3406
Pretty straightforward. I'm using opaque pointers instead trying to get trans and core to agree on the types of the main function and crate map. One oddity is that this required changing the order of the `-lrustrt` argument to the linker in order to resolve `upcall_new_stack`. Linkers are mysterious.
2013-02-26 23:45:39 -08:00
bors
99a902c81d
auto merge of #5120 : jbclements/rust/macros-have-scope, r=pcwalton
...
r?
After this patch, macros declared in a module, function, or block can only be used inside of that module, function or block, with the exception of modules declared with the #[macro_escape] attribute; these modules allow macros to escape, and can be used as a limited macro export mechanism.
This pull request also includes miscellaneous comments, lots of new test cases, a few renamings, and a few as-yet-unused data definitions for hygiene.
2013-02-26 20:00:38 -08:00
Brian Anderson
f4327230fa
Add a 'start' lang item and use it instead of rust_start
2013-02-26 19:43:26 -08:00
bors
28b50a4892
auto merge of #5096 : luqmana/rust/spell, r=catamorphism
...
Address #2281
```
-> % cat foo.rs
fn foo() -> int {
let bar = 10;
bad
}
```
```
-> % rustc foo.rs
foo.rs:4:4: 4:7 error: unresolved name: `bad`. Did you mean: `bar`?
foo.rs:4 bad
^~~
error: aborting due to previous error
```
2013-02-26 19:03:40 -08:00
bors
93a7f237d7
auto merge of #5115 : sanxiyn/rust/arm-abi, r=brson
...
Type size and alignment code needs to be factored, but I didn't want to interfere with MIPS port. Can be done later.
Fix #4797 .
2013-02-26 17:57:41 -08:00
Luqman Aden
a0866d0166
Adjust error messages for compile-fail tests.
2013-02-26 17:23:30 -08:00
Luqman Aden
f460c2adf8
Move levenshtein distance fn to core::str.
2013-02-26 17:23:30 -08:00
Luqman Aden
0a0fcdb018
librustc: offer suggestions for unresolved names.
2013-02-26 17:23:30 -08:00
Alex Crichton
681e6dd40d
Fix using the #[]-style attribute for unused imports
2013-02-26 17:51:26 -05:00
Alex Crichton
7e08d8f23c
Don't warn about 'pub use' statements
2013-02-26 17:51:26 -05:00
bors
44acefd101
auto merge of #5126 : nikomatsakis/rust/issue-4808-representation-of-extern-fn, r=graydon
...
r? @graydon
2013-02-26 13:15:51 -08:00
Niko Matsakis
85aaf39291
Reimplement type_needs_drop on top of TypeContents
2013-02-26 15:28:32 -05:00
bors
0e6d895ed8
auto merge of #5119 : Kimundi/rust/incoming, r=catamorphism
...
Removed deprecated `str()` functions in int-template.rs and uint-template.rs
2013-02-26 10:54:39 -08:00
John Clements
ca147a029e
Change imported macros to use leaky modules rather than leaky functions.
2013-02-26 10:26:41 -08:00
Marvin Löbel
42b0bacd76
Removed deprecated str()
functions in int-template.rs and uint-template.rs
2013-02-26 16:38:30 +01:00
Jeong YunWon
b79c4dc262
Add non-exhaustive check for match guards
...
Fix ICE while there is no remained arms after checking guards
2013-02-26 22:20:02 +09:00
Patrick Walton
9b08cd4903
librustc: Make &const [T]
mean the same thing as &[const T]
2013-02-26 04:18:12 -08:00
Patrick Walton
96bdc34930
librustc: De-[mut] librustc (remove all mutable arrays). rs=demuting
2013-02-26 04:18:12 -08:00
Patrick Walton
e2f90091cf
libcore: Move Cell to core and de-~mut core and std
2013-02-26 04:18:12 -08:00
Patrick Walton
c483aab4ae
librustc: Implement a lint mode for mutable structures; deny by default. r=tjc
2013-02-26 04:18:11 -08:00
Seo Sanghyeon
5098cf5bd2
ARM C ABI implementation
2013-02-26 20:24:15 +09:00
bors
9616b3d11e
auto merge of #5089 : sanxiyn/rust/llvm-struct, r=pcwalton
...
Note on `struct_elt`: the comment is wrong, it actually dereferences the nth element of LLVM struct type if it is a pointer. That's why `T_ptr` is removed in `callee.rs`.
2013-02-25 18:36:39 -08:00
bors
580df4d997
auto merge of #5084 : oncemoreification/rust/issue-4517, r=brson
...
Patch for #4517
This works for fixed vectors, but I am unclear how slices should be printed, simply '&[...]' or...
e.i. How should regions be printed?
2013-02-25 17:36:40 -08:00
bors
6e5705a877
auto merge of #5072 : youknowone/rust/repeat_count, r=brson
...
Fix issue #3645
2013-02-25 16:18:46 -08:00
Erick Tryzelaar
f14409c528
libsyntax: progress on making syntax::visit vecs_implicitly_copyable-free
2013-02-25 07:49:34 -08:00
Erick Tryzelaar
9ac5262bdf
libsyntax: convert visit to pass ty_params by reference
2013-02-25 07:27:01 -08:00
Erick Tryzelaar
5b9e110eab
libsyntax: Convert ast::attribute_ to store a @meta_item
2013-02-25 06:19:44 -08:00
Jeong YunWon
f0d0b5c116
Report error for non constant vector repeat count
...
Fix issue #3645
2013-02-25 00:21:03 +09:00
Daniel Micay
1afddff97f
remove oldsmallintmap
...
Closes #4738
2013-02-23 01:40:17 -05:00
bors
ba7a870660
auto merge of #5051 : bstrie/rust/deimpself, r=pcwalton
...
With the exception of three places where explicit self ran into borrowing errors. Will try those again once borrowing is refined.
2013-02-22 10:24:43 -08:00
Seo Sanghyeon
ad414dec67
Consolidate codes dealing with LLVM struct type
2013-02-23 01:25:10 +09:00
oncemoreification
4ffff6697b
Fix vector syntax in error messages
2013-02-22 02:19:41 -08:00
Graydon Hoare
0309af458c
Put unique allocs in managed heap when they might contain managed boxes.
2013-02-21 23:01:17 -08:00
Ben Striegel
4a853894fa
De-implicit-self librustc
2013-02-22 01:42:03 -05:00
bors
cec1f38c30
auto merge of #5077 : jbclements/rust/increase-monomorphization-depth-limit, r=catamorphism
...
It appears that using deriving_eq/auto_encode on ASTs bumps up against the "gee this looks like infinite unfolding" limit of 10 in monomorphization. Increasing it to 30 seems to solve this problem for me....
Also, commenting and a few renames.
2013-02-21 19:36:35 -08:00
bors
e7924ce18f
auto merge of #5076 : pcwalton/rust/demuting, r=pcwalton
2013-02-21 18:27:32 -08:00
Luqman Aden
48c1c3cfc0
librustc: Fix broken test.
2013-02-21 16:40:52 -08:00
John Clements
1869df30a6
bump up limit on monomorphization
2013-02-21 16:18:22 -08:00
Patrick Walton
91479363cc
librustc: Remove all mutable fields from librustc. rs=demuting
2013-02-21 15:45:55 -08:00
Patrick Walton
9c71249b9d
librustc: De-mut trans. rs=demuting
2013-02-21 15:45:55 -08:00
Patrick Walton
553c27c515
librustc: De-mut some of trans
2013-02-21 15:45:55 -08:00
Patrick Walton
cdd6f38220
librustc: De-mut resolve. rs=demuting
2013-02-21 15:44:54 -08:00
Luqman Aden
9ea6a49696
Remove the last bits of structural records from tests/rustc/rusti/rustpkg.
2013-02-21 15:19:40 -08:00
bors
4a5e8c5218
auto merge of #5071 : luqmana/rust/derec, r=pcwalton
...
Rid libsyntax of records and get rid of the last piece in `librustc/front/test.rs`.
2013-02-21 09:20:43 -08:00
bors
c0218fb106
auto merge of #5069 : pcwalton/rust/plussing-2, r=pcwalton
2013-02-21 08:35:12 -08:00
Patrick Walton
c0defda499
librustc: Separate the rest of the trait bounds with +
and stop parsing space-separated ones. rs=plussing
2013-02-21 08:29:48 -08:00
Luqman Aden
b02f5c2090
Get rid of structural records in libsyntax and the last bit in librustc.
2013-02-21 00:19:15 -08:00
bors
41a4151173
auto merge of #5065 : catamorphism/rust/issue-3453, r=catamorphism
...
...because it appears to work now. Removes a FIXME.
2013-02-20 22:36:31 -08:00
Patrick Walton
bf2a225c0b
librustc: Separate most trait bounds with '+'. rs=plussing
2013-02-20 21:14:20 -08:00
Tim Chevalier
ad9c54c631
Merge
2013-02-20 19:09:32 -08:00
Tim Chevalier
f823d83718
Fix vdef pattern
2013-02-20 18:45:50 -08:00
Tim Chevalier
a4403e5cb8
Fix flipped tuple that was causing all that pain
2013-02-20 18:45:50 -08:00
Tim Chevalier
0c3290a217
Merge
2013-02-20 18:45:50 -08:00
Luqman Aden
6282e5da67
librustc: tidy
2013-02-20 18:45:50 -08:00
Luqman Aden
cd82c4566b
librustc: Get rid of structural records save for front/test.rs.
2013-02-20 18:45:50 -08:00
Tim Chevalier
bad4463a6b
rustc: Use position method in check::method
...
...because it appears to work now. Removes a FIXME.
2013-02-20 17:46:01 -08:00
bors
8f8f0ec2c6
auto merge of #5043 : brson/rust/swap, r=brson
...
r?
2013-02-20 16:58:34 -08:00
Brian Anderson
423843e54b
Don't perform swap when src == dst. #5041
2013-02-20 16:18:48 -08:00
bors
62f2b4943a
auto merge of #5046 : sanxiyn/rust/struct-match, r=catamorphism
...
Previously check always succeeded because struct type was derived from the matched expression, not the matched pattern.
Fix #4849 .
2013-02-20 16:08:36 -08:00
bors
db25210244
auto merge of #5044 : thestinger/rust/range, r=pcwalton
...
Closes #4924
There are some more `Load` calls that could use this, so it's not completely done yet.
2013-02-19 19:04:28 -08:00
Daniel Micay
fa6e3b49bf
replace explicit loops with foldr
2013-02-19 21:20:07 -05:00
bors
b88e4f3b9f
auto merge of #5039 : alexcrichton/rust/issue-4875, r=catamorphism
...
It looks like the type for the whole pattern wasn't being written back, so when privacy tried to look it up everything died.
2013-02-19 17:38:29 -08:00
Daniel Micay
12b43b274b
add range assert when loading bools
2013-02-19 20:22:04 -05:00
Daniel Micay
0262e4b138
use range assert when loading enum discriminant
...
Closes #4924
2013-02-19 17:59:24 -05:00
Alex Crichton
cc3fbcee51
Fix for issue 4875
2013-02-19 17:35:02 -05:00
bors
1f956fc3b2
auto merge of #4999 : erickt/rust/incoming, r=brson
...
This patch series is doing a couple things with the ultimate goal of removing `#[allow(vecs_implicitly_copyable)]`, although I'm not quite there yet. The main change is passing around `@~str`s in most places, and using `ref`s in others. As far as I could tell, there are no performance changes with these patches, and all the tests pass on my mac.
2013-02-19 12:24:30 -08:00
Erick Tryzelaar
68746cd4fb
librustc: change driver::session::Session::str_of to return @~str
2013-02-19 10:11:05 -08:00
Erick Tryzelaar
b90ccc9a38
librustc: minor cleanup
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
ae86c03af2
librustc: change check_item_non_camel_case_types to not copy
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
3c0eca7940
librustc: convert creader and cstore to use @~strs
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
a18e7d6656
librustc: minor cleanup
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
53951afe48
librustc: convert lint_dict to take @~strs as keys
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
04334c1ae0
librustc: convert LangItemsCollector::item_refs to take @~str as a key
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
de5fdaf934
convert ast::meta_items to take @~strs
2013-02-19 10:02:52 -08:00
Erick Tryzelaar
a2b754788d
convert syntax::attr to use @~strs
2013-02-19 10:02:51 -08:00
Seo Sanghyeon
a29023e9b2
Check type when struct is matched against enum-like pattern
...
Previously check always succeeded because struct type was derived from
the matched expression, not the matched pattern.
2013-02-20 02:44:02 +09:00
Kang Seonghoon
f513c567cb
fix ICE after incorrect number of args in calls
2013-02-20 00:53:54 +09:00
bors
396f911925
auto merge of #5017 : catamorphism/rust/less-copy, r=catamorphism
2013-02-18 22:06:33 -08:00
bors
24603afc93
auto merge of #5010 : youknowone/rust/match_const_typecheck, r=catamorphism
...
Fix of issue #4968
2013-02-18 20:18:34 -08:00
bors
9ba2e65fd6
auto merge of #5004 : luqmana/rust/rename-use-import, r=catamorphism
...
Seems like my previous pull request got lost along the way somehow. So here it is updated.
2013-02-18 17:48:34 -08:00
Tim Chevalier
43dc67b74a
rustc: Less copy in trans, rs=removing copies
2013-02-18 15:53:37 -08:00
Jeong YunWon
092b6114c1
add missing typecheck for const pattern match arm
...
Issue #4968
2013-02-19 00:56:02 +09:00
Luqman Aden
5b5ac331db
Long lines.
2013-02-17 21:53:29 -05:00
Luqman Aden
0f09c106f0
libsyntax: Update view_item_use/import to reflect actual usage
2013-02-17 21:45:00 -05:00
Jed Davis
d009c6330b
Make univariant enums act like structs, so that they're aligned correctly.
...
Consts of such enums are aligned correctly, so we could either misalign
them to match the type_of, or fix the type_of. The latter seems like a
better idea.
2013-02-17 12:20:42 -08:00
Seth Pink
60bd4a5385
Removed more capture claueses.
2013-02-17 12:41:45 +10:00
Patrick Walton
548c0982ca
librustc: Remove simplify_type
and replace with sizing_type_of
. rs=blocking-servo
...
`simplify_type` was bogus, as there was no way for it to handle enums
properly. It was also slow, because it created many Rust types at runtime. In
general creating Rust types during trans is a source of slowness, and I'd like
to avoid doing it as much as possible. (It is probably not possible to
eliminate it entirely, due to `subst`, but we should get rid of as much of it
as we can.) So this patch replaces `simplify_type` with `sizing_type_of`,
which creates a size-equivalent LLVM type directly without going through a
Rust type first.
Because this is causing an ICE in Servo, I'm rubber stamping it.
2013-02-16 10:20:52 -08:00
Patrick Walton
bb833ca0f0
librustc: Stop parsing impl Type : Trait
and fix several declarations that slipped through. r=tjc
2013-02-15 16:59:56 -08:00
bors
566bcf2225
auto merge of #4969 : nickdesaulniers/rust/issue3869, r=brson
...
Issue #3869
review? @nikomatsakis
Convert all uses of vec::slice to vec::view Issue #3869
Rename const_view to const_slice
Renamed mut_view to mut_slice
Fix windows build error. `buf` is borrowed by the call to
`as_mut_buf()` and so we must invoke `slice()` outside of that
call.
2013-02-15 13:54:49 -08:00
Luqman Aden
99b3c07b4e
librustc: Get rid of move
.
2013-02-15 02:49:55 -08:00
bors
9727008ed0
auto merge of #4944 : catamorphism/rust/xxx-to-fixme, r=catamorphism
2013-02-14 23:11:13 -08:00
Tim Chevalier
3201c6fe3f
rustc: De-XXX resolve and borrowck...
...
and remove an un-needed hashmap from resolve
2013-02-14 23:08:18 -08:00