blob: 335cfac50bd9fa23663b188a5fdf5e7ec6db1b93 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Dart test program for testing params.
// @dart = 2.9
// Convenience values.
var c = new C();
var x = 42;
var y = 42;
var z = 42;
// Trailing comma in parameter lists.
// Typedefs.
typedef fx(x, ); // //# none: ok
typedef fy([y,]); // //# none: continued
typedef fxy(x, [y, ]); // //# none: continued
typedef fz({z,}); // //# none: continued
typedef fxz(x, {z, }); // //# none: continued
// As arguments type.
argfx(void f(x, )) {} // //# none: continued
argfy(void f([y, ])) {} // //# none: continued
argfxy(void f(x, [y, ])) {} // //# none: continued
argfz(void f({z, })) {} // //# none: continued
argfxz(void f(x, {z, })) {} // //# none: continued
// Top level functions
void topx(x,) {} // //# none: continued
void topy([y, ]) {} // //# none: continued
void topxy(x, [y, ]) {} // //# none: continued
void topz({z, }) {} // //# none: continued
void topxz(x, {z, }) {} // //# none: continued
void set topsetx(x, ) {} // //# none: continued
// After specific parameter formats.
void afterDefaultValueY([int y = 42, ]) {} // //# none: continued
void afterDefaultValueZ({int z : 42, }) {} // //# none: continued
void afterFunsigX(void f(),) {} // //# none: continued
void afterFunsigY([void f(),]) {} // //# none: continued
void afterFunsigZ({void f(),}) {} // //# none: continued
void afterFunsigDefaultValueY([void f() = topy,]) {} // //# none: continued
void afterFunsigDefaultValueZ({void f() : topz,}) {} // //# none: continued
class C {
C();
// Constructors.
C.x(x, ); // //# none: continued
C.y([y, ]); // //# none: continued
C.xy(x, [y, ]); // //# none: continued
C.z({z, }); // //# none: continued
C.xz(x, {z, }); // //# none: continued
// Static members
static void staticx(x,) {} // //# none: continued
static void staticy([y, ]) {} // //# none: continued
static void staticxy(x, [y, ]) {} // //# none: continued
static void staticz({z, }) {} // //# none: continued
static void staticxz(x, {z, }) {} // //# none: continued
static void set staticsetx(x, ) {} // //# none: continued
// Instance members
void instancex(x,) {} // //# none: continued
void instancey([y, ]) {} // //# none: continued
void instancexy(x, [y, ]) {} // //# none: continued
void instancez({z, }) {} // //# none: continued
void instancexz(x, {z, }) {} // //# none: continued
void set instancesetx(x, ) {} // //# none: continued
operator +(x, ) => this; // //# none: continued
operator []=(x, y, ) {} // //# none: continued
}
main() {
testCalls(); // //# none: continued
// Make sure the cases are checked.
testBadCalls();
}
void testCalls() {
// Check that all functions can be called normally
topx(x); // //# none: continued
topy(y); // //# none: continued
topxy(x, y); // //# none: continued
topz(); // //# none: continued
topz(z: z); // //# none: continued
topxz(x); // //# none: continued
topxz(x, z: z); // //# none: continued
topsetx = x; // //# none: continued
afterDefaultValueY(); // //# none: continued
afterDefaultValueY(y); // //# none: continued
afterDefaultValueZ(); // //# none: continued
afterDefaultValueZ(z: z); // //# none: continued
new C.x(x); // //# none: continued
new C.xy(x); // //# none: continued
new C.xy(x, y); // //# none: continued
new C.y(y); // //# none: continued
new C.xz(x); // //# none: continued
new C.xz(x, z: z); // //# none: continued
new C.z(z: z); // //# none: continued
C.staticx(x); // //# none: continued
C.staticy(y); // //# none: continued
C.staticxy(x); // //# none: continued
C.staticxy(x, y); // //# none: continued
C.staticz(); // //# none: continued
C.staticz(z: z); // //# none: continued
C.staticxz(x); // //# none: continued
C.staticxz(x, z: z); // //# none: continued
C.staticsetx = x; // //# none: continued
c.instancex(x); // //# none: continued
c.instancey(); // //# none: continued
c.instancey(y); // //# none: continued
c.instancexy(x); // //# none: continued
c.instancexy(x, y); // //# none: continued
c.instancez(); // //# none: continued
c.instancez(z: z); // //# none: continued
c.instancexz(x); // //# none: continued
c.instancexz(x, z: z); // //# none: continued
c.instancesetx = x; // //# none: continued
c + x; // //# none: continued
c[x] = y; // //# none: continued
// Call with extra comma (not possible for setters and operators).
topx(x, ); // //# none: continued
topy(y, ); // //# none: continued
topxy(x, y, ); // //# none: continued
topxy(x, ); // //# none: continued
topz(z: z, ); // //# none: continued
topxz(x, ); // //# none: continued
topxz(x, z: z, ); // //# none: continued
new C.x(x, ); // //# none: continued
new C.xy(x, y, ); // //# none: continued
new C.xy(x, ); // //# none: continued
new C.y(y, ); // //# none: continued
new C.xz(x, ); // //# none: continued
new C.xz(x, z: z, ); // //# none: continued
new C.z(z: z, ); // //# none: continued
C.staticx(x, ); // //# none: continued
C.staticy(y, ); // //# none: continued
C.staticxy(x, y, ); // //# none: continued
C.staticxy(x, ); // //# none: continued
C.staticz(z: z, ); // //# none: continued
C.staticxz(x, ); // //# none: continued
C.staticxz(x, z: z, ); // //# none: continued
c.instancex(x, ); // //# none: continued
c.instancey(y, ); // //# none: continued
c.instancexy(x, y, ); // //# none: continued
c.instancexy(x, ); // //# none: continued
c.instancez(z: z, ); // //# none: continued
c.instancexz(x, ); // //# none: continued
c.instancexz(x, z: z, ); // //# none: continued
// Typedefs work as expected.
if (topx is! fx) throw "Bad type: $fx"; // //# none: continued
if (topy is! fy) throw "Bad type: $fy"; // //# none: continued
if (topxy is! fxy) throw "Bad type: $fxy"; // //# none: continued
if (topz is! fz) throw "Bad type: $fz"; // //# none: continued
if (topxz is! fxz) throw "Bad type: $fxz"; // //# none: continued
// Parameter types work (checked mode only test).
argfx(topx); // //# none: continued
argfy(topy); // //# none: continued
argfxy(topxy); // //# none: continued
argfz(topz); // //# none: continued
argfxz(topxz); // //# none: continued
}
// Invalid syntax. This was invalid syntax before the addition of trailing
// commas too, and should stay that way.
void topBadEmpty(,) {} // //# 1: syntax error
void topBadStart(, a) {} // //# 2: syntax error
void topBadEnd(a,,) {} // //# 3: syntax error
void topBadMiddle(a,, b) {} // //# 4: syntax error
void topBadPosEmpty([]) {} // //# 5: syntax error
void topBadPosEmpty(,[]) {} // //# 6: syntax error
void topBadPosEmpty([,]) {} // //# 7: syntax error
void topBadPosEmpty([],) {} // //# 8: syntax error
void topBadPosStart(,[a]) {} // //# 9: syntax error
void topBadPosStart([, a]) {} // //# 10: syntax error
void topBadPosEnd([a,,]) {} // //# 11: syntax error
void topBadPosStart([a],) {} // //# 12: syntax error
void topBadPosMiddle([a,, b]) {} // //# 13: syntax error
void topBadNamEmpty({}) {} // //# 14: syntax error
void topBadNamEmpty(,{}) {} // //# 15: syntax error
void topBadNamEmpty({,}) {} // //# 16: syntax error
void topBadNamEmpty({},) {} // //# 17: syntax error
void topBadNamStart(,{a}) {} // //# 18: syntax error
void topBadNamStart({, a}) {} // //# 19: syntax error
void topBadNamEnd({a,,}) {} // //# 20: syntax error
void topBadNamStart({a},) {} // //# 21: syntax error
void topBadNamMiddle({a,, b}) {} // //# 22: syntax error
void set topSetBadEmpty(,) {} // //# 23: syntax error
void set topSetBadStart(, a) {} // //# 24: syntax error
void set topSetBadEnd(a,,) {} // //# 25: syntax error
void set topSetBadMiddle(a,, b) {} // //# 26: syntax error
class Bad {
Bad() {}
Bad.empty(,) {} // //# 27: syntax error
Bad.start(, a) {} // //# 28: syntax error
Bad.end(a,,) {} // //# 29: syntax error
Bad.middle(a,, b) {} // //# 30: syntax error
Bad.posEmpty([]) {} // //# 31: syntax error
Bad.posEmpty(,[]) {} // //# 32: syntax error
Bad.posEmpty([,]) {} // //# 33: syntax error
Bad.posEmpty([],) {} // //# 34: syntax error
Bad.posStart(,[a]) {} // //# 35: syntax error
Bad.posStart([, a]) {} // //# 36: syntax error
Bad.posEnd([a,,]) {} // //# 37: syntax error
Bad.posStart([a],) {} // //# 38: syntax error
Bad.PosMiddle([a,, b]) {} // //# 39: syntax error
Bad.namEmpty({}) {} // //# 40: syntax error
Bad.namEmpty(,{}) {} // //# 41: syntax error
Bad.namEmpty({,}) {} // //# 42: syntax error
Bad.namEmpty({},) {} // //# 43: syntax error
Bad.namStart(,{a}) {} // //# 44: syntax error
Bad.namStart({, a}) {} // //# 45: syntax error
Bad.namEnd({a,,}) {} // //# 46: syntax error
Bad.namStart({a},) {} // //# 47: syntax error
Bad.namMiddle({a,, b}) {} // //# 48: syntax error
static void staticBadEmpty(,) {} // //# 49: syntax error
static void staticBadStart(, a) {} // //# 50: syntax error
static void staticBadEnd(a,,) {} // //# 51: syntax error
static void staticBadMiddle(a,, b) {} // //# 52: syntax error
static void staticBadPosEmpty([]) {} // //# 53: syntax error
static void staticBadPosEmpty(,[]) {} // //# 54: syntax error
static void staticBadPosEmpty([,]) {} // //# 55: syntax error
static void staticBadPosEmpty([],) {} // //# 56: syntax error
static void staticBadPosStart(,[a]) {} // //# 57: syntax error
static void staticBadPosStart([, a]) {} // //# 58: syntax error
static void staticBadPosEnd([a,,]) {} // //# 59: syntax error
static void staticBadPosStart([a],) {} // //# 60: syntax error
static void staticBadPosMiddle([a,, b]) {} // //# 61: syntax error
static void staticBadNamEmpty({}) {} // //# 62: syntax error
static void staticBadNamEmpty(,{}) {} // //# 63: syntax error
static void staticBadNamEmpty({,}) {} // //# 64: syntax error
static void staticBadNamEmpty({},) {} // //# 65: syntax error
static void staticBadNamStart(,{a}) {} // //# 66: syntax error
static void staticBadNamStart({, a}) {} // //# 67: syntax error
static void staticBadNamEnd({a,,}) {} // //# 68: syntax error
static void staticBadNamStart({a},) {} // //# 69: syntax error
static void staticBadNamMiddle({a,, b}) {} // //# 70: syntax error
static void set staticSetBadEmpty(,) {} // //# 71: syntax error
static void set staticSetBadStart(, a) {} // //# 72: syntax error
static void set staticSetBadEnd(a,,) {} // //# 73: syntax error
static void set staticSetBadMiddle(a,, b) {} // //# 74: syntax error
void instanceBadEmpty(,) {} // //# 75: syntax error
void instanceBadStart(, a) {} // //# 76: syntax error
void instanceBadEnd(a,,) {} // //# 77: syntax error
void instanceBadMiddle(a,, b) {} // //# 78: syntax error
void instanceBadPosEmpty([]) {} // //# 79: syntax error
void instanceBadPosEmpty(,[]) {} // //# 80: syntax error
void instanceBadPosEmpty([,]) {} // //# 81: syntax error
void instanceBadPosEmpty([],) {} // //# 82: syntax error
void instanceBadPosStart(,[a]) {} // //# 83: syntax error
void instanceBadPosStart([, a]) {} // //# 84: syntax error
void instanceBadPosEnd([a,,]) {} // //# 85: syntax error
void instanceBadPosStart([a],) {} // //# 86: syntax error
void instanceBadPosMiddle([a,, b]) {} // //# 87: syntax error
void instanceBadNamEmpty({}) {} // //# 88: syntax error
void instanceBadNamEmpty(,{}) {} // //# 89: syntax error
void instanceBadNamEmpty({,}) {} // //# 90: syntax error
void instanceBadNamEmpty({},) {} // //# 91: syntax error
void instanceBadNamStart(,{a}) {} // //# 92: syntax error
void instanceBadNamStart({, a}) {} // //# 93: syntax error
void instanceBadNamEnd({a,,}) {} // //# 94: syntax error
void instanceBadNamStart({a},) {} // //# 95: syntax error
void instanceBadNamMiddle({a,, b}) {} // //# 96: syntax error
void set instanceSetBadEmpty(,) {} // //# 97: syntax error
void set instanceSetBadStart(, a) {} // //# 98: syntax error
void set instanceSetBadEnd(a,,) {} // //# 99: syntax error
void set instanceSetBadMiddle(a,, b) {} // //# 100: syntax error
void operator *(,); // //# 101: syntax error
void operator *(, a); // //# 102: syntax error
void operator *(a,,); // //# 103: syntax error
void operator []=(, a); // //# 104: syntax error
void operator []=(a,,); // //# 105: syntax error
void operator []=(a,, b); // //# 106: syntax error
void operator []=(a,); // //# 107: compile-time error
method() {
// Local methods.
void localBadEmpty(,) {} // //# 108: syntax error
void localBadStart(, a) {} // //# 109: syntax error
void localBadEnd(a,,) {} // //# 110: syntax error
void localBadMiddle(a,, b) {} // //# 111: syntax error
void localBadPosEmpty([]) {} // //# 112: syntax error
void localBadPosEmpty(,[]) {} // //# 113: syntax error
void localBadPosEmpty([,]) {} // //# 114: syntax error
void localBadPosEmpty([],) {} // //# 115: syntax error
void localBadPosStart(,[a]) {} // //# 116: syntax error
void localBadPosStart([, a]) {} // //# 117: syntax error
void localBadPosEnd([a,,]) {} // //# 118: syntax error
void localBadPosStart([a],) {} // //# 119: syntax error
void localBadPosMiddle([a,, b]) {} // //# 120: syntax error
void localBadNamEmpty({}) {} // //# 121: syntax error
void localBadNamEmpty(,{}) {} // //# 122: syntax error
void localBadNamEmpty({,}) {} // //# 123: syntax error
void localBadNamEmpty({},) {} // //# 124: syntax error
void localBadNamStart(,{a}) {} // //# 125: syntax error
void localBadNamStart({, a}) {} // //# 126: syntax error
void localBadNamEnd({a,,}) {} // //# 127: syntax error
void localBadNamStart({a},) {} // //# 128: syntax error
void localBadNamMiddle({a,, b}) {} // //# 129: syntax error
// invalid calls.
topx(,); // //# 130: syntax error
topy(,); // //# 131: syntax error
topz(,); // //# 132: syntax error
topx(, x); // //# 133: syntax error
topz(, z:z); // //# 134: syntax error
topxy(x,, y); // //# 135: syntax error
topxz(x,, z:z); // //# 136: syntax error
topx(x,,); // //# 137: syntax error
topz(z:z,,); // //# 138: syntax error
new C.x(,); // //# 139: syntax error
new C.y(,); // //# 140: syntax error
new C.z(,); // //# 141: syntax error
new C.x(, x); // //# 142: syntax error
new C.z(, z:z); // //# 143: syntax error
new C.xy(x,, y); // //# 144: syntax error
new C.xz(x,, z:z); // //# 145: syntax error
new C.x(x,,); // //# 146: syntax error
new C.z(z:z,,); // //# 147: syntax error
C.staticx(,); // //# 148: syntax error
C.staticy(,); // //# 149: syntax error
C.staticz(,); // //# 150: syntax error
C.staticx(, x); // //# 151: syntax error
C.staticz(, z:z); // //# 152: syntax error
C.staticxy(x,, y); // //# 153: syntax error
C.staticxz(x,, z:z); // //# 154: syntax error
C.staticx(x,,); // //# 155: syntax error
C.staticz(z:z,,); // //# 156: syntax error
c.instancex(,); // //# 157: syntax error
c.instancey(,); // //# 158: syntax error
c.instancez(,); // //# 159: syntax error
c.instancex(, x); // //# 160: syntax error
c.instancez(, z:z); // //# 161: syntax error
c.instancexy(x,, y); // //# 162: syntax error
c.instancexz(x,, z:z); // //# 163: syntax error
c.instancex(x,,); // //# 164: syntax error
c.instancez(z:z,,); // //# 165: syntax error
c[x,] = y; // //# 166: syntax error
}
// As parameters:
void f(void topBadEmpty(,)) {} // //# 167: syntax error
void f(void topBadStart(, a)) {} // //# 168: syntax error
void f(void topBadEnd(a,,)) {} // //# 169: syntax error
void f(void topBadMiddle(a,, b)) {} // //# 170: syntax error
void f(void topBadPosEmpty([])) {} // //# 171: syntax error
void f(void topBadPosEmpty(,[])) {} // //# 172: syntax error
void f(void topBadPosEmpty([,])) {} // //# 173: syntax error
void f(void topBadPosEmpty([],)) {} // //# 174: syntax error
void f(void topBadPosStart(,[a])) {} // //# 175: syntax error
void f(void topBadPosStart([, a])) {} // //# 176: syntax error
void f(void topBadPosEnd([a,,])) {} // //# 177: syntax error
void f(void topBadPosStart([a],)) {} // //# 178: syntax error
void f(void topBadPosMiddle([a,, b])) {} // //# 179: syntax error
void f(void topBadNamEmpty({})) {} // //# 180: syntax error
void f(void topBadNamEmpty(,{})) {} // //# 181: syntax error
void f(void topBadNamEmpty({,})) {} // //# 182: syntax error
void f(void topBadNamEmpty({},)) {} // //# 183: syntax error
void f(void topBadNamStart(,{a})) {} // //# 184: syntax error
void f(void topBadNamStart({, a})) {} // //# 185: syntax error
void f(void topBadNamEnd({a,,})) {} // //# 186: syntax error
void f(void topBadNamStart({a},)) {} // //# 187: syntax error
void f(void topBadNamMiddle({a,, b})) {} // //# 188: syntax error
}
// As typedefs
typedef void BadEmpty(,); // //# 189: syntax error
typedef void BadStart(, a); // //# 190: syntax error
typedef void BadEnd(a,,); // //# 191: syntax error
typedef void BadMiddle(a,, b); // //# 192: syntax error
typedef void BadPosEmpty([]); // //# 193: syntax error
typedef void BadPosEmpty(,[]); // //# 194: syntax error
typedef void BadPosEmpty([,]); // //# 195: syntax error
typedef void BadPosEmpty([],); // //# 196: syntax error
typedef void BadPosStart(,[a]); // //# 197: syntax error
typedef void BadPosStart([, a]); // //# 198: syntax error
typedef void BadPosEnd([a,,]); // //# 199: syntax error
typedef void BadPosStart([a],); // //# 200: syntax error
typedef void BadPosMiddle([a,, b]); // //# 201: syntax error
typedef void BadNamEmpty({}); // //# 202: syntax error
typedef void BadNamEmpty(,{}); // //# 203: syntax error
typedef void BadNamEmpty({,}); // //# 204: syntax error
typedef void BadNamEmpty({},); // //# 205: syntax error
typedef void BadNamStart(,{a}); // //# 206: syntax error
typedef void BadNamStart({, a}); // //# 207: syntax error
typedef void BadNamEnd({a,,}); // //# 208: syntax error
typedef void BadNamStart({a},); // //# 209: syntax error
typedef void BadNamMiddle({a,, b}); // //# 210: syntax error
void testBadCalls() {
topBadEmpty(); // //# 1: continued
topBadStart(); // //# 2: continued
topBadEnd(); // //# 3: continued
topBadMiddle(); // //# 4: continued
topBadPosEmpty(); // //# 5: continued
topBadPosEmpty(); // //# 6: continued
topBadPosEmpty(); // //# 7: continued
topBadPosEmpty(); // //# 8: continued
topBadPosStart(); // //# 9: continued
topBadPosStart(); // //# 10: continued
topBadPosEnd(); // //# 11: continued
topBadPosStart(); // //# 12: continued
topBadPosMiddle(); // //# 13: continued
topBadNamEmpty(); // //# 14: continued
topBadNamEmpty(); // //# 15: continued
topBadNamEmpty(); // //# 16: continued
topBadNamEmpty(); // //# 17: continued
topBadNamStart(); // //# 18: continued
topBadNamStart(); // //# 19: continued
topBadNamEnd(); // //# 20: continued
topBadNamStart(); // //# 21: continued
topBadNamMiddle(); // //# 22: continued
topSetBadEmpty = 1; // //# 23: continued
topSetBadStart = 1; // //# 24: continued
topSetBadEnd = 1; // //# 25: continued
topSetBadMiddle = 1; // //# 26: continued
new Bad.empty(); // //# 27: continued
new Bad.start(); // //# 28: continued
new Bad.end(); // //# 29: continued
new Bad.middle(); // //# 30: continued
new Bad.posEmpty(); // //# 31: continued
new Bad.posEmpty(); // //# 32: continued
new Bad.posEmpty(); // //# 33: continued
new Bad.posEmpty(); // //# 34: continued
new Bad.posStart(); // //# 35: continued
new Bad.posStart(); // //# 36: continued
new Bad.posEnd(); // //# 37: continued
new Bad.posStart(); // //# 38: continued
new Bad.PosMiddle(); // //# 39: continued
new Bad.namEmpty(); // //# 40: continued
new Bad.namEmpty(); // //# 41: continued
new Bad.namEmpty(); // //# 42: continued
new Bad.namEmpty(); // //# 43: continued
new Bad.namStart(); // //# 44: continued
new Bad.namStart(); // //# 45: continued
new Bad.namEnd(); // //# 46: continued
new Bad.namStart(); // //# 47: continued
new Bad.namMiddle(); // //# 48: continued
Bad.staticBadEmpty(); // //# 49: continued
Bad.staticBadStart(); // //# 50: continued
Bad.staticBadEnd(); // //# 51: continued
Bad.staticBadMiddle(); // //# 52: continued
Bad.staticBadPosEmpty(); // //# 53: continued
Bad.staticBadPosEmpty(); // //# 54: continued
Bad.staticBadPosEmpty(); // //# 55: continued
Bad.staticBadPosEmpty(); // //# 56: continued
Bad.staticBadPosStart(); // //# 57: continued
Bad.staticBadPosStart(); // //# 58: continued
Bad.staticBadPosEnd(); // //# 59: continued
Bad.staticBadPosStart(); // //# 60: continued
Bad.staticBadPosMiddle(); // //# 61: continued
Bad.staticBadNamEmpty(); // //# 62: continued
Bad.staticBadNamEmpty(); // //# 63: continued
Bad.staticBadNamEmpty(); // //# 64: continued
Bad.staticBadNamEmpty(); // //# 65: continued
Bad.staticBadNamStart(); // //# 66: continued
Bad.staticBadNamStart(); // //# 67: continued
Bad.staticBadNamEnd(); // //# 68: continued
Bad.staticBadNamStart(); // //# 69: continued
Bad.staticBadNamMiddle(); // //# 70: continued
Bad.staticSetBadEmpty = 1; // //# 71: continued
Bad.staticSetBadStart = 1; // //# 72: continued
Bad.staticSetBadEnd = 1; // //# 73: continued
Bad.staticSetBadMiddle = 1; // //# 74: continued
var bad = new Bad();
bad.instanceBadEmpty(); // //# 75: continued
bad.instanceBadStart(); // //# 76: continued
bad.instanceBadEnd(); // //# 77: continued
bad.instanceBadMiddle(); // //# 78: continued
bad.instanceBadPosEmpty(); // //# 79: continued
bad.instanceBadPosEmpty(); // //# 80: continued
bad.instanceBadPosEmpty(); // //# 81: continued
bad.instanceBadPosEmpty(); // //# 82: continued
bad.instanceBadPosStart(); // //# 83: continued
bad.instanceBadPosStart(); // //# 84: continued
bad.instanceBadPosEnd(); // //# 85: continued
bad.instanceBadPosStart(); // //# 86: continued
bad.instanceBadPosMiddle(); // //# 87: continued
bad.instanceBadNamEmpty(); // //# 88: continued
bad.instanceBadNamEmpty(); // //# 89: continued
bad.instanceBadNamEmpty(); // //# 90: continued
bad.instanceBadNamEmpty(); // //# 91: continued
bad.instanceBadNamStart(); // //# 92: continued
bad.instanceBadNamStart(); // //# 93: continued
bad.instanceBadNamEnd(); // //# 94: continued
bad.instanceBadNamStart(); // //# 95: continued
bad.instanceBadNamMiddle(); // //# 96: continued
bad.instanceSetBadEmpty = 1; // //# 97: continued
bad.instanceSetBadStart = 1; // //# 98: continued
bad.instanceSetBadEnd = 1; // //# 99: continued
bad.instanceSetBadMiddle = 1; // //# 100: continued
bad * bad; // //# 101: continued
bad * bad; // //# 102: continued
bad * bad; // //# 103: continued
bad[1] = 1; // //# 104: continued
bad[1] = 1; // //# 105: continued
bad[1] = 1; // //# 106: continued
bad[1] = 1; // //# 107: continued
// This covers tests 108-166
bad.method();
bad.f(() {}); // //# 167: continued
bad.f(() {}); // //# 168: continued
bad.f(() {}); // //# 169: continued
bad.f(() {}); // //# 170: continued
bad.f(() {}); // //# 171: continued
bad.f(() {}); // //# 172: continued
bad.f(() {}); // //# 173: continued
bad.f(() {}); // //# 174: continued
bad.f(() {}); // //# 175: continued
bad.f(() {}); // //# 176: continued
bad.f(() {}); // //# 177: continued
bad.f(() {}); // //# 178: continued
bad.f(() {}); // //# 179: continued
bad.f(() {}); // //# 180: continued
bad.f(() {}); // //# 181: continued
bad.f(() {}); // //# 182: continued
bad.f(() {}); // //# 183: continued
bad.f(() {}); // //# 184: continued
bad.f(() {}); // //# 185: continued
bad.f(() {}); // //# 186: continued
bad.f(() {}); // //# 187: continued
bad.f(() {}); // //# 188: continued
BadEmpty x; // //# 189: continued
BadStart x; // //# 190: continued
BadEnd x; // //# 191: continued
BadMiddle x; // //# 192: continued
BadPosEmpty x; // //# 193: continued
BadPosEmpty x; // //# 194: continued
BadPosEmpty x; // //# 195: continued
BadPosEmpty x; // //# 196: continued
BadPosStart x; // //# 197: continued
BadPosStart x; // //# 198: continued
BadPosEnd x; // //# 199: continued
BadPosStart x; // //# 200: continued
BadPosMiddle x; // //# 201: continued
BadNamEmpty x; // //# 202: continued
BadNamEmpty x; // //# 203: continued
BadNamEmpty x; // //# 204: continued
BadNamEmpty x; // //# 205: continued
BadNamStart x; // //# 206: continued
BadNamStart x; // //# 207: continued
BadNamEnd x; // //# 208: continued
BadNamStart x; // //# 209: continued
BadNamMiddle x; // //# 210: continued
}