Commit graph

2616 commits

Author SHA1 Message Date
Patrick Walton 37d5dd9471 rustc: Group the variable binding machinery into a separate data structure during unification 2011-05-18 11:54:12 -07:00
Rafael Ávila de Espíndola a795d0e5b2 And yet more dead code. 2011-05-18 14:28:08 -04:00
Rafael Ávila de Espíndola d108bfe2ee Remove a bit more dead code. 2011-05-18 14:02:53 -04:00
Rafael Ávila de Espíndola cebc9b359d Remove dead rustboot code. 2011-05-18 13:48:57 -04:00
Patrick Walton f4e049c415 rustc: Thread a statement context through the typechecker; use it for generating variable IDs. 40% typechecking speedup. 2011-05-17 22:21:31 -07:00
Graydon Hoare 49b90d37ed Add mirror-all-snapshots.py script for extra crowdsourced backup power. 2011-05-17 22:06:55 -07:00
Patrick Walton aed235e348 authors: Correct spelling of jrmuizel's name 2011-05-17 21:10:18 -07:00
Patrick Walton ff1030b242 authors: Add Erick to AUTHORS 2011-05-17 21:10:02 -07:00
Patrick Walton fdf8c49882 rustc: Don't rebuild the AST when typechecking statements 2011-05-17 21:09:34 -07:00
Patrick Walton dc78544d36 Merge pull request #386 from erickt/master
Adding a simple vim indent file
2011-05-17 20:51:00 -07:00
Erick Tryzelaar 4d0cbd4310 Move vim syntax file, add indent file. 2011-05-17 20:35:46 -07:00
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