75 Commits

Author SHA1 Message Date
Niko Matsakis
5e36a99794 Refactor trans to replace lvalue and friends with Datum.
Also:
- report illegal move/ref combos whether or not ref comes first
- commented out fix for #3387, too restrictive and causes an ICE
2012-09-06 06:11:12 -07:00
Patrick Walton
47dac47e96 rustc: "import" -> "use" in .rc files 2012-09-05 11:46:25 -07:00
Patrick Walton
127144bf38 rustc: Implement private fields for max/min classes 2012-09-04 14:50:46 -07:00
Brian Anderson
65b05a6ce8 Bump version to 0.4 2012-08-30 14:05:59 -07:00
Graydon Hoare
5eef15df12 Rename resolve3 -> resolve. 2012-08-29 13:26:52 -07:00
Niko Matsakis
652b312122 more sound treatment of fn& regions; change all & to be distinct 2012-08-21 10:28:34 -07:00
Niko Matsakis
8ee79c79aa new region inference, seperate infer into modules, improve error msgs
Fixes #2806
Fixes #3197
Fixes #3138
2012-08-20 22:00:06 -07:00
Niko Matsakis
802ea5d57e refactor categorization out of borrowck into its own module.
first step towards #3148 and #3024.
2012-08-08 09:22:07 -07:00
Niko Matsakis
7d374bde43 add lint mode for deprecated pattern usage 2012-08-07 07:14:44 -07:00
Graydon Hoare
7f60c56c3e Clean out transitional lint. 2012-08-01 13:35:40 -07:00
Graydon Hoare
2a3084b527 Start implementing structured constants. 2012-07-31 18:34:44 -07:00
Graydon Hoare
dbbaa50290 Nomenclature fixes in the lint checker. Fewer double-negatives.
New style is allow(foo), warn(foo), deny(foo) and forbid(foo),
mirrored by -A foo, -W foo, -D foo and -F foo on command line.

These replace -W no-foo, -W foo, -W err-foo, respectively.

Forbid is new, and means "deny, and you can't override it".
2012-07-26 17:08:33 -07:00
Patrick Walton
da80bd17c3 rustc: Introduce a lang_items pass, part of coherence and operator overloading.
This will also help us remove kinds.
2012-07-25 18:37:03 -07:00
Tim Chevalier
beb2cd1658 Remove what's left of resolve1 2012-07-20 17:08:19 -07:00
Niko Matsakis
41a21f053c remove typestate from code, tests, and docs 2012-07-14 17:37:20 -07:00
Graydon Hoare
18da7fef88 Merge remote-tracking branch 'origin/dist-snap' into incoming 2012-07-12 17:14:55 -07:00
Graydon Hoare
aa7b3cc929 Fix some version numbers. 2012-07-11 09:09:08 -07:00
Patrick Walton
019d4291c7 rustc: Introduce a coherence checker, behind a compile switch for now 2012-07-10 17:35:18 -07:00
Patrick Walton
f093d374ed rustc: Implement a new resolve pass behind a compile flag 2012-07-02 18:30:12 -07:00
Graydon Hoare
697f1e38d6 Change 'native' and 'crust' to 'extern'.
This comes with a terminology change. All linkage-symbols are 'extern'
now, including rust syms in other crates. Some extern ABIs are
merely "foreign". The term "native" is retired, not clear/useful.

What was "crust" is now "extern" applied to a _definition_. This
is a bit of an overloading, but should be unambiguous: it means
that the definition should be made available to some non-rust ABI.
2012-06-26 16:18:37 -07:00
Niko Matsakis
013fc92423 remove alias analysis and replace with borrowck
This reverts commit 7ef825bb607c4e934c92bd0b73ecbc4c24f3286b.
2012-06-08 20:39:11 -07:00
Brian Anderson
7ef825bb60 Revert "remove alias analysis and replace with borrowck"
18s perf regression compiling rustc with opts

This reverts commit 7f6ee0ce0df8af4c21b065cb49b95079ae643f77.
2012-06-07 19:42:27 -07:00
Niko Matsakis
7f6ee0ce0d remove alias analysis and replace with borrowck
cc #2540
2012-06-07 16:46:57 -07:00
Michael Sullivan
6396e2c3c3 Make vecs implicitly copyable for all of our projects. 2012-06-04 19:53:30 -07:00
Niko Matsakis
6c6ad229a3 break up borrowck into modules and begin to document how it works 2012-06-01 10:50:19 -07:00
Kevin Cantu
7dcbaedd32 Rename librustsyntax to libsyntax
Per issue #2418.
2012-05-31 11:15:00 -07:00
Brian Anderson
736ff34e8a rustc: Move filesearch into metadata mod
It's not that related to metadata, but metadata needs it and it will
probably be useful for doing dynamic loading.
2012-05-29 20:38:49 -07:00
Niko Matsakis
9e6a068034 replace last_use with liveness info 2012-05-25 14:37:30 -07:00
Niko Matsakis
30b47649ea new liveness pass to supercede last_use / initedness 2012-05-24 09:52:03 -07:00
Niko Matsakis
a3be0b1054 fix classes and parameterized ifaces; remove needless self check
ref #1726, #2434
2012-05-24 06:49:40 -07:00
Brian Anderson
9aa18c2852 rustc: Move ast_map to the syntax crate 2012-05-21 23:39:27 -07:00
Niko Matsakis
67ca37ac61 workaround a horribly obscure resolve bug 2012-05-18 14:32:37 -07:00
Niko Matsakis
558be3a70f pull method lookup / region manip into their own modules 2012-05-16 08:51:16 -07:00
Niko Matsakis
564aa59a3f further reorganization 2012-05-16 08:02:43 -07:00
Niko Matsakis
5c8069d817 break out type checking of alts/patterns (again) 2012-05-16 06:57:13 -07:00
Niko Matsakis
da98e14c94 Revert "break out type checking of alts/patterns"
This reverts commit 8d1c1720e331ea56cfde33ab047216d232236e4b.
2012-05-16 06:38:23 -07:00
Niko Matsakis
8d1c1720e3 break out type checking of alts/patterns 2012-05-16 06:37:53 -07:00
Niko Matsakis
7512284a94 further modularization of typeck, add comments 2012-05-16 06:06:42 -07:00
Brian Anderson
0e21a05e6c rustc: Extract loader mod from creader mod
loader is a utility for locating crates and loading their metadata.
creader is a compiler pass that loads metadata for all used libraries.
2012-05-15 21:36:16 -07:00
Niko Matsakis
ab735320b4 move regionck into typeck, in the process fixing a bug or two 2012-05-15 19:05:03 -07:00
Niko Matsakis
250bbddb90 move infer into typeck module 2012-05-15 14:06:51 -07:00
Niko Matsakis
26dc48d67f break apart typeck a little (more to come) 2012-05-15 13:38:29 -07:00
Brian Anderson
32c4b6da5b rustc: Move astencode from metadata to middle 2012-05-14 19:04:31 -07:00
Graydon Hoare
e12b16cde7 Instantiate per-type iface-based visit_glue when intrinsic ifaces present. 2012-05-14 17:57:48 -07:00
Tim Chevalier
89cd2f6bd0 Enforce that self doesn't escape from a class
Closes #2294
2012-05-14 14:26:10 -07:00
Brian Anderson
1f52652a06 rustc: Eliminate some indirection to the syntax crate 2012-05-13 17:33:29 -07:00
Brian Anderson
a2572fe77e rustc: Eliminate metadata's dependency on trans 2012-05-13 17:08:35 -07:00
Brian Anderson
ecf290d448 rustc: Be explicit about which peer modules the metadata mod can access
This is the first step in eliminating dependencies on rustc so we can extract
the metadata code into its own crate.
2012-05-13 15:58:10 -07:00
Niko Matsakis
b4d1f1b2c1 replace mutbl pass with borrowck 2012-05-10 21:14:43 -07:00
Graydon Hoare
c23d6a50d7 Preliminary groundwork for intrinsic module, reflection interface. 2012-05-10 17:18:04 -07:00