Patrick Walton
226cd68f13
librustc: De-implicit-self the visitor. r=graydon
2013-01-29 10:43:12 -08:00
Patrick Walton
6ce74460e6
librustc: Disallow trait bounds in types, enumerations, and structure definitions. r=tjc
2013-01-29 10:42:58 -08:00
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
58ec84a098
testsuite: Remove structural records from remaining compile-fail tests
2013-01-28 19:41:56 -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
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
Tyler Bindon
c89afc3971
Fix Option camel case in a compile-fail test
...
The compile fails for another reason, that triggers before the the failure for non-camel cased option, some or none undefined errors.
2013-01-25 19:42:24 -07:00
Tyler Bindon
edc94f5c23
Fix Option camel case in xfailed/ignored tests
2013-01-25 19:42:23 -07:00
Patrick Walton
ad25e208ee
librustc: Allow &mut
to be loaned; allow self
to be loaned; make &mut
loanable to &
. r=nmatsakis
2013-01-24 13:52:22 -08:00
Tim Chevalier
86b8bf37bb
testsuite: Capitalize error message, unbreak build
2013-01-24 12:14:26 -08:00
Tim Chevalier
f3ec278e46
Merge pull request #4609 from sonwow/keyword-super
...
Make `super` a keyword
2013-01-24 11:17:52 -08:00
Tim Chevalier
5b64c796a4
syntax/rustc: Improve error message for misuse of for
loop
...
Print out a clearer error message when a `for` gets
used with the wrong type of iterator. Also fix spans on `for` loop
bodies, and suppress some more derived errors.
r=brson
Closes #3651
2013-01-24 11:04:54 -08:00
Youngsoo Son
4b2aa286d8
Make super
a keyword
2013-01-24 16:07:04 +09:00
Tim Chevalier
ab13beb05a
Merge pull request #4587 from sanxiyn/divide-by-zero
...
Handle divide by zero in constant evaluator
2013-01-23 14:56:07 -08:00
Tim Chevalier
54344c2468
testsuite: Add tests for mutable function arguments
2013-01-22 23:34:35 -08:00
Seo Sanghyeon
3ed39ce26f
Handle divide by zero in constant evaluator
2013-01-23 15:07:00 +09:00
Tim Chevalier
b9920b052b
testsuite: Tweak tests for #3888
2013-01-20 19:51:33 -08:00
Tim Chevalier
e5bf6d1afa
testsuite: Update error message, unbreak build
2013-01-20 18:22:11 -08:00
Tim Chevalier
ef0f71dc3f
testsuite: Add xfailed test for #4335
2013-01-19 17:39:15 -08:00
Tim Chevalier
1e1707ccb8
testsuite: Add license
2013-01-19 17:38:12 -08:00
Tim Chevalier
96b4f43675
Handle region errors where the actual scope is a statement
...
Prevents a case of "unknown scope, this is a bug".
I judged this too small to review. Closes #4500
2013-01-19 17:06:36 -08:00
Tim Chevalier
90372da5a8
testsuite: Update error messages. Unbreak build, I hope
2013-01-18 13:35:07 -08:00
Niko Matsakis
440f8dfc4e
Correct tests
...
rs=breakage
2013-01-17 18:45:57 -08:00
Patrick Walton
9f7514bfae
test: Fix busted compile-fail tests. rs=bustage
2013-01-17 16:30:59 -08:00
Patrick Walton
a2ec5400ff
Merge pull request #4493 from jbclements/rename-moved-variable-to-moved-value
...
s/moved variable/moved value/
2013-01-16 12:30:55 -08:00
Graydon Hoare
84825ee310
librustc: Make the default sigil for block lambdas &
instead of @
.
2013-01-15 17:57:45 -08:00
John Clements
3bf8b8af98
s/moved variable/moved value/
2013-01-14 17:38:22 -08:00
ILyoan
b7cefd0c96
allowing the entry point name to be something other than main
...
add build tests
2013-01-14 13:58:13 -08:00
Tim Chevalier
329a57882f
Add xfailed test for #3973
2013-01-10 15:35:41 -08:00
Niko Matsakis
89ed595e30
correct expected error msgs in various tests rs=breakage
2013-01-10 13:58:14 -08:00
Tim Chevalier
8a687dd8e4
tests: Add two test cases, one xfailed
2013-01-10 13:44:27 -08:00
Niko Matsakis
737e115646
mode: reset mode on entry to fn body.
...
This is an interim fix to address the "Beware!" unsoundness. I have a
more comprehensive rewrite of mode.rs in the pipeline.
r=pcwalton
2013-01-10 13:17:25 -08:00
Patrick Walton
2a1b6c4de9
librustc: Implement &static
as the replacement for Durable
. r=nmatsakis
2013-01-10 11:16:54 -08:00
Niko Matsakis
2b92962aa2
A collection of refactorings that I found it hard/tiresome to divide:
...
- Make `extern fn()` assignable to any closure type, rather than
a subtype.
- Remove unused int_ty_set and float_ty_set
- Refactor variable unification and make it more DRY
- Do fn sub/lub/glb on the level of fn_sig
- Rename infer::to_str::ToStr to infer::to_str::InferStr
- Capitalize names of various types
- Correct hashing of FnMeta
- Convert various records-of-fns into structs-of-fns. This is both
eliminating use of deprecated features and more forwards compatible
with fn reform.
r=pcwalton
2013-01-09 14:59:07 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af2473da79be704c9ce2374f278c47177b6.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Niko Matsakis
9f7dc1cb33
Remove ret_style and instead check whether fn return type is bot
...
cc #3681
2013-01-08 14:21:06 -08:00
Tim Chevalier
80435ad429
Make self
visible when typechecking nested functions
...
Necessary to allow supertrait methods to be called in default methods.
r=nikomatsakis
2013-01-08 13:56:26 -08:00
Tim Chevalier
7b433d098a
Revert "Change the self def_id to a self_info in typeck, and inherit"
...
This reverts commit 921393c56886468b8f7476fa3a3e6ddb3bea421d.
2013-01-07 18:18:22 -08:00
Tim Chevalier
921393c568
Change the self def_id to a self_info in typeck, and inherit
...
That is, treat `self` as if it has dynamic scope. This seems to
be harmless, and prevents an ICE as per #3563
2013-01-07 18:08:19 -08:00
Tim Chevalier
fb9458e1ec
xfail broken tests
2013-01-07 18:05:18 -08:00
Tim Chevalier
86db69def2
Revert "xfail broken tests"
...
This reverts commit d771830c4ca2ef63b41c9f871b84868a1d330c81.
2013-01-07 18:04:30 -08:00
Tim Chevalier
d771830c4c
xfail broken tests
2013-01-07 18:04:01 -08:00
Tim Chevalier
9e2a59dc5d
Add xfailed test for #3707
2013-01-03 15:35:19 -08:00
Tim Chevalier
7b08ed02bb
Actually xfail this, unbreak build
2013-01-03 15:26:41 -08:00
Tim Chevalier
1330b1cdf5
Add test cases (one xfailed, one not)
...
as per #3601 and #3609
2013-01-03 14:55:51 -08:00
Patrick Walton
5bd8692e9d
test: Fix a bunch of compile-fail tests. rs=bustage
2012-12-28 19:36:35 -08:00
Tim Chevalier
65839fa622
Emit a type error for integer literals where the expected type is char
...
For example, in let x: char = 42; This was an ICE and is now a
proper type error, as per #3477
2012-12-22 15:58:05 -08:00
Brian Anderson
d062896a8b
Deal with test failures in various ways
2012-12-18 14:35:53 -08:00