dart-sdk/tests/language_2/super_in_constructor_test.dart
Jens Johansen 177ab47ee4 Add test that triggers an assertion error in DDC with kernel
Currently (with --checked):
```
Unhandled exception:
'package:dev_compiler/src/kernel/compiler.dart': Failed assertion: line 4042 pos 16: 'member is Procedure
            ? setter == member.isSetter
            : (member as Field).isFinal != setter': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/dart:core/errors_patch.dart:37)
#1      _AssertionError._throwNew (dart:core-patch/dart:core/errors_patch.dart:33)
#2      ProgramCompiler._emitSuperTarget.<anonymous closure> (package:dev_compiler/src/kernel/compiler.dart:4042:16)
#3      _HashVMBase&MapMixin&&_LinkedHashMapMixin.putIfAbsent (dart:collection-patch/dart:collection/compact_hash.dart:275)
#4      ProgramCompiler._emitSuperTarget (package:dev_compiler/src/kernel/compiler.dart:4039:34)
#5      ProgramCompiler.visitSuperPropertySet (package:dev_compiler/src/kernel/compiler.dart:3605:20)
#6      SuperPropertySet.accept (package:kernel/ast.dart:2480:36)
#7      ProgramCompiler._visitAndMarkExpression (package:dev_compiler/src/kernel/compiler.dart:2996:31)
#8      ProgramCompiler.visitExpressionStatement (package:dev_compiler/src/kernel/compiler.dart:3009:7)
#9      ExpressionStatement.accept (package:kernel/ast.dart:3682:35)
#10     ProgramCompiler._visitStatement (package:dev_compiler/src/kernel/compiler.dart:2937:21)
#11     MappedListIterable.elementAt (dart:_internal/iterable.dart:413)
#12     ListIterable.toList (dart:_internal/iterable.dart:218)
#13     ProgramCompiler.visitBlock (package:dev_compiler/src/kernel/compiler.dart:3013:57)
#14     Block.accept (package:kernel/ast.dart:3707:35)
#15     ProgramCompiler._visitStatement (package:dev_compiler/src/kernel/compiler.dart:2937:21)
#16     ProgramCompiler._emitConstructorBody (package:dev_compiler/src/kernel/compiler.dart:1327:18)
#17     ProgramCompiler._emitConstructor (package:dev_compiler/src/kernel/compiler.dart:1268:16)
[...]
```

Bug:
Change-Id: I8ca19827ab63eae509aae1c5172774a7a6abde1a
Reviewed-on: https://dart-review.googlesource.com/28620
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-12 12:39:30 +00:00

26 lines
507 B
Dart

// Copyright (c) 2017, 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.
import "package:expect/expect.dart";
class Foo {
bool myBoolean = false;
void set foo(bool b) {
print("Setting foo in Foo");
myBoolean = b;
}
}
class Baz extends Foo {
Baz() {
super.foo = true;
Expect.equals(true, super.myBoolean);
}
}
main() {
new Baz();
}