blob: 112d882d6f2f9ab21fed452eaa5312c9620514c3 [file] [log] [blame]
// Copyright (c) 2013, 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.
// Test for unresolved super[] and super[]=.
class A {
var indexField = new List(2);
noSuchMethod(InvocationMirror im) {
if (im.memberName == '[]=') {
Expect.equals(2, im.positionalArguments.length);
indexField[im.positionalArguments[0]] = im.positionalArguments[1];
} else if (im.memberName == '[]') {
Expect.equals(1, im.positionalArguments.length);
return indexField[im.positionalArguments[0]];
} else {
Expect.fail('Should not reach here');
}
}
}
class B extends A {
test() {
Expect.equals(42, super[0] = 42);
Expect.equals(42, super[0]);
Expect.equals(43, super[0] += 1);
Expect.equals(43, super[0]);
Expect.equals(43, super[0]++);
Expect.equals(44, super[0]);
Expect.equals(2, super[0] = 2);
Expect.equals(2, super[0]);
Expect.equals(3, super[0] += 1);
Expect.equals(3, super[0]);
Expect.equals(3, super[0]++);
Expect.equals(4, super[0]);
}
}
main() {
new B().test();
}