Files
sdk/pkg/front_end/test/macros/application/data/tests/sequence.dart
T
Jake Macdonald 4590fc83e7 Reland "Add wrappers for macro arguments to help with serialization."
The type arguments have to be explicitly given for collection types,
but this should be doable given they are all constants and only certain
types are allowed.

Change-Id: I2721f37d194d73de1df81302298101adeb87534c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/309460
Commit-Queue: Jake Macdonald <jakemac@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2023-06-16 14:02:05 +00:00

208 lines
3.3 KiB
Dart

// Copyright (c) 2022, 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.
/*library:
Declarations Order:
Class1:SequenceMacro.new(IntArgument:0)
Class2:SequenceMacro.new(IntArgument:1)
Class2:SequenceMacro.new(IntArgument:0)
Class3.method:SequenceMacro.new(IntArgument:1)
Class3:SequenceMacro.new(IntArgument:0)
Class4.method:SequenceMacro.new(IntArgument:3)
Class4.method2:SequenceMacro.new(IntArgument:5)
Class4.method2:SequenceMacro.new(IntArgument:4)
Class4:SequenceMacro.new(IntArgument:2)
Class4:SequenceMacro.new(IntArgument:1)
Class4:SequenceMacro.new(IntArgument:0)
Class5a:SequenceMacro.new(IntArgument:0)
Class5b:SequenceMacro.new(IntArgument:0)
Class5c:SequenceMacro.new(IntArgument:0)
Class6c:SequenceMacro.new(IntArgument:0)
Class6a:SequenceMacro.new(IntArgument:0)
Class6b:SequenceMacro.new(IntArgument:0)
Class6d:SequenceMacro.new(IntArgument:0)
Class7a:SequenceMacro.new(IntArgument:0)
Class7b:SequenceMacro.new(IntArgument:0)
Class7c:SequenceMacro.new(IntArgument:0)
Class7d:SequenceMacro.new(IntArgument:0)*/
import 'package:macro/macro.dart';
@SequenceMacro(0)
/*class: Class1:
declarations:
augment class Class1 {
method() {}
}
*/
class Class1 {}
@SequenceMacro(0)
@SequenceMacro(1)
/*class: Class2:
declarations:
augment class Class2 {
method() {}
}
augment class Class2 {
method1() {}
}
*/
class Class2 {}
@SequenceMacro(0)
/*class: Class3:
declarations:
augment class Class3 {
method1() {}
}
*/
class Class3 {
@SequenceMacro(1)
method() {}
}
@SequenceMacro(0)
@SequenceMacro(1)
@SequenceMacro(2)
/*class: Class4:
declarations:
augment class Class4 {
method1() {}
}
augment class Class4 {
method3() {}
}
augment class Class4 {
method4() {}
}
*/
class Class4 {
@SequenceMacro(3)
method() {}
@SequenceMacro(4)
@SequenceMacro(5)
method2() {}
}
@SequenceMacro(0)
/*class: Class5c:
declarations:
augment class Class5c {
method2() {}
}
*/
class Class5c extends Class5b {}
@SequenceMacro(0)
/*class: Class5b:
declarations:
augment class Class5b {
method1() {}
}
*/
class Class5b extends Class5a {}
@SequenceMacro(0)
/*class: Class5a:
declarations:
augment class Class5a {
method() {}
}
*/
class Class5a {}
@SequenceMacro(0)
/*class: Class6d:
declarations:
augment abstract class Class6d {
method2() {}
}
*/
abstract class Class6d implements Class6c, Class6b {}
@SequenceMacro(0)
/*class: Class6c:
declarations:
augment class Class6c {
method() {}
}
*/
class Class6c {}
@SequenceMacro(0)
/*class: Class6b:
declarations:
augment abstract class Class6b {
method1() {}
}
*/
abstract class Class6b implements Class6a {}
@SequenceMacro(0)
/*class: Class6a:
declarations:
augment class Class6a {
method() {}
}
*/
class Class6a {}
/*class: Class7d:
declarations:
augment class Class7d {
method2() {}
}
*/
@SequenceMacro(0)
class Class7d extends Class7b with Class7c {}
@SequenceMacro(0)
/*class: Class7c:
declarations:
augment mixin Class7c {
method() {}
}
*/
mixin Class7c {}
@SequenceMacro(0)
/*class: Class7b:
declarations:
augment class Class7b {
method1() {}
}
*/
class Class7b with Class7a {}
@SequenceMacro(0)
/*class: Class7a:
declarations:
augment mixin Class7a {
method() {}
}
*/
mixin Class7a {}