From 3ab4b014cfaf6dff5b450f4a1772e9993550fe38 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 15 Aug 2012 18:46:55 -0700 Subject: [PATCH] Remove the class keyword --- doc/rust.md | 170 +----------------- doc/tutorial.md | 79 -------- src/libcore/comm.rs | 4 +- src/libcore/io.rs | 6 +- src/libcore/option.rs | 2 +- src/libcore/priv.rs | 2 +- src/libcore/rand.rs | 2 +- src/libcore/run.rs | 2 +- src/libcore/stackwalk.rs | 2 +- src/libcore/task.rs | 10 +- src/libcore/unsafe.rs | 6 +- src/libcore/util.rs | 2 +- src/libstd/bitv.rs | 6 +- src/libstd/c_vec.rs | 2 +- src/libstd/net_tcp.rs | 4 +- src/libsyntax/ext/pipes/proto.rs | 2 +- src/libsyntax/parse/parser.rs | 5 +- src/libsyntax/parse/token.rs | 2 +- src/rustc/driver/rustc.rs | 2 +- src/rustc/lib/llvm.rs | 8 +- src/rustc/metadata/decoder.rs | 2 +- src/rustc/middle/lang_items.rs | 4 +- src/rustc/middle/liveness.rs | 4 +- src/rustc/middle/resolve3.rs | 18 +- src/rustc/middle/trans/base.rs | 2 +- src/rustc/middle/trans/common.rs | 4 +- src/rustc/middle/typeck/check/method.rs | 2 +- src/rustc/middle/typeck/coherence.rs | 4 +- src/rustc/util/common.rs | 2 +- src/rustdoc/demo.rs | 2 +- src/test/auxiliary/cci_class.rs | 2 +- src/test/auxiliary/cci_class_2.rs | 2 +- src/test/auxiliary/cci_class_3.rs | 2 +- src/test/auxiliary/cci_class_4.rs | 2 +- src/test/auxiliary/cci_class_5.rs | 2 +- src/test/auxiliary/cci_class_6.rs | 2 +- src/test/auxiliary/cci_class_cast.rs | 2 +- src/test/auxiliary/issue-2526.rs | 4 +- src/test/auxiliary/issue-3012-1.rs | 2 +- src/test/auxiliary/issue2170lib.rs | 2 +- src/test/auxiliary/test_comm.rs | 2 +- src/test/bench/task-perf-alloc-unwind.rs | 2 +- .../bench/task-perf-word-count-generic.rs | 4 +- src/test/compile-fail/assign-to-method.rs | 2 +- .../block-must-not-have-result-res.rs | 2 +- .../compile-fail/borrowck-unary-move-2.rs | 2 +- .../compile-fail/cap-clause-illegal-cap.rs | 2 +- src/test/compile-fail/class-cast-to-trait.rs | 2 +- src/test/compile-fail/class-implements-int.rs | 2 +- src/test/compile-fail/class-method-missing.rs | 2 +- src/test/compile-fail/class-missing-self.rs | 2 +- src/test/compile-fail/copy-a-resource.rs | 2 +- src/test/compile-fail/issue-2063-resource.rs | 2 +- src/test/compile-fail/issue-2370-2.rs | 2 +- src/test/compile-fail/issue-2370.rs | 2 +- src/test/compile-fail/issue-2487-b.rs | 2 +- src/test/compile-fail/issue-2509-a.rs | 2 +- src/test/compile-fail/issue-2718-a.rs | 2 +- src/test/compile-fail/issue-2825-b.rs | 2 +- src/test/compile-fail/issue-2825.rs | 2 +- src/test/compile-fail/issue-3021-b.rs | 2 +- .../compile-fail/lint-non-camel-case-class.rs | 2 +- ...ess-ctor-access-self-with-uninit-fields.rs | 2 +- .../liveness-ctor-field-never-init.rs | 2 +- .../liveness-ctor-uninit-field.rs | 2 +- .../compile-fail/liveness-ctor-uninit-var.rs | 2 +- src/test/compile-fail/liveness-unused.rs | 2 +- .../compile-fail/mutable-class-fields-2.rs | 2 +- src/test/compile-fail/mutable-class-fields.rs | 2 +- src/test/compile-fail/no-send-res-ports.rs | 2 +- src/test/compile-fail/non-const.rs | 4 +- src/test/compile-fail/noncopyable-class.rs | 4 +- src/test/compile-fail/pinned-deep-copy.rs | 2 +- src/test/compile-fail/private-class-field.rs | 2 +- src/test/compile-fail/private-method.rs | 2 +- src/test/compile-fail/record-with-resource.rs | 2 +- src/test/compile-fail/regions-addr-of-self.rs | 2 +- .../regions-addr-of-upvar-self.rs | 2 +- src/test/compile-fail/regions-bounds.rs | 2 +- src/test/compile-fail/regions-in-rsrcs.rs | 6 +- src/test/compile-fail/tps-invariant-class.rs | 2 +- src/test/compile-fail/unique-pinned-nocopy.rs | 2 +- src/test/compile-fail/unique-vec-res.rs | 2 +- src/test/compile-fail/unsendable-class.rs | 2 +- src/test/compile-fail/vec-res-add.rs | 2 +- src/test/run-fail/morestack2.rs | 2 +- src/test/run-fail/morestack3.rs | 2 +- src/test/run-fail/morestack4.rs | 2 +- src/test/run-fail/rt-set-exit-status-fail2.rs | 2 +- src/test/run-fail/unwind-box-res.rs | 2 +- src/test/run-pass/binops.rs | 2 +- .../run-pass/boxed-class-type-substitution.rs | 2 +- src/test/run-pass/class-attributes-2.rs | 2 +- .../class-cast-to-trait-multiple-types.rs | 4 +- src/test/run-pass/class-cast-to-trait.rs | 2 +- src/test/run-pass/class-dtor.rs | 2 +- src/test/run-pass/class-exports.rs | 2 +- .../class-impl-very-parameterized-trait.rs | 2 +- .../class-implement-trait-cross-crate.rs | 2 +- src/test/run-pass/class-implement-traits.rs | 2 +- src/test/run-pass/class-methods.rs | 2 +- src/test/run-pass/class-poly-methods.rs | 2 +- src/test/run-pass/class-separate-impl.rs | 2 +- src/test/run-pass/class-str-field.rs | 2 +- src/test/run-pass/class-typarams.rs | 2 +- src/test/run-pass/classes-self-referential.rs | 2 +- src/test/run-pass/classes-simple-method.rs | 2 +- src/test/run-pass/classes-simple.rs | 2 +- src/test/run-pass/classes.rs | 2 +- src/test/run-pass/conditional-compile.rs | 4 +- src/test/run-pass/init-res-into-things.rs | 2 +- src/test/run-pass/issue-2288.rs | 2 +- src/test/run-pass/issue-2311-2.rs | 2 +- src/test/run-pass/issue-2445-b.rs | 2 +- src/test/run-pass/issue-2445.rs | 2 +- src/test/run-pass/issue-2487-a.rs | 2 +- src/test/run-pass/issue-2502.rs | 2 +- src/test/run-pass/issue-2550.rs | 2 +- src/test/run-pass/issue-2633.rs | 2 +- src/test/run-pass/issue-2708.rs | 2 +- src/test/run-pass/issue-2718.rs | 4 +- src/test/run-pass/issue-2735-2.rs | 2 +- src/test/run-pass/issue-2735-3.rs | 2 +- src/test/run-pass/issue-2748-a.rs | 2 +- src/test/run-pass/issue-979.rs | 2 +- src/test/run-pass/nested-class.rs | 2 +- src/test/run-pass/private-class-field.rs | 2 +- src/test/run-pass/private-method.rs | 2 +- .../run-pass/resource-assign-is-not-copy.rs | 2 +- src/test/run-pass/resource-cycle.rs | 2 +- src/test/run-pass/resource-cycle2.rs | 2 +- src/test/run-pass/resource-cycle3.rs | 2 +- src/test/run-pass/resource-destruct.rs | 2 +- src/test/run-pass/resource-generic.rs | 2 +- src/test/run-pass/resource-in-struct.rs | 2 +- src/test/run-pass/send-resource.rs | 2 +- src/test/run-pass/sendable-class.rs | 2 +- src/test/run-pass/task-killjoin-rsrc.rs | 2 +- src/test/run-pass/type-param-constraints.rs | 2 +- src/test/run-pass/unique-pinned-nocopy-2.rs | 2 +- src/test/run-pass/unwind-resource.rs | 2 +- src/test/run-pass/unwind-resource2.rs | 2 +- src/test/run-pass/vec-slice-drop.rs | 2 +- 143 files changed, 185 insertions(+), 421 deletions(-) diff --git a/doc/rust.md b/doc/rust.md index 9d7d9ee473c..a34c32e1200 100644 --- a/doc/rust.md +++ b/doc/rust.md @@ -211,7 +211,7 @@ The keywords in [source files](#source-files) are the following strings: ~~~~~~~~ {.keyword} again assert break -check class const copy +check const copy drop else enum export extern fail false fn for @@ -220,6 +220,7 @@ let log loop match mod mut pure return +struct true trait type unchecked unsafe while @@ -1097,151 +1098,6 @@ enum list { let a: list = cons(7, @cons(13, @nil)); ~~~~ -### Classes - -A _class_ is a named record type that collects together fields and -methods. It must have a _constructor_ (a function called `new` that -returns a new instance of the class), and may have a destructor (a -nullary function called `drop` that executes before the memory manager -frees the memory for a given class). For historical reasons, we may -call a class with a destructor and a single field a "resource". - -A _class item_ declares a class type: - -~~~~ -class file_descriptor { - let fd: libc::c_int; - new(fd: libc::c_int) { self.fd = fd; } - drop { libc::close(self.fd); } -} -~~~~ - -Calling the `file_descriptor` constructor function on an integer will -produce a value with the `file_descriptor` type. - -_Fields_ are immutable by default, so instances of `file_descriptor` -can't have their `fd` fields reassigned. A mutable field declaration -looks like: - -~~~~ - let mut fd: libc::c_int; -~~~~ - -The only exception is that the body of the class constructor begins -with all the class's fields uninitialized, and is allowed to -- in -fact, must -- initialize all the fields. The compiler enforces this -invariant. - -Usually, the class constructor stores its argument or arguments in the -class's named fields. In this case, the `file_descriptor`'s data field -would be accessed like `f.fd`, if `f` is a value of type -`file_descriptor`. By default, class fields are _public_: they can be -accessed both from methods inside the class, and code outside the -class. Classes can also have private fields: - -~~~~ -class file_descriptor { - let fd: *libc::FILE; - new(fd: *libc::FILE) { - self.fd = fd; self.name = none; - } - priv { - let mut name: option<~str>; - } - fn get_name() -> ~str { - match self.name { - none => fail ~"File has no name!", - some(n) => n - } - } -} -~~~~ - -Private fields are instance-private: methods in a class `C` can access -`self`'s private fields, but not private fields of other values of -type `C`. Code outside a class can't access any private fields. - -A class item may contain _methods_, which take an implicit `self` -argument: - -~~~~ -class file_descriptor { - let fd: *libc::FILE; - new(fd: *libc::FILE) { self.fd = fd; } - fn flush() { - libc::fflush(self.fd); - } -} -~~~~ - -In this case, ```open``` is a nullary method that calls the -```fopen``` function, defined in another library, on the ```fd``` -field. As in this example, methods must refer to their self's fields -as fields of ```self```; bare references to ```fd``` can't -occur. Methods can be public or private; just like fields, they are -public by default and private if enclosed in a `priv` section. - -Classes may be polymorphic: - -~~~~ -class file { - let data: A; - let fd: *libc::FILE; - new(data: A, fd: *libc::FILE) { self.data = data; self.fd = fd; } -} -~~~~ - -Methods may also be polymorphic, and can have additional type -parameters other than those bound in the class: - -~~~~ -class file { - let data: A; - let fd: *libc::FILE; - new(fd: *libc::FILE, data: A) { self.fd = fd; self.data = data; } - fn map_data(f: fn(A) -> B) -> B { - f(self.data) - } -} -~~~~ - -Classes do not support inheritance, except through traits. As a -result, all class method dispatch is static (non-virtual). - -A class may implement a trait (see [traits](#traits)): - -~~~~ -trait to_str { - fn to_str() -> ~str; -} - -class file : to_str { - let fd: *libc::FILE; - new(fd: *libc::FILE) { self.fd = fd; } - fn to_str() -> ~str { ~"a file" } -} -~~~~ - -The syntax `class file: to_str` is pronounced "class `file` -implements trait `to_str`". - -Class instances may be allocated on the stack, in the exchange heap, -or on the task heap. A value with a class type ```C``` has a -noncopyable [type kind](#type-kinds) if ```C``` has a destructor, and -thus may not be copied. Class types that don't have destructors may be -copied if all their fields are copyable. - -The semantics guarantee that for each constructed resource value, the -destructor will run once: when the value is disposed of (barring -drastic program termination that somehow prevents unwinding from -taking place). For stack-allocated values, disposal happens when the -value goes out of scope. For values in shared boxes, it happens when -the reference count of the box reaches zero. - -The order of fields in a class instance is significant; its runtime -representation is the same as that of a record with identical fields -laid out in the same order. - ### Traits A _trait item_ describes a set of method types. [_implementation @@ -1348,7 +1204,7 @@ trait. The methods in such an implementation can only be used statically (as direct calls on the values of the type that the implementation targets). In such an implementation, the `of` clause is not given, and the name is mandatory. Such implementations are -limited to nominal types (enums, classes) and the implementation must +limited to nominal types (enums, structs) and the implementation must appear in the same module or a sub-module as the receiver type. _When_ a trait is specified, all methods declared as part of the @@ -2744,9 +2600,9 @@ fn main() { In this example, the trait `printable` occurs as a type in both the type signature of `print`, and the cast expression in `main`. -### Class types +### Struct types -Every class item defines a type. See [classes](#classes). +Every struct item defines a type. ### Type parameters @@ -2766,7 +2622,7 @@ type `~[B]`, a vector type with element type `B`. ### Self type -The special type `self` has a meaning within methods inside a class or +The special type `self` has a meaning within methods inside an impl item. It refers to the type of the implicit `self` argument. For example, in: @@ -2781,19 +2637,7 @@ impl ~str: printable { ~~~~~~ `self` refers to the value of type `str` that is the receiver for a -call to the method `to_str`. Similarly, in a class declaration: - -~~~~~~ -class cat { - let mut meows: uint; - new() { self.meows = 0; } - fn meow() { self.meows = self.meows + 1; } -} -~~~~~~ - -`self` refers to the class instance that is the receiver of the method -(except in the constructor `new`, where `self` is the class instance -that the constructor implicitly returns). +call to the method `to_str`. ## Type kinds diff --git a/doc/tutorial.md b/doc/tutorial.md index df1573fc494..5a2fce3bc77 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -1821,85 +1821,6 @@ fn contains(v: ~[int], elt: int) -> bool { `for` syntax only works with stack closures. -# Classes - -Rust lets users define new types with fields and methods, called 'classes', in -the style of object-oriented languages. - -> ***Warning:*** Rust's classes are in the process of changing rapidly. Some more -> information about some of the potential changes is [here][classchanges]. - -[classchanges]: http://pcwalton.github.com/blog/2012/06/03/maximally-minimal-classes-for-rust/ - -An example of a class: - -~~~~ -class example { - let mut x: int; - let y: int; - - priv { - let mut private_member: int; - fn private_method() {} - } - - new(x: int) { - // Constructor - self.x = x; - self.y = 7; - self.private_member = 8; - } - - fn a() { - io::println(~"a"); - } - - drop { - // Destructor - self.x = 0; - } -} - -fn main() { - let x: example = example(1); - let y: @example = @example(2); - x.a(); - x.x = 5; -} -~~~~ - -Fields and methods are declared just like functions and local variables, using -'fn' and 'let'. As usual, 'let mut' can be used to create mutable fields. At -minimum, Rust classes must have at least one field. - -Rust classes must also have a constructor, and can optionally have a destructor -as well. The constructor and destructor are declared as shown in the example: -like methods named 'new' and 'drop', but without 'fn', and without arguments -for drop. - -In the constructor, the compiler will enforce that all fields are initialized -before doing anything that might allow them to be accessed. This includes -returning from the constructor, calling any method on 'self', calling any -function with 'self' as an argument, or taking a reference to 'self'. Mutation -of immutable fields is possible only in the constructor, and only before doing -any of these things; afterwards it is an error. - -Private fields and methods are declared as shown above, using a `priv { ... }` -block within the class. They are accessible only from within the same instance -of the same class. (For example, even from within class A, you cannot call -private methods, or access private fields, on other instances of class A; only -on `self`.) This accessibility restriction may change in the future. - -As mentioned below, in the section on copying types, classes with destructors -are considered 'resource' types and are not copyable. - -Declaring a class also declares its constructor as a function of the same name. -You can construct an instance of the class, as in the example, by calling that -function. The function and the type, though they have the same name, are -otherwise independent. As with other Rust types, you can use `@` or `~` to -construct a heap-allocated instance of a class, either shared or unique; just -call e.g. `@example(...)` as shown above. - # Argument passing Rust datatypes are not trivial to copy (the way, for example, diff --git a/src/libcore/comm.rs b/src/libcore/comm.rs index 6452027fa7c..4d67e98d68a 100644 --- a/src/libcore/comm.rs +++ b/src/libcore/comm.rs @@ -97,7 +97,7 @@ fn listen(f: fn(Chan) -> U) -> U { f(po.chan()) } -class PortPtr { +struct PortPtr { let po: *rust_port; new(po: *rust_port) { self.po = po; } drop unsafe { @@ -132,7 +132,7 @@ fn listen(f: fn(Chan) -> U) -> U { */ fn as_raw_port(ch: comm::Chan, f: fn(*rust_port) -> U) -> U { - class PortRef { + struct PortRef { let p: *rust_port; new(p: *rust_port) { self.p = p; } drop { diff --git a/src/libcore/io.rs b/src/libcore/io.rs index d85ffb4981d..8ef9556a958 100644 --- a/src/libcore/io.rs +++ b/src/libcore/io.rs @@ -237,7 +237,7 @@ fn seek(off: int, whence: SeekStyle) { self.base.seek(off, whence) } fn tell() -> uint { self.base.tell() } } -class FILERes { +struct FILERes { let f: *libc::FILE; new(f: *libc::FILE) { self.f = f; } drop { libc::fclose(self.f); } @@ -415,7 +415,7 @@ fn get_type() -> WriterType { } } -class FdRes { +struct FdRes { let fd: fd_t; new(fd: fd_t) { self.fd = fd; } drop { libc::close(self.fd); } @@ -764,7 +764,7 @@ enum Level { // Artifacts that need to fsync on destruction - class Res { + struct Res { let arg: Arg; new(-arg: Arg) { self.arg <- arg; } drop { diff --git a/src/libcore/option.rs b/src/libcore/option.rs index e677b9bde00..c122fb9e46f 100644 --- a/src/libcore/option.rs +++ b/src/libcore/option.rs @@ -264,7 +264,7 @@ fn test_unwrap_str() { #[test] fn test_unwrap_resource() { - class r { + struct r { let i: @mut int; new(i: @mut int) { self.i = i; } drop { *(self.i) += 1; } diff --git a/src/libcore/priv.rs b/src/libcore/priv.rs index 1fcc57f5036..c02b094ad36 100644 --- a/src/libcore/priv.rs +++ b/src/libcore/priv.rs @@ -194,7 +194,7 @@ unsafe fn weaken_task(f: fn(comm::Port<()>)) { let _unweaken = Unweaken(ch); f(po); - class Unweaken { + struct Unweaken { let ch: comm::Chan<()>; new(ch: comm::Chan<()>) { self.ch = ch; } drop unsafe { diff --git a/src/libcore/rand.rs b/src/libcore/rand.rs index fa197a365c3..cf2a3712b06 100644 --- a/src/libcore/rand.rs +++ b/src/libcore/rand.rs @@ -243,7 +243,7 @@ fn shuffle_mut(&&values: ~[mut T]) { } -class RandRes { +struct RandRes { let c: *rctx; new(c: *rctx) { self.c = c; } drop { rustrt::rand_free(self.c); } diff --git a/src/libcore/run.rs b/src/libcore/run.rs index 991c4d8bed2..3ccdc87997d 100644 --- a/src/libcore/run.rs +++ b/src/libcore/run.rs @@ -225,7 +225,7 @@ fn destroy_repr(r: &ProgRepr) { libc::fclose(r.out_file); libc::fclose(r.err_file); } - class ProgRes { + struct ProgRes { let r: ProgRepr; new(+r: ProgRepr) { self.r = r; } drop { destroy_repr(&self.r); } diff --git a/src/libcore/stackwalk.rs b/src/libcore/stackwalk.rs index 07c6ae6925e..959ee4cf5a8 100644 --- a/src/libcore/stackwalk.rs +++ b/src/libcore/stackwalk.rs @@ -6,7 +6,7 @@ type Word = uint; -class Frame { +struct Frame { let fp: *Word; new(fp: *Word) { diff --git a/src/libcore/task.rs b/src/libcore/task.rs index 50ff4e0d8a2..90dd00d994a 100644 --- a/src/libcore/task.rs +++ b/src/libcore/task.rs @@ -578,7 +578,7 @@ fn get_task() -> Task { * ~~~ */ unsafe fn unkillable(f: fn() -> U) -> U { - class AllowFailure { + struct AllowFailure { let t: *rust_task; new(t: *rust_task) { self.t = t; } drop { rustrt::rust_task_allow_kill(self.t); } @@ -592,7 +592,7 @@ unsafe fn unkillable(f: fn() -> U) -> U { /// The inverse of unkillable. Only ever to be used nested in unkillable(). unsafe fn rekillable(f: fn() -> U) -> U { - class DisallowFailure { + struct DisallowFailure { let t: *rust_task; new(t: *rust_task) { self.t = t; } drop { rustrt::rust_task_inhibit_kill(self.t); } @@ -609,7 +609,7 @@ unsafe fn rekillable(f: fn() -> U) -> U { * For use with exclusive ARCs, which use pthread mutexes directly. */ unsafe fn atomically(f: fn() -> U) -> U { - class DeferInterrupts { + struct DeferInterrupts { let t: *rust_task; new(t: *rust_task) { self.t = t; } drop { @@ -911,7 +911,7 @@ fn with_parent_tg(parent_group: &mut option, } // One of these per task. -class Tcb { +struct Tcb { let me: *rust_task; // List of tasks with whose fates this one's is intertwined. let tasks: TaskGroupArc; // 'none' means the group has failed. @@ -952,7 +952,7 @@ fn with_parent_tg(parent_group: &mut option, } } -class AutoNotify { +struct AutoNotify { let notify_chan: comm::Chan; let mut failed: bool; new(chan: comm::Chan) { diff --git a/src/libcore/unsafe.rs b/src/libcore/unsafe.rs index 22cdbacd60f..80fb4dc7d62 100644 --- a/src/libcore/unsafe.rs +++ b/src/libcore/unsafe.rs @@ -74,7 +74,7 @@ unsafe fn transmute_mut_region(+ptr: &a/mut T) -> &b/mut T { data: T }; -class ArcDestruct { +struct ArcDestruct { let data: *libc::c_void; new(data: *libc::c_void) { self.data = data; } drop unsafe { @@ -162,7 +162,7 @@ fn rust_atomic_decrement(p: &mut libc::intptr_t) fn rust_unlock_little_lock(lock: rust_little_lock); } -class LittleLock { +struct LittleLock { let l: rust_little_lock; new() { self.l = rustrt::rust_create_little_lock(); @@ -173,7 +173,7 @@ fn rust_atomic_decrement(p: &mut libc::intptr_t) impl LittleLock { #[inline(always)] unsafe fn lock(f: fn() -> T) -> T { - class Unlock { + struct Unlock { let l: rust_little_lock; new(l: rust_little_lock) { self.l = l; } drop { rustrt::rust_unlock_little_lock(self.l); } diff --git a/src/libcore/util.rs b/src/libcore/util.rs index 3eb9474598c..c68ee317da4 100644 --- a/src/libcore/util.rs +++ b/src/libcore/util.rs @@ -33,7 +33,7 @@ fn replace(dest: &mut T, +src: T) -> T { } /// A non-copyable dummy type. -class NonCopyable { +struct NonCopyable { i: (); new() { self.i = (); } drop { } diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index 3b5d08d0c40..77d39616b61 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -19,7 +19,7 @@ export eq_vec; export methods; -class small_bitv { +struct small_bitv { let mut bits: u32; new(bits: u32) { self.bits = bits; } priv { @@ -78,7 +78,7 @@ fn is_false() -> bool { self.bits == 0 } fn invert() { self.bits = !self.bits; } } -class big_bitv { +struct big_bitv { // only mut b/c of clone and lack of other constructor let mut storage: ~[mut uint]; new(-storage: ~[mut uint]) { @@ -153,7 +153,7 @@ enum a_bitv { big(~big_bitv), small(~small_bitv) } enum op {union, intersect, assign, difference} // The bitvector type -class bitv { +struct bitv { let rep: a_bitv; let nbits: uint; diff --git a/src/libstd/c_vec.rs b/src/libstd/c_vec.rs index 8b5a5e55113..0cba532fa57 100644 --- a/src/libstd/c_vec.rs +++ b/src/libstd/c_vec.rs @@ -42,7 +42,7 @@ enum c_vec { c_vec_({ base: *mut T, len: uint, rsrc: @dtor_res}) } -class dtor_res { +struct dtor_res { let dtor: option; new(dtor: option) { self.dtor = dtor; } drop { diff --git a/src/libstd/net_tcp.rs b/src/libstd/net_tcp.rs index e14b15b4eff..aadbe09bc4e 100644 --- a/src/libstd/net_tcp.rs +++ b/src/libstd/net_tcp.rs @@ -38,7 +38,7 @@ * underlying libuv data structures when it goes out of scope. This is the * data structure that is used for read/write operations over a TCP stream. */ -class tcp_socket { +struct tcp_socket { let socket_data: @tcp_socket_data; new(socket_data: @tcp_socket_data) { self.socket_data = socket_data; } drop { @@ -54,7 +54,7 @@ * It is created with a call to `net::tcp::socket_buf()` and has impls that * satisfy both the `io::reader` and `io::writer` traits. */ -class tcp_socket_buf { +struct tcp_socket_buf { let data: @tcp_buffered_socket_data; new(data: @tcp_buffered_socket_data) { self.data = data; } } diff --git a/src/libsyntax/ext/pipes/proto.rs b/src/libsyntax/ext/pipes/proto.rs index 100f248a7ad..9e44ce7acda 100644 --- a/src/libsyntax/ext/pipes/proto.rs +++ b/src/libsyntax/ext/pipes/proto.rs @@ -109,7 +109,7 @@ fn protocol(name: ident, +span: span) -> protocol { @protocol_(name, span) } -class protocol_ { +struct protocol_ { let name: ident; let span: span; let states: DVec; diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index c714fe59b13..c1e5de48741 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -180,7 +180,7 @@ macro_rules! maybe_whole { /* ident is handled by common.rs */ -class parser { +struct parser { let sess: parse_sess; let cfg: crate_cfg; let file_type: file_type; @@ -3201,8 +3201,7 @@ fn parse_item_or_view_item(+attrs: ~[attribute], items_allowed: bool) return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, visibility, maybe_append(attrs, extra_attrs))); - } else if items_allowed && - (self.eat_keyword(~"class") || self.eat_keyword(~"struct")) { + } else if items_allowed && self.eat_keyword(~"struct") { let (ident, item_, extra_attrs) = self.parse_item_class(); return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, visibility, diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index a99d071b6ef..0f4d71c281c 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -335,7 +335,7 @@ fn restricted_keyword_table() -> hashmap<~str, ()> { let keys = ~[ ~"again", ~"assert", ~"break", - ~"check", ~"class", ~"const", ~"copy", + ~"check", ~"const", ~"copy", ~"do", ~"drop", ~"else", ~"enum", ~"export", ~"extern", ~"fail", ~"false", ~"fn", ~"for", diff --git a/src/rustc/driver/rustc.rs b/src/rustc/driver/rustc.rs index 134af84866e..f1151256477 100644 --- a/src/rustc/driver/rustc.rs +++ b/src/rustc/driver/rustc.rs @@ -230,7 +230,7 @@ enum monitor_msg { diagnostic::emit(cmsp, msg, lvl); }; - class finally { + struct finally { let ch: comm::Chan; new(ch: comm::Chan) { self.ch = ch; } drop { comm::send(self.ch, done); } diff --git a/src/rustc/lib/llvm.rs b/src/rustc/lib/llvm.rs index 2250d3d3086..8f705781adf 100644 --- a/src/rustc/lib/llvm.rs +++ b/src/rustc/lib/llvm.rs @@ -1122,7 +1122,7 @@ fn fn_ty_param_tys(fn_ty: TypeRef) -> ~[TypeRef] unsafe { /* Memory-managed interface to target data. */ -class target_data_res { +struct target_data_res { let TD: TargetDataRef; new(TD: TargetDataRef) { self.TD = TD; } drop { llvm::LLVMDisposeTargetData(self.TD); } @@ -1138,7 +1138,7 @@ fn mk_target_data(string_rep: ~str) -> target_data { /* Memory-managed interface to pass managers. */ -class pass_manager_res { +struct pass_manager_res { let PM: PassManagerRef; new(PM: PassManagerRef) { self.PM = PM; } drop { llvm::LLVMDisposePassManager(self.PM); } @@ -1153,7 +1153,7 @@ fn mk_pass_manager() -> pass_manager { /* Memory-managed interface to object files. */ -class object_file_res { +struct object_file_res { let ObjectFile: ObjectFileRef; new(ObjectFile: ObjectFileRef) { self.ObjectFile = ObjectFile; } drop { llvm::LLVMDisposeObjectFile(self.ObjectFile); } @@ -1169,7 +1169,7 @@ fn mk_object_file(llmb: MemoryBufferRef) -> option { /* Memory-managed interface to section iterators. */ -class section_iter_res { +struct section_iter_res { let SI: SectionIteratorRef; new(SI: SectionIteratorRef) { self.SI = SI; } drop { llvm::LLVMDisposeSectionIterator(self.SI); } diff --git a/src/rustc/metadata/decoder.rs b/src/rustc/metadata/decoder.rs index 6678b6e036a..c36b99ba9d5 100644 --- a/src/rustc/metadata/decoder.rs +++ b/src/rustc/metadata/decoder.rs @@ -403,7 +403,7 @@ fn def_like_to_def(def_like: def_like) -> ast::def { } // A path. -class path_entry { +struct path_entry { // The full path, separated by '::'. let path_string: ~str; // The definition, implementation, or field that this path corresponds to. diff --git a/src/rustc/middle/lang_items.rs b/src/rustc/middle/lang_items.rs index 877dfd5f90c..557ee9661a2 100644 --- a/src/rustc/middle/lang_items.rs +++ b/src/rustc/middle/lang_items.rs @@ -22,7 +22,7 @@ import std::map::{hashmap, str_hash}; import str_eq = str::eq; -class LanguageItems { +struct LanguageItems { let mut const_trait: option; let mut copy_trait: option; let mut send_trait: option; @@ -62,7 +62,7 @@ } } -class LanguageItemCollector { +struct LanguageItemCollector { let items: &LanguageItems; let crate: @crate; diff --git a/src/rustc/middle/liveness.rs b/src/rustc/middle/liveness.rs index c89095423c6..321e3db318e 100644 --- a/src/rustc/middle/liveness.rs +++ b/src/rustc/middle/liveness.rs @@ -208,7 +208,7 @@ fn relevant_def(def: def) -> option { } } -class ir_maps { +struct ir_maps { let tcx: ty::ctxt; let method_map: typeck::method_map; let last_use_map: last_use_map; @@ -505,7 +505,7 @@ fn invalid_users() -> users { const ACC_WRITE: uint = 2u; const ACC_USE: uint = 4u; -class liveness { +struct liveness { let tcx: ty::ctxt; let ir: @ir_maps; let s: specials; diff --git a/src/rustc/middle/resolve3.rs b/src/rustc/middle/resolve3.rs index 70bf3f580ce..7ff5d96c993 100644 --- a/src/rustc/middle/resolve3.rs +++ b/src/rustc/middle/resolve3.rs @@ -249,7 +249,7 @@ fn Atom(n: uint) -> Atom { return n; } -class AtomTable { +struct AtomTable { let atoms: hashmap<@~str,Atom>; let strings: DVec<@~str>; let mut atom_count: uint; @@ -312,7 +312,7 @@ fn atom_hashmap() -> hashmap { } /// One local scope. -class Rib { +struct Rib { let bindings: hashmap; let kind: RibKind; @@ -323,7 +323,7 @@ fn atom_hashmap() -> hashmap { } /// One import directive. -class ImportDirective { +struct ImportDirective { let module_path: @DVec; let subclass: @ImportDirectiveSubclass; let span: span; @@ -339,7 +339,7 @@ fn atom_hashmap() -> hashmap { } /// The item that an import resolves to. -class Target { +struct Target { let target_module: @Module; let bindings: @NameBindings; @@ -349,7 +349,7 @@ fn atom_hashmap() -> hashmap { } } -class ImportResolution { +struct ImportResolution { let span: span; // The number of outstanding references to this name. When this reaches @@ -402,7 +402,7 @@ enum ParentLink { } /// One node in the tree of modules. -class Module { +struct Module { let parent_link: ParentLink; let mut def_id: option; @@ -491,7 +491,7 @@ fn unused_import_lint_level(session: session) -> level { // Records the definitions (at most one for each namespace) that a name is // bound to. -class NameBindings { +struct NameBindings { let mut module_def: ModuleDef; //< Meaning in the module namespace. let mut type_def: option; //< Meaning in the type namespace. let mut value_def: option; //< Meaning in the value namespace. @@ -611,7 +611,7 @@ fn span_for_namespace(namespace: Namespace) -> option { } /// Interns the names of the primitive types. -class PrimitiveTypeTable { +struct PrimitiveTypeTable { let primitive_types: hashmap; new(atom_table: @AtomTable) { @@ -652,7 +652,7 @@ fn namespace_to_str(ns: Namespace) -> ~str { } /// The main resolver class. -class Resolver { +struct Resolver { let session: session; let lang_items: LanguageItems; let crate: @crate; diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs index 3195768a105..d1452fa4906 100644 --- a/src/rustc/middle/trans/base.rs +++ b/src/rustc/middle/trans/base.rs @@ -83,7 +83,7 @@ fn dup_for_join(dest: dest) -> dest { } } -class icx_popper { +struct icx_popper { let ccx: @crate_ctxt; new(ccx: @crate_ctxt) { self.ccx = ccx; } drop { diff --git a/src/rustc/middle/trans/common.rs b/src/rustc/middle/trans/common.rs index 363f725b5fc..8e10be8e211 100644 --- a/src/rustc/middle/trans/common.rs +++ b/src/rustc/middle/trans/common.rs @@ -72,7 +72,7 @@ fn new_namegen() -> namegen { llvm_insns: hashmap<~str, uint>, fn_times: @mut ~[{ident: ~str, time: int}]}; -class BuilderRef_res { +struct BuilderRef_res { let B: BuilderRef; new(B: BuilderRef) { self.B = B; } drop { llvm::LLVMDisposeBuilder(self.B); } @@ -390,7 +390,7 @@ fn info() -> option { // code. Each basic block we generate is attached to a function, typically // with many basic blocks per function. All the basic blocks attached to a // function are organized as a directed graph. -class block_ { +struct block_ { // The BasicBlockRef returned from a call to // llvm::LLVMAppendBasicBlock(llfn, name), which adds a basic // block to the function pointed to by llfn. We insert diff --git a/src/rustc/middle/typeck/check/method.rs b/src/rustc/middle/typeck/check/method.rs index 34c6e306ccc..4e47b752449 100644 --- a/src/rustc/middle/typeck/check/method.rs +++ b/src/rustc/middle/typeck/check/method.rs @@ -56,7 +56,7 @@ fn transform_self_type_for_method } } -class lookup { +struct lookup { let fcx: @fn_ctxt; let expr: @ast::expr; let self_expr: @ast::expr; diff --git a/src/rustc/middle/typeck/coherence.rs b/src/rustc/middle/typeck/coherence.rs index c8a9f850aa0..bfc2365f1a9 100644 --- a/src/rustc/middle/typeck/coherence.rs +++ b/src/rustc/middle/typeck/coherence.rs @@ -118,7 +118,7 @@ fn method_to_MethodInfo(ast_method: @method) -> @MethodInfo { } } -class CoherenceInfo { +struct CoherenceInfo { // Contains implementations of methods that are inherent to a type. // Methods in these implementations don't need to be exported. let inherent_methods: hashmap>; @@ -133,7 +133,7 @@ fn method_to_MethodInfo(ast_method: @method) -> @MethodInfo { } } -class CoherenceChecker { +struct CoherenceChecker { let crate_context: @crate_ctxt; let inference_context: infer_ctxt; diff --git a/src/rustc/util/common.rs b/src/rustc/util/common.rs index b4195d0c04c..e34113432ae 100644 --- a/src/rustc/util/common.rs +++ b/src/rustc/util/common.rs @@ -14,7 +14,7 @@ fn indent(op: fn() -> R) -> R { return r; } -class _indenter { +struct _indenter { let _i: (); new(_i: ()) { self._i = (); } drop { debug!{"<<"}; } diff --git a/src/rustdoc/demo.rs b/src/rustdoc/demo.rs index 9fb37977231..8968d481f6a 100644 --- a/src/rustdoc/demo.rs +++ b/src/rustdoc/demo.rs @@ -111,7 +111,7 @@ mod blade_runner { * eget ante feugiat tortor congue auctor ac quis ante. Proin * condimentum lacinia tincidunt. */ -class bored { +struct bored { let bored: bool; new(bored: bool) { self.bored = bored; } drop { log(error, self.bored); } diff --git a/src/test/auxiliary/cci_class.rs b/src/test/auxiliary/cci_class.rs index 182bfd351d4..46312dc989b 100644 --- a/src/test/auxiliary/cci_class.rs +++ b/src/test/auxiliary/cci_class.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/auxiliary/cci_class_2.rs b/src/test/auxiliary/cci_class_2.rs index 92ffb217f6a..bd3e17000b1 100644 --- a/src/test/auxiliary/cci_class_2.rs +++ b/src/test/auxiliary/cci_class_2.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/auxiliary/cci_class_3.rs b/src/test/auxiliary/cci_class_3.rs index dab856377f8..6b62cd166db 100644 --- a/src/test/auxiliary/cci_class_3.rs +++ b/src/test/auxiliary/cci_class_3.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/auxiliary/cci_class_4.rs b/src/test/auxiliary/cci_class_4.rs index be2c982799b..56debd85748 100644 --- a/src/test/auxiliary/cci_class_4.rs +++ b/src/test/auxiliary/cci_class_4.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut meows : uint; fn meow() { diff --git a/src/test/auxiliary/cci_class_5.rs b/src/test/auxiliary/cci_class_5.rs index 9a3f0a0ad36..5e5c5c53d9c 100644 --- a/src/test/auxiliary/cci_class_5.rs +++ b/src/test/auxiliary/cci_class_5.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut meows : uint; fn nap() { for uint::range(1u, 10000u) |_i|{}} diff --git a/src/test/auxiliary/cci_class_6.rs b/src/test/auxiliary/cci_class_6.rs index ed52788440f..18ffb35d3e5 100644 --- a/src/test/auxiliary/cci_class_6.rs +++ b/src/test/auxiliary/cci_class_6.rs @@ -1,6 +1,6 @@ mod kitties { -class cat { +struct cat { priv { let mut info : ~[U]; let mut meows : uint; diff --git a/src/test/auxiliary/cci_class_cast.rs b/src/test/auxiliary/cci_class_cast.rs index 64644f665d2..fad0197564c 100644 --- a/src/test/auxiliary/cci_class_cast.rs +++ b/src/test/auxiliary/cci_class_cast.rs @@ -3,7 +3,7 @@ mod kitty { -class cat : ToStr { +struct cat : ToStr { priv { let mut meows : uint; fn meow() { diff --git a/src/test/auxiliary/issue-2526.rs b/src/test/auxiliary/issue-2526.rs index f8b374dcf85..1d1adbf179d 100644 --- a/src/test/auxiliary/issue-2526.rs +++ b/src/test/auxiliary/issue-2526.rs @@ -7,7 +7,7 @@ export context; -class arc_destruct { +struct arc_destruct { let _data: int; new(data: int) { self._data = data; } drop {} @@ -21,7 +21,7 @@ fn init() -> arc_destruct unsafe { arc(context_res()) } -class context_res { +struct context_res { let ctx : int; new() { self.ctx = 0; } diff --git a/src/test/auxiliary/issue-3012-1.rs b/src/test/auxiliary/issue-3012-1.rs index 3ee2a4d3f83..d47f16c7f11 100644 --- a/src/test/auxiliary/issue-3012-1.rs +++ b/src/test/auxiliary/issue-3012-1.rs @@ -5,7 +5,7 @@ mod socket { export socket_handle; -class socket_handle { +struct socket_handle { let sockfd: libc::c_int; new(x: libc::c_int) {self.sockfd = x;} drop { /* c::close(self.sockfd); */ } diff --git a/src/test/auxiliary/issue2170lib.rs b/src/test/auxiliary/issue2170lib.rs index 915adafab66..cca092faf00 100644 --- a/src/test/auxiliary/issue2170lib.rs +++ b/src/test/auxiliary/issue2170lib.rs @@ -3,7 +3,7 @@ fn foo(_x: i32) { } -class rsrc { +struct rsrc { let x: i32; new(x: i32) { self.x = x; } drop { foo(self.x); } diff --git a/src/test/auxiliary/test_comm.rs b/src/test/auxiliary/test_comm.rs index 007ef3bcc43..dbc59ec0071 100644 --- a/src/test/auxiliary/test_comm.rs +++ b/src/test/auxiliary/test_comm.rs @@ -27,7 +27,7 @@ fn port() -> port { port_t(@port_ptr(rustrt::new_port(sys::size_of::() as size_t))) } -class port_ptr { +struct port_ptr { let po: *rust_port; new(po: *rust_port) { debug!{"in the port_ptr constructor"}; diff --git a/src/test/bench/task-perf-alloc-unwind.rs b/src/test/bench/task-perf-alloc-unwind.rs index eac1f67dcaa..3c2dfec2d7f 100644 --- a/src/test/bench/task-perf-alloc-unwind.rs +++ b/src/test/bench/task-perf-alloc-unwind.rs @@ -40,7 +40,7 @@ enum st { }) } -class r { +struct r { let _l: @nillist; new(l: @nillist) { self._l = l; } drop {} diff --git a/src/test/bench/task-perf-word-count-generic.rs b/src/test/bench/task-perf-word-count-generic.rs index 7e8084adb7d..2c45896acd9 100644 --- a/src/test/bench/task-perf-word-count-generic.rs +++ b/src/test/bench/task-perf-word-count-generic.rs @@ -104,7 +104,7 @@ fn reduce(&&word: ~str, get: map_reduce::getter) { io::println(fmt!{"%s\t%?", word, count}); } -class box { +struct box { let mut contents: option; new(+x: T) { self.contents = some(x); } @@ -350,7 +350,7 @@ fn is_word_char(c: char) -> bool { char::is_alphabetic(c) || char::is_digit(c) || c == '_' } -class random_word_reader: word_reader { +struct random_word_reader: word_reader { let mut remaining: uint; let rng: rand::Rng; new(count: uint) { diff --git a/src/test/compile-fail/assign-to-method.rs b/src/test/compile-fail/assign-to-method.rs index bd1a17c6b82..42781866f9a 100644 --- a/src/test/compile-fail/assign-to-method.rs +++ b/src/test/compile-fail/assign-to-method.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/compile-fail/block-must-not-have-result-res.rs b/src/test/compile-fail/block-must-not-have-result-res.rs index ec42d83085b..958cabb61b8 100644 --- a/src/test/compile-fail/block-must-not-have-result-res.rs +++ b/src/test/compile-fail/block-must-not-have-result-res.rs @@ -1,6 +1,6 @@ // error-pattern:mismatched types: expected `()` but found `bool` -class r { +struct r { new() {} drop { true } } diff --git a/src/test/compile-fail/borrowck-unary-move-2.rs b/src/test/compile-fail/borrowck-unary-move-2.rs index 53bb3a6d065..82c09f5036b 100644 --- a/src/test/compile-fail/borrowck-unary-move-2.rs +++ b/src/test/compile-fail/borrowck-unary-move-2.rs @@ -1,4 +1,4 @@ -class noncopyable { +struct noncopyable { i: (); new() { self.i = (); } drop { #error["dropped"]; } } enum wrapper = noncopyable; diff --git a/src/test/compile-fail/cap-clause-illegal-cap.rs b/src/test/compile-fail/cap-clause-illegal-cap.rs index f7863013898..3703c44f520 100644 --- a/src/test/compile-fail/cap-clause-illegal-cap.rs +++ b/src/test/compile-fail/cap-clause-illegal-cap.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class foo { let x: int; new(x: int) { self.x = x; } drop { } } +struct foo { let x: int; new(x: int) { self.x = x; } drop { } } fn to_lambda2(b: foo) -> fn@(uint) -> uint { // test case where copy clause specifies a value that is not used diff --git a/src/test/compile-fail/class-cast-to-trait.rs b/src/test/compile-fail/class-cast-to-trait.rs index eba939d76e7..ac4741a0e68 100644 --- a/src/test/compile-fail/class-cast-to-trait.rs +++ b/src/test/compile-fail/class-cast-to-trait.rs @@ -3,7 +3,7 @@ trait noisy { fn speak(); } -class cat : noisy { +struct cat : noisy { priv { let mut meows : uint; fn meow() { diff --git a/src/test/compile-fail/class-implements-int.rs b/src/test/compile-fail/class-implements-int.rs index ccc821ce78a..9f86953c3cf 100644 --- a/src/test/compile-fail/class-implements-int.rs +++ b/src/test/compile-fail/class-implements-int.rs @@ -1,4 +1,4 @@ -class cat : int { //~ ERROR trait +struct cat : int { //~ ERROR trait let meows: uint; new(in_x : uint) { self.meows = in_x; } } diff --git a/src/test/compile-fail/class-method-missing.rs b/src/test/compile-fail/class-method-missing.rs index b49fa62577d..31cc23d8162 100644 --- a/src/test/compile-fail/class-method-missing.rs +++ b/src/test/compile-fail/class-method-missing.rs @@ -3,7 +3,7 @@ trait animal { fn eat(); } -class cat : animal { +struct cat : animal { let meows: uint; new(in_x : uint) { self.meows = in_x; } } diff --git a/src/test/compile-fail/class-missing-self.rs b/src/test/compile-fail/class-missing-self.rs index 4bad4bd2bc5..84cd137f23e 100644 --- a/src/test/compile-fail/class-missing-self.rs +++ b/src/test/compile-fail/class-missing-self.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; fn sleep() { loop{} } diff --git a/src/test/compile-fail/copy-a-resource.rs b/src/test/compile-fail/copy-a-resource.rs index 6eeb4ea2ed4..2e8673156bf 100644 --- a/src/test/compile-fail/copy-a-resource.rs +++ b/src/test/compile-fail/copy-a-resource.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class foo { +struct foo { let i: int; new(i:int) { self.i = i; } drop {} diff --git a/src/test/compile-fail/issue-2063-resource.rs b/src/test/compile-fail/issue-2063-resource.rs index 9f489101f1b..98eb509c8d7 100644 --- a/src/test/compile-fail/issue-2063-resource.rs +++ b/src/test/compile-fail/issue-2063-resource.rs @@ -1,7 +1,7 @@ // test that autoderef of a type like this does not // cause compiler to loop. Note that no instances // of such a type could ever be constructed. -class t { //~ ERROR this type cannot be instantiated +struct t { //~ ERROR this type cannot be instantiated let x: x; let to_str: (); new(x: x) { self.x = x; self.to_str = (); } diff --git a/src/test/compile-fail/issue-2370-2.rs b/src/test/compile-fail/issue-2370-2.rs index fbd13ca6167..e8abfd3f450 100644 --- a/src/test/compile-fail/issue-2370-2.rs +++ b/src/test/compile-fail/issue-2370-2.rs @@ -1,5 +1,5 @@ // error-pattern: type cat cannot be dereferenced -class cat { new() {} } +struct cat { new() {} } fn main() { let kitty : cat = cat(); diff --git a/src/test/compile-fail/issue-2370.rs b/src/test/compile-fail/issue-2370.rs index 4cfd5efef22..9074eb7e1b8 100644 --- a/src/test/compile-fail/issue-2370.rs +++ b/src/test/compile-fail/issue-2370.rs @@ -1,5 +1,5 @@ // error-pattern: type cat cannot be dereferenced -class cat { new() {} } +struct cat { new() {} } fn main() { let nyan = cat(); diff --git a/src/test/compile-fail/issue-2487-b.rs b/src/test/compile-fail/issue-2487-b.rs index a18b886c6c7..ada5b6ffa05 100644 --- a/src/test/compile-fail/issue-2487-b.rs +++ b/src/test/compile-fail/issue-2487-b.rs @@ -1,4 +1,4 @@ -class socket { +struct socket { let sock: int; new() { self.sock = 1; } diff --git a/src/test/compile-fail/issue-2509-a.rs b/src/test/compile-fail/issue-2509-a.rs index 3783400d78b..fc1f4dc7159 100644 --- a/src/test/compile-fail/issue-2509-a.rs +++ b/src/test/compile-fail/issue-2509-a.rs @@ -1,4 +1,4 @@ -class c { //~ ERROR a struct must have at least one field +struct c { //~ ERROR a struct must have at least one field new() { } } diff --git a/src/test/compile-fail/issue-2718-a.rs b/src/test/compile-fail/issue-2718-a.rs index b068f9e1dc2..d7ea3f67d41 100644 --- a/src/test/compile-fail/issue-2718-a.rs +++ b/src/test/compile-fail/issue-2718-a.rs @@ -1,4 +1,4 @@ -class send_packet { +struct send_packet { let p: T; new(p: T) { self.p = p; } } diff --git a/src/test/compile-fail/issue-2825-b.rs b/src/test/compile-fail/issue-2825-b.rs index 7b4a1bf3dba..7be3d077050 100644 --- a/src/test/compile-fail/issue-2825-b.rs +++ b/src/test/compile-fail/issue-2825-b.rs @@ -1,4 +1,4 @@ -class example { +struct example { let x: int; new() { self.x = 1; diff --git a/src/test/compile-fail/issue-2825.rs b/src/test/compile-fail/issue-2825.rs index 847b7bccdb6..82a76273bd4 100644 --- a/src/test/compile-fail/issue-2825.rs +++ b/src/test/compile-fail/issue-2825.rs @@ -1,4 +1,4 @@ -class example { +struct example { let x: int; new() { //~ ERROR First constructor declared here self.x = 1; diff --git a/src/test/compile-fail/issue-3021-b.rs b/src/test/compile-fail/issue-3021-b.rs index 1e40ba92501..005cae43081 100644 --- a/src/test/compile-fail/issue-3021-b.rs +++ b/src/test/compile-fail/issue-3021-b.rs @@ -2,7 +2,7 @@ fn siphash(k0 : u64) { - class siphash { + struct siphash { let mut v0: u64; fn reset() { self.v0 = k0 ^ 0x736f6d6570736575; //~ ERROR attempted dynamic environment-capture diff --git a/src/test/compile-fail/lint-non-camel-case-class.rs b/src/test/compile-fail/lint-non-camel-case-class.rs index 701e3f8f4a0..94043961484 100644 --- a/src/test/compile-fail/lint-non-camel-case-class.rs +++ b/src/test/compile-fail/lint-non-camel-case-class.rs @@ -1,5 +1,5 @@ #[forbid(non_camel_case_types)] -class foo { //~ ERROR type, variant, or trait must be camel case +struct foo { //~ ERROR type, variant, or trait must be camel case let bar: int; new() { diff --git a/src/test/compile-fail/liveness-ctor-access-self-with-uninit-fields.rs b/src/test/compile-fail/liveness-ctor-access-self-with-uninit-fields.rs index 0480bc71798..a3277db4fce 100644 --- a/src/test/compile-fail/liveness-ctor-access-self-with-uninit-fields.rs +++ b/src/test/compile-fail/liveness-ctor-access-self-with-uninit-fields.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let how_hungry : int; fn meow() {} new() { diff --git a/src/test/compile-fail/liveness-ctor-field-never-init.rs b/src/test/compile-fail/liveness-ctor-field-never-init.rs index d71dff98064..405c1a4b57b 100644 --- a/src/test/compile-fail/liveness-ctor-field-never-init.rs +++ b/src/test/compile-fail/liveness-ctor-field-never-init.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let how_hungry : int; new() {} //~ ERROR field `self.how_hungry` is never initialized } diff --git a/src/test/compile-fail/liveness-ctor-uninit-field.rs b/src/test/compile-fail/liveness-ctor-uninit-field.rs index 3d4a88db262..9a846efae4e 100644 --- a/src/test/compile-fail/liveness-ctor-uninit-field.rs +++ b/src/test/compile-fail/liveness-ctor-uninit-field.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let mut a: int; let mut b: int; let mut c: int; diff --git a/src/test/compile-fail/liveness-ctor-uninit-var.rs b/src/test/compile-fail/liveness-ctor-uninit-var.rs index d03c7888974..041812a575f 100644 --- a/src/test/compile-fail/liveness-ctor-uninit-var.rs +++ b/src/test/compile-fail/liveness-ctor-uninit-var.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/compile-fail/liveness-unused.rs b/src/test/compile-fail/liveness-unused.rs index c1d4cdb4a57..f778a8da323 100644 --- a/src/test/compile-fail/liveness-unused.rs +++ b/src/test/compile-fail/liveness-unused.rs @@ -35,7 +35,7 @@ fn f4() { } // leave this in here just to trigger compile-fail: -class r { +struct r { let x: (); new() { self.x = (); } drop {} diff --git a/src/test/compile-fail/mutable-class-fields-2.rs b/src/test/compile-fail/mutable-class-fields-2.rs index d00d5dda230..808b7ff3177 100644 --- a/src/test/compile-fail/mutable-class-fields-2.rs +++ b/src/test/compile-fail/mutable-class-fields-2.rs @@ -1,5 +1,5 @@ // error-pattern:assigning to immutable field -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/compile-fail/mutable-class-fields.rs b/src/test/compile-fail/mutable-class-fields.rs index 6ee8c5ead7e..011656ac3ad 100644 --- a/src/test/compile-fail/mutable-class-fields.rs +++ b/src/test/compile-fail/mutable-class-fields.rs @@ -1,5 +1,5 @@ // error-pattern:assigning to immutable field -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/compile-fail/no-send-res-ports.rs b/src/test/compile-fail/no-send-res-ports.rs index a62278cefe1..1fa823938ca 100644 --- a/src/test/compile-fail/no-send-res-ports.rs +++ b/src/test/compile-fail/no-send-res-ports.rs @@ -1,5 +1,5 @@ fn main() { - class foo { + struct foo { let _x: comm::Port<()>; new(x: comm::Port<()>) { self._x = x; } drop {} diff --git a/src/test/compile-fail/non-const.rs b/src/test/compile-fail/non-const.rs index 29f6e1f7be2..cd160294f74 100644 --- a/src/test/compile-fail/non-const.rs +++ b/src/test/compile-fail/non-const.rs @@ -2,13 +2,13 @@ fn foo(_x: T) { } -class r { +struct r { let x:int; new(x:int) { self.x = x; } drop {} } -class r2 { +struct r2 { let x:@mut int; new(x:@mut int) { self.x = x; } drop {} diff --git a/src/test/compile-fail/noncopyable-class.rs b/src/test/compile-fail/noncopyable-class.rs index 736fee0f66c..e1fd1294b14 100644 --- a/src/test/compile-fail/noncopyable-class.rs +++ b/src/test/compile-fail/noncopyable-class.rs @@ -2,13 +2,13 @@ // Test that a class with a non-copyable field can't be // copied -class bar { +struct bar { let x: int; new(x:int) {self.x = x;} drop {} } -class foo { +struct foo { let i: int; let j: bar; new(i:int) { self.i = i; self.j = bar(5); } diff --git a/src/test/compile-fail/pinned-deep-copy.rs b/src/test/compile-fail/pinned-deep-copy.rs index 496a4fcbe76..ce9dfbc3f62 100644 --- a/src/test/compile-fail/pinned-deep-copy.rs +++ b/src/test/compile-fail/pinned-deep-copy.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class r { +struct r { let i: @mut int; new(i: @mut int) { self.i = i; } drop { *(self.i) = *(self.i) + 1; } diff --git a/src/test/compile-fail/private-class-field.rs b/src/test/compile-fail/private-class-field.rs index 15aba5d009d..ae0ae7c4a57 100644 --- a/src/test/compile-fail/private-class-field.rs +++ b/src/test/compile-fail/private-class-field.rs @@ -1,5 +1,5 @@ // error-pattern:no public field or method with that name -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/compile-fail/private-method.rs b/src/test/compile-fail/private-method.rs index f59e583f9b9..a1d71ba6af9 100644 --- a/src/test/compile-fail/private-method.rs +++ b/src/test/compile-fail/private-method.rs @@ -1,5 +1,5 @@ // error-pattern:call to private method not allowed -class cat { +struct cat { priv { let mut meows : uint; fn nap() { uint::range(1u, 10000u, |_i|{})} diff --git a/src/test/compile-fail/record-with-resource.rs b/src/test/compile-fail/record-with-resource.rs index 69f0cf09726..3540f03e800 100644 --- a/src/test/compile-fail/record-with-resource.rs +++ b/src/test/compile-fail/record-with-resource.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class my_resource { +struct my_resource { let x: int; new(x: int) { self.x = x; } drop { log(error, self.x); } diff --git a/src/test/compile-fail/regions-addr-of-self.rs b/src/test/compile-fail/regions-addr-of-self.rs index 2aa84a273ec..ea1181cd94a 100644 --- a/src/test/compile-fail/regions-addr-of-self.rs +++ b/src/test/compile-fail/regions-addr-of-self.rs @@ -1,4 +1,4 @@ -class dog { +struct dog { let mut cats_chased: uint; new() { diff --git a/src/test/compile-fail/regions-addr-of-upvar-self.rs b/src/test/compile-fail/regions-addr-of-upvar-self.rs index e44674919be..31d2fef14eb 100644 --- a/src/test/compile-fail/regions-addr-of-upvar-self.rs +++ b/src/test/compile-fail/regions-addr-of-upvar-self.rs @@ -1,4 +1,4 @@ -class dog { +struct dog { let mut food: uint; new() { diff --git a/src/test/compile-fail/regions-bounds.rs b/src/test/compile-fail/regions-bounds.rs index 28c3b1c4463..a4faeed6958 100644 --- a/src/test/compile-fail/regions-bounds.rs +++ b/src/test/compile-fail/regions-bounds.rs @@ -4,7 +4,7 @@ enum an_enum = ∫ trait a_trait { fn foo() -> &self/int; } -class a_class { let x:&self/int; new(x:&self/int) { self.x = x; } } +struct a_class { let x:&self/int; new(x:&self/int) { self.x = x; } } fn a_fn1(e: an_enum/&a) -> an_enum/&b { return e; //~ ERROR mismatched types: expected `an_enum/&b` but found `an_enum/&a` diff --git a/src/test/compile-fail/regions-in-rsrcs.rs b/src/test/compile-fail/regions-in-rsrcs.rs index 61ed8d3b6f3..e02683b7372 100644 --- a/src/test/compile-fail/regions-in-rsrcs.rs +++ b/src/test/compile-fail/regions-in-rsrcs.rs @@ -1,16 +1,16 @@ -class yes0 { +struct yes0 { let x: &uint; new(x: &uint) { self.x = x; } drop {} } -class yes1 { +struct yes1 { let x: &self/uint; new(x: &self/uint) { self.x = x; } drop {} } -class yes2 { +struct yes2 { let x: &foo/uint; //~ ERROR named regions other than `self` are not allowed as part of a type declaration new(x: &foo/uint) { self.x = x; } //~ ERROR named regions other than `self` are not allowed as part of a type declaration drop {} diff --git a/src/test/compile-fail/tps-invariant-class.rs b/src/test/compile-fail/tps-invariant-class.rs index a3ecbec5b11..641e0351a47 100644 --- a/src/test/compile-fail/tps-invariant-class.rs +++ b/src/test/compile-fail/tps-invariant-class.rs @@ -1,4 +1,4 @@ -class box_impl { +struct box_impl { let mut f: T; new(f: T) { diff --git a/src/test/compile-fail/unique-pinned-nocopy.rs b/src/test/compile-fail/unique-pinned-nocopy.rs index 75250d9faf6..d729aad5f02 100644 --- a/src/test/compile-fail/unique-pinned-nocopy.rs +++ b/src/test/compile-fail/unique-pinned-nocopy.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class r { +struct r { let b:bool; new(b: bool) { self.b = b; } drop {} diff --git a/src/test/compile-fail/unique-vec-res.rs b/src/test/compile-fail/unique-vec-res.rs index a58ae84459d..e357bf28373 100644 --- a/src/test/compile-fail/unique-vec-res.rs +++ b/src/test/compile-fail/unique-vec-res.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class r { +struct r { let i: @mut int; new(i: @mut int) { self.i = i; } drop { *(self.i) = *(self.i) + 1; } diff --git a/src/test/compile-fail/unsendable-class.rs b/src/test/compile-fail/unsendable-class.rs index bd291b3fded..7a724ff3d5c 100644 --- a/src/test/compile-fail/unsendable-class.rs +++ b/src/test/compile-fail/unsendable-class.rs @@ -1,7 +1,7 @@ // Test that a class with an unsendable field can't be // sent -class foo { +struct foo { let i: int; let j: @~str; new(i:int, j: @~str) { self.i = i; self.j = j; } diff --git a/src/test/compile-fail/vec-res-add.rs b/src/test/compile-fail/vec-res-add.rs index f622665d082..7fbcc67da17 100644 --- a/src/test/compile-fail/vec-res-add.rs +++ b/src/test/compile-fail/vec-res-add.rs @@ -1,6 +1,6 @@ // error-pattern: copying a noncopyable value -class r { +struct r { let i:int; new(i:int) {self.i = i;} drop {} diff --git a/src/test/run-fail/morestack2.rs b/src/test/run-fail/morestack2.rs index 649d00dc1f4..3edc22252b2 100644 --- a/src/test/run-fail/morestack2.rs +++ b/src/test/run-fail/morestack2.rs @@ -20,7 +20,7 @@ fn getbig_call_c_and_fail(i: int) { } } -class and_then_get_big_again { +struct and_then_get_big_again { let x:int; new(x:int) {self.x = x;} drop { diff --git a/src/test/run-fail/morestack3.rs b/src/test/run-fail/morestack3.rs index 962026bfc47..fd537df50eb 100644 --- a/src/test/run-fail/morestack3.rs +++ b/src/test/run-fail/morestack3.rs @@ -13,7 +13,7 @@ fn getbig_and_fail(&&i: int) { } } -class and_then_get_big_again { +struct and_then_get_big_again { let x:int; new(x:int) {self.x = x;} drop { diff --git a/src/test/run-fail/morestack4.rs b/src/test/run-fail/morestack4.rs index dffad4fc6ab..9977e4616d8 100644 --- a/src/test/run-fail/morestack4.rs +++ b/src/test/run-fail/morestack4.rs @@ -13,7 +13,7 @@ fn getbig_and_fail(&&i: int) { } } -class and_then_get_big_again { +struct and_then_get_big_again { let x:int; new(x:int) {self.x = x;} drop {} diff --git a/src/test/run-fail/rt-set-exit-status-fail2.rs b/src/test/run-fail/rt-set-exit-status-fail2.rs index 1cd6784cf42..6a722ecdedf 100644 --- a/src/test/run-fail/rt-set-exit-status-fail2.rs +++ b/src/test/run-fail/rt-set-exit-status-fail2.rs @@ -1,6 +1,6 @@ // error-pattern:whatever -class r { +struct r { let x:int; // Setting the exit status after the runtime has already // failed has no effect and the process exits with the diff --git a/src/test/run-fail/unwind-box-res.rs b/src/test/run-fail/unwind-box-res.rs index 8b771dc7651..90850e44867 100644 --- a/src/test/run-fail/unwind-box-res.rs +++ b/src/test/run-fail/unwind-box-res.rs @@ -4,7 +4,7 @@ fn failfn() { fail; } -class r { +struct r { let v: *int; new(v: *int) { self.v = v; } drop unsafe { diff --git a/src/test/run-pass/binops.rs b/src/test/run-pass/binops.rs index d8909290ae4..9697084fe5c 100644 --- a/src/test/run-pass/binops.rs +++ b/src/test/run-pass/binops.rs @@ -125,7 +125,7 @@ fn test_foreign_fn() { assert test::rust_get_sched_id == test::rust_get_sched_id; } -class p { +struct p { let mut x: int; let mut y: int; new(x: int, y: int) { self.x = x; self.y = y; } diff --git a/src/test/run-pass/boxed-class-type-substitution.rs b/src/test/run-pass/boxed-class-type-substitution.rs index e41eb132525..9bd86183cba 100644 --- a/src/test/run-pass/boxed-class-type-substitution.rs +++ b/src/test/run-pass/boxed-class-type-substitution.rs @@ -7,7 +7,7 @@ fn empty() -> Tree { fail } -class Box { +struct Box { let tree: Tree<@Box>; new() { diff --git a/src/test/run-pass/class-attributes-2.rs b/src/test/run-pass/class-attributes-2.rs index d08ef04eca6..ff1b85125ea 100644 --- a/src/test/run-pass/class-attributes-2.rs +++ b/src/test/run-pass/class-attributes-2.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let name: ~str; #[cat_maker] /** diff --git a/src/test/run-pass/class-cast-to-trait-multiple-types.rs b/src/test/run-pass/class-cast-to-trait-multiple-types.rs index d28c60dd291..735426abf2c 100644 --- a/src/test/run-pass/class-cast-to-trait-multiple-types.rs +++ b/src/test/run-pass/class-cast-to-trait-multiple-types.rs @@ -2,7 +2,7 @@ trait noisy { fn speak() -> int; } -class dog : noisy { +struct dog : noisy { priv { let barks : @mut uint; fn bark() -> int { @@ -26,7 +26,7 @@ fn bark() -> int { fn speak() -> int { self.bark() } } -class cat : noisy { +struct cat : noisy { priv { let meows : @mut uint; fn meow() -> uint { diff --git a/src/test/run-pass/class-cast-to-trait.rs b/src/test/run-pass/class-cast-to-trait.rs index 42e0c9b337b..8f5318f2bf1 100644 --- a/src/test/run-pass/class-cast-to-trait.rs +++ b/src/test/run-pass/class-cast-to-trait.rs @@ -2,7 +2,7 @@ trait noisy { fn speak(); } -class cat : noisy { +struct cat : noisy { priv { let mut meows : uint; fn meow() { diff --git a/src/test/run-pass/class-dtor.rs b/src/test/run-pass/class-dtor.rs index f7d113cdbfc..9c22f23acea 100644 --- a/src/test/run-pass/class-dtor.rs +++ b/src/test/run-pass/class-dtor.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let done : extern fn(uint); let meows : uint; new(done: extern fn(uint)) { diff --git a/src/test/run-pass/class-exports.rs b/src/test/run-pass/class-exports.rs index b9f99f2076d..d5a2c4da1da 100644 --- a/src/test/run-pass/class-exports.rs +++ b/src/test/run-pass/class-exports.rs @@ -5,7 +5,7 @@ mod kitty { export cat; - class cat { + struct cat { let meows: uint; let name: ~str; diff --git a/src/test/run-pass/class-impl-very-parameterized-trait.rs b/src/test/run-pass/class-impl-very-parameterized-trait.rs index b77f645d13b..43c3315577f 100644 --- a/src/test/run-pass/class-impl-very-parameterized-trait.rs +++ b/src/test/run-pass/class-impl-very-parameterized-trait.rs @@ -7,7 +7,7 @@ enum cat_type { tuxedo, tabby, tortoiseshell } // for any int value that's less than the meows field // ok: T should be in scope when resolving the trait ref for map -class cat : map { +struct cat : map { priv { // Yes, you can have negative meows let mut meows : int; diff --git a/src/test/run-pass/class-implement-trait-cross-crate.rs b/src/test/run-pass/class-implement-trait-cross-crate.rs index 7a99558a3c3..2a4c112a3ac 100644 --- a/src/test/run-pass/class-implement-trait-cross-crate.rs +++ b/src/test/run-pass/class-implement-trait-cross-crate.rs @@ -3,7 +3,7 @@ use cci_class_trait; import cci_class_trait::animals::*; -class cat : noisy { +struct cat : noisy { priv { let mut meows : uint; fn meow() { diff --git a/src/test/run-pass/class-implement-traits.rs b/src/test/run-pass/class-implement-traits.rs index 17e0a9902ab..f6cc934eb86 100644 --- a/src/test/run-pass/class-implement-traits.rs +++ b/src/test/run-pass/class-implement-traits.rs @@ -2,7 +2,7 @@ trait noisy { fn speak(); } -class cat : noisy { +struct cat : noisy { priv { let mut meows : uint; fn meow() { diff --git a/src/test/run-pass/class-methods.rs b/src/test/run-pass/class-methods.rs index 8023879ca97..825f9caf395 100644 --- a/src/test/run-pass/class-methods.rs +++ b/src/test/run-pass/class-methods.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/run-pass/class-poly-methods.rs b/src/test/run-pass/class-poly-methods.rs index 5808b0789d1..8eb9c19a963 100644 --- a/src/test/run-pass/class-poly-methods.rs +++ b/src/test/run-pass/class-poly-methods.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut info : ~[U]; let mut meows : uint; diff --git a/src/test/run-pass/class-separate-impl.rs b/src/test/run-pass/class-separate-impl.rs index 097418cd884..af4a37d3c8d 100644 --- a/src/test/run-pass/class-separate-impl.rs +++ b/src/test/run-pass/class-separate-impl.rs @@ -2,7 +2,7 @@ import to_str::*; import to_str::ToStr; -class cat { +struct cat { priv { let mut meows : uint; fn meow() { diff --git a/src/test/run-pass/class-str-field.rs b/src/test/run-pass/class-str-field.rs index e0f7441db85..97ffdea1e59 100644 --- a/src/test/run-pass/class-str-field.rs +++ b/src/test/run-pass/class-str-field.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let name : ~str; diff --git a/src/test/run-pass/class-typarams.rs b/src/test/run-pass/class-typarams.rs index caefb72a6a4..834988eaf97 100644 --- a/src/test/run-pass/class-typarams.rs +++ b/src/test/run-pass/class-typarams.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/run-pass/classes-self-referential.rs b/src/test/run-pass/classes-self-referential.rs index 7add8fec1b1..bc557374878 100644 --- a/src/test/run-pass/classes-self-referential.rs +++ b/src/test/run-pass/classes-self-referential.rs @@ -1,4 +1,4 @@ -class kitten { +struct kitten { let cat: option; new(cat: option) { self.cat = cat; diff --git a/src/test/run-pass/classes-simple-method.rs b/src/test/run-pass/classes-simple-method.rs index 8fcf5b96be2..388ea5f8776 100644 --- a/src/test/run-pass/classes-simple-method.rs +++ b/src/test/run-pass/classes-simple-method.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/run-pass/classes-simple.rs b/src/test/run-pass/classes-simple.rs index ae37fb9a997..ef93e0e3bc6 100644 --- a/src/test/run-pass/classes-simple.rs +++ b/src/test/run-pass/classes-simple.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/run-pass/classes.rs b/src/test/run-pass/classes.rs index dbd590fb08f..624c850f6a8 100644 --- a/src/test/run-pass/classes.rs +++ b/src/test/run-pass/classes.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; fn meow() { diff --git a/src/test/run-pass/conditional-compile.rs b/src/test/run-pass/conditional-compile.rs index da18e9fabfb..4066b054a8a 100644 --- a/src/test/run-pass/conditional-compile.rs +++ b/src/test/run-pass/conditional-compile.rs @@ -25,12 +25,12 @@ enum tg { foo, } enum tg { bar, } #[cfg(bogus)] -class r { +struct r { let i: int; new(i:int) { self.i = i; } } -class r { +struct r { let i: int; new(i:int) { self.i = i; } } diff --git a/src/test/run-pass/init-res-into-things.rs b/src/test/run-pass/init-res-into-things.rs index 0cfdc7118e6..2609080ebc9 100644 --- a/src/test/run-pass/init-res-into-things.rs +++ b/src/test/run-pass/init-res-into-things.rs @@ -1,7 +1,7 @@ // Resources can't be copied, but storing into data structures counts // as a move unless the stored thing is used afterwards. -class r { +struct r { let i: @mut int; new(i: @mut int) { self.i = i; diff --git a/src/test/run-pass/issue-2288.rs b/src/test/run-pass/issue-2288.rs index 559edf37956..52d71e6adcb 100644 --- a/src/test/run-pass/issue-2288.rs +++ b/src/test/run-pass/issue-2288.rs @@ -1,7 +1,7 @@ trait clam { fn chowder(y: A); } -class foo : clam { +struct foo : clam { let x: A; new(b: A) { self.x = b; } fn chowder(y: A) { diff --git a/src/test/run-pass/issue-2311-2.rs b/src/test/run-pass/issue-2311-2.rs index 328b6b3b4c3..4c8e99ab46f 100644 --- a/src/test/run-pass/issue-2311-2.rs +++ b/src/test/run-pass/issue-2311-2.rs @@ -1,5 +1,5 @@ trait clam { } -class foo { +struct foo { let x: A; new(b: A) { self.x = b; } fn bar>(c: C) -> B { diff --git a/src/test/run-pass/issue-2445-b.rs b/src/test/run-pass/issue-2445-b.rs index b004eba99c4..b2f14925481 100644 --- a/src/test/run-pass/issue-2445-b.rs +++ b/src/test/run-pass/issue-2445-b.rs @@ -1,4 +1,4 @@ -class c1 { +struct c1 { let x: T; new(x: T) {self.x = x;} diff --git a/src/test/run-pass/issue-2445.rs b/src/test/run-pass/issue-2445.rs index 461dbfadbac..5dea6ff2269 100644 --- a/src/test/run-pass/issue-2445.rs +++ b/src/test/run-pass/issue-2445.rs @@ -1,6 +1,6 @@ import dvec::dvec; -class c1 { +struct c1 { let x: T; new(x: T) {self.x = x;} diff --git a/src/test/run-pass/issue-2487-a.rs b/src/test/run-pass/issue-2487-a.rs index 2cd17923bf0..0cff6b57c2a 100644 --- a/src/test/run-pass/issue-2487-a.rs +++ b/src/test/run-pass/issue-2487-a.rs @@ -1,4 +1,4 @@ -class socket { +struct socket { let sock: int; new() { self.sock = 1; } diff --git a/src/test/run-pass/issue-2502.rs b/src/test/run-pass/issue-2502.rs index 557bfd1383d..b554fef4564 100644 --- a/src/test/run-pass/issue-2502.rs +++ b/src/test/run-pass/issue-2502.rs @@ -1,4 +1,4 @@ -class font { +struct font { let fontbuf: &self/~[u8]; new(fontbuf: &self/~[u8]) { diff --git a/src/test/run-pass/issue-2550.rs b/src/test/run-pass/issue-2550.rs index 6e8a43dc2cf..70af9ca03dc 100644 --- a/src/test/run-pass/issue-2550.rs +++ b/src/test/run-pass/issue-2550.rs @@ -1,4 +1,4 @@ -class C { +struct C { let x: uint; new(x: uint) { diff --git a/src/test/run-pass/issue-2633.rs b/src/test/run-pass/issue-2633.rs index d08a863529c..0c49fc57745 100644 --- a/src/test/run-pass/issue-2633.rs +++ b/src/test/run-pass/issue-2633.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { let mut meow: fn@(); new() { self.meow = fn@() { error!{"meow"}; };} } diff --git a/src/test/run-pass/issue-2708.rs b/src/test/run-pass/issue-2708.rs index 8fcc613b09b..18d9338739c 100644 --- a/src/test/run-pass/issue-2708.rs +++ b/src/test/run-pass/issue-2708.rs @@ -1,4 +1,4 @@ -class Font { +struct Font { let fontbuf: uint; let cairo_font: uint; let font_dtor: uint; diff --git a/src/test/run-pass/issue-2718.rs b/src/test/run-pass/issue-2718.rs index a55024097a0..cc3e18bff84 100644 --- a/src/test/run-pass/issue-2718.rs +++ b/src/test/run-pass/issue-2718.rs @@ -133,7 +133,7 @@ fn receiver_terminate(p: *packet) { } } - class send_packet { + struct send_packet { let mut p: option<*packet>; new(p: *packet) { self.p = some(p); } drop { @@ -150,7 +150,7 @@ fn unwrap() -> *packet { } } - class recv_packet { + struct recv_packet { let mut p: option<*packet>; new(p: *packet) { self.p = some(p); } drop { diff --git a/src/test/run-pass/issue-2735-2.rs b/src/test/run-pass/issue-2735-2.rs index aa9537c7259..eaec723de29 100644 --- a/src/test/run-pass/issue-2735-2.rs +++ b/src/test/run-pass/issue-2735-2.rs @@ -1,5 +1,5 @@ // This test should behave exactly like issue-2735-3 -class defer { +struct defer { let b: &mut bool; new(b: &mut bool) { self.b = b; diff --git a/src/test/run-pass/issue-2735-3.rs b/src/test/run-pass/issue-2735-3.rs index 876158d08b2..b41b65cf6df 100644 --- a/src/test/run-pass/issue-2735-3.rs +++ b/src/test/run-pass/issue-2735-3.rs @@ -1,5 +1,5 @@ // This test should behave exactly like issue-2735-2 -class defer { +struct defer { let b: &mut bool; new(b: &mut bool) { self.b = b; diff --git a/src/test/run-pass/issue-2748-a.rs b/src/test/run-pass/issue-2748-a.rs index 2d8dd45b043..fb7e10a2b17 100644 --- a/src/test/run-pass/issue-2748-a.rs +++ b/src/test/run-pass/issue-2748-a.rs @@ -1,4 +1,4 @@ -class CMap { +struct CMap { let buf: &[u8]; new(buf: &self/[u8]) { diff --git a/src/test/run-pass/issue-979.rs b/src/test/run-pass/issue-979.rs index ef1c46eb605..9c2f4940fa5 100644 --- a/src/test/run-pass/issue-979.rs +++ b/src/test/run-pass/issue-979.rs @@ -1,4 +1,4 @@ -class r { +struct r { let b: @mut int; new(b: @mut int) { self.b = b; diff --git a/src/test/run-pass/nested-class.rs b/src/test/run-pass/nested-class.rs index 619f3711a2e..cfc3064b552 100644 --- a/src/test/run-pass/nested-class.rs +++ b/src/test/run-pass/nested-class.rs @@ -1,6 +1,6 @@ fn main() { - class b { + struct b { let i: int; fn do_stuff() -> int { return 37; } new(i:int) { self.i = i; } diff --git a/src/test/run-pass/private-class-field.rs b/src/test/run-pass/private-class-field.rs index a6baea1ffa7..a988ad46737 100644 --- a/src/test/run-pass/private-class-field.rs +++ b/src/test/run-pass/private-class-field.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; } diff --git a/src/test/run-pass/private-method.rs b/src/test/run-pass/private-method.rs index a6c1929dc1f..569359a9db1 100644 --- a/src/test/run-pass/private-method.rs +++ b/src/test/run-pass/private-method.rs @@ -1,4 +1,4 @@ -class cat { +struct cat { priv { let mut meows : uint; fn nap() { for uint::range(1u, 10u) |_i| { }} diff --git a/src/test/run-pass/resource-assign-is-not-copy.rs b/src/test/run-pass/resource-assign-is-not-copy.rs index 80e3209dce3..08fc743af80 100644 --- a/src/test/run-pass/resource-assign-is-not-copy.rs +++ b/src/test/run-pass/resource-assign-is-not-copy.rs @@ -1,4 +1,4 @@ -class r { +struct r { let i: @mut int; new(i: @mut int) { self.i = i; diff --git a/src/test/run-pass/resource-cycle.rs b/src/test/run-pass/resource-cycle.rs index 2adcae2c5c3..8e8ede16d8c 100644 --- a/src/test/run-pass/resource-cycle.rs +++ b/src/test/run-pass/resource-cycle.rs @@ -1,6 +1,6 @@ // Don't leak the unique pointers -class r { +struct r { let v: *int; new(v: *int) unsafe { self.v = v; diff --git a/src/test/run-pass/resource-cycle2.rs b/src/test/run-pass/resource-cycle2.rs index 4f0f87908cf..69bed27f913 100644 --- a/src/test/run-pass/resource-cycle2.rs +++ b/src/test/run-pass/resource-cycle2.rs @@ -6,7 +6,7 @@ c: *int }; -class r { +struct r { let v: u; new(v: u) { self.v = v; } drop unsafe { diff --git a/src/test/run-pass/resource-cycle3.rs b/src/test/run-pass/resource-cycle3.rs index f67e0b18ec2..f0b47024f40 100644 --- a/src/test/run-pass/resource-cycle3.rs +++ b/src/test/run-pass/resource-cycle3.rs @@ -8,7 +8,7 @@ c: *int }; -class r { +struct r { let v: u; let w: int; let x: *int; diff --git a/src/test/run-pass/resource-destruct.rs b/src/test/run-pass/resource-destruct.rs index 4cd713c4e3a..f6e32650b8e 100644 --- a/src/test/run-pass/resource-destruct.rs +++ b/src/test/run-pass/resource-destruct.rs @@ -1,4 +1,4 @@ -class shrinky_pointer { +struct shrinky_pointer { let i: @@mut int; fn look_at() -> int { return **(self.i); } new(i: @@mut int) { self.i = i; } diff --git a/src/test/run-pass/resource-generic.rs b/src/test/run-pass/resource-generic.rs index 21fe5461789..618848e1edd 100644 --- a/src/test/run-pass/resource-generic.rs +++ b/src/test/run-pass/resource-generic.rs @@ -1,4 +1,4 @@ -class finish { +struct finish { let arg: {val: T, fin: extern fn(T)}; new(arg: {val: T, fin: extern fn(T)}) { self.arg = arg; diff --git a/src/test/run-pass/resource-in-struct.rs b/src/test/run-pass/resource-in-struct.rs index 8582bdeddfa..2fbe658fd6c 100644 --- a/src/test/run-pass/resource-in-struct.rs +++ b/src/test/run-pass/resource-in-struct.rs @@ -3,7 +3,7 @@ type closable = @mut bool; -class close_res { +struct close_res { let i: closable; new(i: closable) { self.i = i; } diff --git a/src/test/run-pass/send-resource.rs b/src/test/run-pass/send-resource.rs index 9008ccf726a..bb3957e2707 100644 --- a/src/test/run-pass/send-resource.rs +++ b/src/test/run-pass/send-resource.rs @@ -1,7 +1,7 @@ import task::*; import comm::*; -class test { +struct test { let f: int; new(f: int) { self.f = f; } drop {} diff --git a/src/test/run-pass/sendable-class.rs b/src/test/run-pass/sendable-class.rs index b421f8cdf2e..9d26e3d26d8 100644 --- a/src/test/run-pass/sendable-class.rs +++ b/src/test/run-pass/sendable-class.rs @@ -1,6 +1,6 @@ // Test that a class with only sendable fields can be sent -class foo { +struct foo { let i: int; let j: char; new(i:int, j: char) { self.i = i; self.j = j; } diff --git a/src/test/run-pass/task-killjoin-rsrc.rs b/src/test/run-pass/task-killjoin-rsrc.rs index 4c061f152f4..85f842a49a9 100644 --- a/src/test/run-pass/task-killjoin-rsrc.rs +++ b/src/test/run-pass/task-killjoin-rsrc.rs @@ -6,7 +6,7 @@ use std; import task; -class notify { +struct notify { let ch: comm::Chan; let v: @mut bool; new(ch: comm::Chan, v: @mut bool) { self.ch = ch; self.v = v; } drop { diff --git a/src/test/run-pass/type-param-constraints.rs b/src/test/run-pass/type-param-constraints.rs index 84b6eb89653..e049c0ecf38 100644 --- a/src/test/run-pass/type-param-constraints.rs +++ b/src/test/run-pass/type-param-constraints.rs @@ -2,7 +2,7 @@ fn p_foo(pinned: T) { } fn s_foo(shared: T) { } fn u_foo(unique: T) { } -class r { +struct r { let i: int; new(i:int) { self.i = i; } drop {} diff --git a/src/test/run-pass/unique-pinned-nocopy-2.rs b/src/test/run-pass/unique-pinned-nocopy-2.rs index 1bde7b3e60e..db550ca608e 100644 --- a/src/test/run-pass/unique-pinned-nocopy-2.rs +++ b/src/test/run-pass/unique-pinned-nocopy-2.rs @@ -1,4 +1,4 @@ -class r { +struct r { let i: @mut int; new(i: @mut int) { self.i = i; } drop { *(self.i) = *(self.i) + 1; } diff --git a/src/test/run-pass/unwind-resource.rs b/src/test/run-pass/unwind-resource.rs index 39b619c5905..a358f082225 100644 --- a/src/test/run-pass/unwind-resource.rs +++ b/src/test/run-pass/unwind-resource.rs @@ -3,7 +3,7 @@ import task; import comm; -class complainer { +struct complainer { let c: comm::Chan; new(c: comm::Chan) { error!{"Hello!"}; diff --git a/src/test/run-pass/unwind-resource2.rs b/src/test/run-pass/unwind-resource2.rs index 79847cafaf4..4b3ae5b76b2 100644 --- a/src/test/run-pass/unwind-resource2.rs +++ b/src/test/run-pass/unwind-resource2.rs @@ -3,7 +3,7 @@ import task; import comm; -class complainer { +struct complainer { let c: @int; new(c: @int) { self.c = c; } drop {} diff --git a/src/test/run-pass/vec-slice-drop.rs b/src/test/run-pass/vec-slice-drop.rs index 2c5225fa0f9..771fb946211 100644 --- a/src/test/run-pass/vec-slice-drop.rs +++ b/src/test/run-pass/vec-slice-drop.rs @@ -1,5 +1,5 @@ // Make sure that destructors get run on slice literals -class foo { +struct foo { let x: @mut int; new(x: @mut int) { self.x = x; } drop { *self.x += 1; }