Niko Matsakis
3b4cfdeee2
Merge remote-tracking branch 'mozilla/incoming'
...
Conflicts:
src/rustc/middle/tstate/auxiliary.rs
2012-06-06 19:00:34 -07:00
Niko Matsakis
ab8fa495d0
some (very little) work on commenting
2012-06-06 18:42:09 -07:00
Niko Matsakis
e8dfe179da
move tstate to dvec
2012-06-06 18:37:55 -07:00
Niko Matsakis
9be612f7ee
move resolve to dvec, remove unnecessary mut annotations
2012-06-06 18:37:52 -07:00
Niko Matsakis
594e01d007
add pure, copies to liveness
2012-06-06 18:37:46 -07:00
Niko Matsakis
7d17c2d87f
move check_const to dvec
2012-06-06 18:37:43 -07:00
Niko Matsakis
08520a1697
move borrowck to dvec, insert a few minor copies
2012-06-06 18:37:35 -07:00
Niko Matsakis
3bc42d5661
distinguish by-val passes of pointer and non-pointer things
2012-06-06 18:36:47 -07:00
Niko Matsakis
64c7897187
exempt unsafe ptrs from by-val checks
2012-06-06 18:36:42 -07:00
Michael Sullivan
d542e67827
Do some cleanup of the allocation code.
2012-06-06 18:26:47 -07:00
Tim Chevalier
32e448e0da
Change subtypes_require to handle class fields correctly
2012-06-06 15:45:49 -07:00
Tim Chevalier
5e8ef74e22
Revert "Revert "Forbid classes with no fields" due to test failures"
...
This reverts commit e56a6e8cb0ca2be26bb71918447459865803a630.
2012-06-06 15:08:24 -07:00
Tim Chevalier
a6c92f0a17
Revert "Revert "Merge pull request #2516 from mozilla/incoming" due to failures"
...
This reverts commit 9fae95860de510f6874810cf43efb83f101246ef.
2012-06-06 15:08:24 -07:00
Tim Chevalier
fec3b91a3c
In reachability, visit class ctors
2012-06-05 21:17:16 -07:00
Tim Chevalier
8972588583
Dereference classes with dtors only on a field access
...
A class with a dtor has a different representation (a pair of a bit field
and a pointer to the class itself), and previously, the trans code
was selecting out the second field on any reference to a variable whose
type was a class with a dtor. This turned out to be wrong in the case where
a closure captures a variable with such a type. Changed the code to only
insert the field selection on a class field access.
2012-06-05 15:11:33 -07:00
Tim Chevalier
ebde93861f
Allow classes with dtors to be used before declaration
...
get_item_val could generate an internal compiler error if a class with
a dtor was used before the class itself got translated, because it was
assuming that the dtor's node ID was always in the item_symbols table. Fixed
it to create a new symbol if necessary, and use it subsequently.
2012-06-05 15:11:33 -07:00
Brian Anderson
d3c641678e
rustc: Put uniques into addrspace 1
2012-06-05 14:03:25 -07:00
Michael Sullivan
e86214830a
Make "no implicit copies" diagnostics controllable through lint settings. Closes #2503 .
2012-06-04 20:44:58 -07:00
Michael Sullivan
01a6c713c3
Make vecs/strs not implicitly copyable by default, but make it configurable. Closes #2450 .
2012-06-04 19:53:30 -07:00
Michael Sullivan
a405ff9bf6
Fix lint's handling of multiple warn attributes...
2012-06-04 19:53:30 -07:00
Eric Holk
1e8f501343
Machine types are different from int/uint, etc (Issue #2187 )
2012-06-04 19:16:47 -07:00
Niko Matsakis
903033bb03
handle fixed-length vecs in borrowck categorization
2012-06-04 16:40:09 -07:00
Michael Sullivan
6d9dd055d1
Get rid of warnings from instantiating typarams with non-implicitly copyable types.
2012-06-04 16:35:32 -07:00
Michael Sullivan
4d5d43beae
Warn when invoking polymorphic functions with non copyable types. Closes #2466 .
2012-06-04 16:30:41 -07:00
Michael Sullivan
5a4e53487f
Heavily rework lint infrastructure. Split it into two passes: one that builds the table and one that does the checks. Build the table early and make session know about it fo reasy use.
2012-06-04 16:08:07 -07:00
Niko Matsakis
3c4baf694e
better support for classes with polymorphic methods
2012-06-04 11:46:23 -07:00
Michael Sullivan
7213274e57
Make how lint handles unknown warn directives configurable by lint (default to warn). Closes #2480 .
2012-06-04 09:54:03 -07:00
Michael Sullivan
9be94f6650
Provide mechanisms to inspect warning settings from outside lint.
2012-06-04 09:54:03 -07:00
Niko Matsakis
01b5777c8b
prohibit type parameters in native fns and other minor fixes
...
trans now can safely assert that it never sees a type param
2012-06-03 20:03:08 -07:00
Niko Matsakis
3f6e6532ac
make vec fns/methods take imm slices.
...
this also repairs the unsoundness in typing of unpack_slice,
which was silently converting a const ptr to an imm one.
2012-06-02 19:14:57 -07:00
Lindsey Kuper
7d0755529e
Add ty_var_integral (WIP on issue #1425 ).
2012-06-02 11:19:27 -07:00
Niko Matsakis
77c470d183
Allow rcvrs to be borrowed; check rcvrs in borrowck properly
2012-06-02 10:08:04 -07:00
Niko Matsakis
cfac9b6833
improve borrowck to handle some frankly rather tricky cases
...
- receivers of method calls are also borrowed
- by-val arguments are also borrowed (needs tests)
- assignment to components can interfere with loans
2012-06-02 10:08:04 -07:00
Tim Chevalier
14e3fdea9c
Check that classes are instantiable
...
that is, check that there aren't any mutually recursive cycles between
classes and other types
2012-06-01 20:40:35 -07:00
Tim Chevalier
79787833bb
Make sure classes with dtors are still sendable (but not copyable)
2012-06-01 20:40:35 -07:00
Tim Chevalier
475013fcb6
Comment only: fix typo
2012-06-01 20:40:35 -07:00
Tim Chevalier
facb5c08c6
Enforce rule that classes with dtors aren't copyable
...
The test for this is copy-a-resource.
2012-06-01 20:40:35 -07:00
Tim Chevalier
bc5cb4deb3
Change type_needs_drop to say that any class w/ a dtor needs a drop
...
This was preventing dtors from running for class types that didn't
have pointer fields.
2012-06-01 20:40:34 -07:00
Michael Sullivan
8f7364b26d
Don't try to compute kinds of fictitious types. Indicate a bug instead.
2012-06-01 17:58:40 -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
Michael Sullivan
e47962f6a9
Have lint build up a table of the warning settings on a per item basis for later use.
2012-05-31 19:07:24 -07:00
Michael Sullivan
d1a65da835
Time lint in the driver like every other pass, instead of in lint.
2012-05-31 19:07:24 -07:00
Michael Sullivan
af228711e5
Make lint properly deal with nested items. Closes #2473 .
2012-05-31 19:07:24 -07:00
Michael Sullivan
84adcb9806
Rework lint to copy lint mode maps when changing them.
2012-05-31 19:07:24 -07:00
Michael Sullivan
7b02f29d47
Switch lint over to using a smallintmap.
2012-05-31 18:38:42 -07:00
Michael Sullivan
3dfb174793
Remove some dead code from kind checking.
2012-05-31 18:38:42 -07:00
Brian Anderson
89aa28289b
rustc: Use fewer boxes in typestate
2012-05-31 16:20:58 -07:00
Niko Matsakis
c2ce2741a7
allow mutable vectors and so forth to be used as immutable slices
2012-05-31 15:07:09 -07:00
Eric Holk
0470abe1d2
Allow some resources to be considered const.
2012-05-31 13:55:54 -07:00
Brian Anderson
41b02b7c57
Merge remote-tracking branch 'brson/self-describing-uniques'
...
Conflicts:
src/snapshots.txt
2012-05-31 01:26:05 -07:00