feat: replace new keyword with this constructor syntax and ClassName.new() calls across core library and docs

Replace all uses of the `new` reserved word with explicit `this new()` constructor definitions and `ClassName.new()` instantiation calls in builtin/core.wren. Update all documentation files (classes.markdown, fiber.markdown, fn.markdown, sequence.markdown, error-handling.markdown, expressions.markdown, fibers.markdown, functions.markdown) to reflect the new constructor syntax, removing `new` keyword examples and replacing them with `ClassName.new()` patterns and `this new()` definitions.
This commit is contained in:
Bob Nystrom
2015-07-10 16:18:22 +00:00
parent 121d39cb42
commit e19ff59cce
221 changed files with 864 additions and 654 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
import "cthulu" for Cthulu
class Lovecraft {
say { (new Cthulu).message }
say() { Cthulu.new().message }
}
IO.print((new Lovecraft).say)
IO.print(Lovecraft.new().say())
+3 -6
View File
@@ -7,7 +7,7 @@
// Class definition with a toplevel name.
class SyntaxExample {
// Constructor
new {
this new() {
// Top-level name `IO`
IO.print("I am a constructor!")
@@ -26,7 +26,7 @@ class SyntaxExample {
}
// Constructor with arguments
new(a, b) {
this constructor(a, b) {
print(a, b)
field = a
}
@@ -82,14 +82,11 @@ class SyntaxExample {
// `class`, `is`
class ReservedWords is SyntaxExample {
// `new`
new {
reserved {
// `super`, `true`, `false`
super(true, false)
// `this`
this.foo
// `new`
new SyntaxExample
}
foo {