Commit Graph

3005 Commits

Author SHA1 Message Date
Patrick Walton
ace8058277 rustc: Have typechecking no longer rebuild the AST 2011-05-17 20:13:04 -07:00
Patrick Walton
df9801c9f0 rustc: Fix type mismatch in lib/sha1.rs constants 2011-05-17 20:13:03 -07:00
Brian Anderson
a98ea4f3ef rustc: Run block cleanups on else if blocks
With the scheme used to translate 'else if' currently the if expression is
translated in a new (else) scope context. If that if expression wants to
result in a value that requires refcounting then it will need to drop the
refcount in the cleanups of the else block.
2011-05-17 22:25:24 -04:00
Patrick Walton
e840a37f33 rustc: Remove typeck::check_item_fn(); it's entirely superfluous! 2011-05-17 19:20:24 -07:00
Patrick Walton
87288a186d rustc: Make check_const() not rebuild the AST (although it's not called at the moment!) 2011-05-17 19:13:16 -07:00
Patrick Walton
d21741843c rustc: Make check_block not rebuild the AST 2011-05-17 19:10:24 -07:00
Patrick Walton
10503a4a02 rustc: Don't rebuild the AST when writing back locals 2011-05-17 19:00:29 -07:00
Patrick Walton
3ffe390570 rustc: Print the types of declarations in --typed-pretty mode 2011-05-17 19:00:16 -07:00
Patrick Walton
8637a4eaf3 rustc: Pull the type out of the correct expression when typechecking channel types. Puts out burning tinderbox. 2011-05-17 18:19:45 -07:00
Patrick Walton
83e1dc63c2 rustc: Fix return value of expr_spawn case in pushdown_expr. Should put out soon-to-be-burning tinderbox. 2011-05-17 17:44:30 -07:00
Patrick Walton
c6d4c31ee4 rustc: Don't rebuild the AST when typechecking expressions 2011-05-17 17:43:06 -07:00
Patrick Walton
7a3812afc3 rustc: Add a typed pretty-printing mode for debugging 2011-05-17 17:43:06 -07:00
Graydon Hoare
376b087f3f Add Eric to AUTHORS. 2011-05-17 14:59:25 -07:00
Eric Holk
cff9a3cc2a Fixing compile problems from recent changes. 2011-05-17 14:38:32 -07:00
Eric Holk
cf02c67137 Removing the TODO comment. 2011-05-17 14:38:32 -07:00
Eric Holk
8d10594ed5 Added a few more expr_spawn cases so the spawn.rs test case gets a little further before failing. 2011-05-17 14:38:32 -07:00
Patrick Walton
37768cba92 rustc: Don't rebuild call or bind expressions during typechecking 2011-05-17 14:37:23 -07:00
Patrick Walton
f300de2963 rustc: Make return value checking warnings a little prettier. Also introduce a new "note" diagnostic level. 2011-05-17 14:12:49 -07:00
Patrick Walton
5047ab0b0c rustc: Flatten annotations 2011-05-17 13:55:32 -07:00
Marijn Haverbeke
a90df393f9 Alias-ify the parser and lexer
This only shaves a measly 19k off the rustc binary... but hey, every
little thing helps.
2011-05-17 20:45:49 +02:00
Marijn Haverbeke
09d8ef8d51 Finally rename std::_xxx to std::xxx
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Graydon Hoare
6067050656 Add Paul to AUTHORS. 2011-05-17 06:04:30 +00:00
Paul Stansifer
1fdc75ee7c Parser fix: 'fail' was eating the next token that came after it. 2011-05-17 05:40:17 +00:00
Marijn Haverbeke
f7df3696de Switch pretty printer to new vec syntax 2011-05-17 07:19:34 +02:00
Brian Anderson
63cf381ca1 stdlib: Remove transitional extfmt.RT module 2011-05-17 00:58:52 -04:00
Brian Anderson
fbfd8552ab Return a better result from blocks. Closes issue #377
Blocks return in a copy of the result of their ending expression, not the
direct result of the ending expression, as that may be a local variable which
gets zeroed by drop_slot.
2011-05-17 00:46:56 -04:00
Graydon Hoare
4539b3f6ab Register new snapshots. 2011-05-16 19:57:03 -07:00
Graydon Hoare
4c5e315843 Rename aux.rs to auxiliary.rs since win32 doesn't like files named "aux". Really. 2011-05-16 19:21:29 -07:00
Graydon Hoare
cc27e0f8c6 Update a couple tests that slipped through. 2011-05-16 19:08:59 -07:00
Graydon Hoare
550667a538 Fix snap rules to depend more correctly on rustc$(X) not rustc. 2011-05-16 19:05:08 -07:00
Graydon Hoare
a2e2e78103 Merge remote branch 'origin/master' into HEAD
Conflicts:
	src/comp/middle/trans.rs
2011-05-16 19:04:45 -07:00
Graydon Hoare
fbbc1a77d2 Rewrite everything to use [] instead of vec() in value position. 2011-05-16 18:21:22 -07:00
Graydon Hoare
ae030c5bf2 Begin vec() -> [] transition. 2011-05-16 17:04:12 -07:00
Tim Chevalier
41b7af9652 make the return-checker happy about pretty::pp::base_indent 2011-05-16 16:59:30 -07:00
Tim Chevalier
387a8888ee Fix get_os and get_arch
get_os and get_arch were failing to return a value in the error
case; they were also assuming that strings are indexed from 1. No
idea how they ever worked, but anyway, fixed.
2011-05-16 16:59:30 -07:00
Tim Chevalier
b42bb2cff2 Two tests that the typechecker correctly unifies type arguments in patterns with their expected tag types 2011-05-16 16:59:30 -07:00
Tim Chevalier
971b5d5151 Started adding support for return checking and non-returning function annotations
* Reorganized typestate into several modules.

* Made typestate check that any function with a non-nil return type
  returns a value. For now, the check is a warning and not an error
  (see next item).

* Added a "bot" type (prettyprinted as _|_), for constructs like be, ret, break, cont, and
  fail that don't locally return a value that can be inspected. "bot"
  is distinct from "nil". There is no concrete syntax for _|_, while
  the concrete syntax for the nil type is ().

* Added support to the parser for a ! annotation on functions whose
  result type is _|_. Such a function is required to have either a
  fail or a call to another ! function that is reached in all control
  flow paths. The point of this annotation is to mark functions like
  unimpl() and span_err(), so that an alt with a call to err() in one
  case isn't a false positive for the return-value checker. I haven't
  actually annotated anything with it yet.

* Random bugfixes:

* * Fixed bug in trans::trans_binary that was throwing away the
    cleanups for nested subexpressions of an and or or
    (tests: box-inside-if and box-inside-if2).

** In typeck, unify the expected type arguments of a tag with the
   actual specified arguments.
2011-05-16 16:59:25 -07:00
Tim Chevalier
c75125fcce Noticed that metadata::Encode::enc_sty didn't have a case for ty_task, so I added one (though this wasn't causing the problem I was seeing... 2011-05-16 16:13:11 -07:00
Tim Chevalier
251cbaba63 Added .bz2 and stage1 directory to .gitignore 2011-05-16 16:13:11 -07:00
Tim Chevalier
e217981a2c add dl/ and .pyc files to .gitignore 2011-05-16 16:13:11 -07:00
Patrick Walton
f74298215c rustc: Fix indentation in typeck::check_lit() 2011-05-16 15:24:32 -07:00
Patrick Walton
1fc1ad91ce rustc: Don't rebuild the call expression in typeck::replace_expr_type() 2011-05-16 15:20:11 -07:00
Patrick Walton
278d64dafc rustc: Don't unpack annotations in trans::lval_generic_fn() 2011-05-16 15:20:11 -07:00
Graydon Hoare
9ac29480ce Be a bit noisier about being in a transition. 2011-05-16 15:14:58 -07:00
Graydon Hoare
d577f5bdf9 Let the snapshot-file parser parse empty T lines, since they are used to start a transition. 2011-05-16 15:14:44 -07:00
Patrick Walton
3ea3d9eed6 rustc: Make the parser use the interner 2011-05-16 14:54:10 -07:00
Kelly Wilson
b91ef944c8 Replace --bitcode with the canonical --emit-llvm 2011-05-16 14:07:43 -07:00
Kelly Wilson
196351aa44 Add automatic exe generation capabilities. Add --bitcode flag to generate only an LLVM bitcode file. 2011-05-16 14:07:43 -07:00
Patrick Walton
32b8dcb97c rustc: Factor out the code that interns types into an "interner" data structure 2011-05-16 13:58:13 -07:00
Patrick Walton
3760bfab87 rustc: Don't rebuild AST patterns during typechecking 2011-05-16 11:45:00 -07:00