36607d877a
This adds support for parsing `argument super` as its own expression in augmentation libraries. This is not handled (correctly) by the ast builders of analyzer and cfe yet. Change-Id: Ibe67ad9daf56c82e8ec94f16d468e6b0d8f84d22 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244922 Reviewed-by: Jens Johansen <jensj@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
108 lines
3.9 KiB
Plaintext
108 lines
3.9 KiB
Plaintext
augment void topLevelMethod() {
|
|
augment super();
|
|
}
|
|
|
|
augment void topLevelMethodError() {
|
|
augment int local;
|
|
augment;
|
|
}
|
|
|
|
|
|
augment List<int> get topLevelProperty {
|
|
return [... augment super, augment super[0]];
|
|
}
|
|
|
|
augment void set topLevelProperty(List<int> value) {
|
|
augment super[0] = value[1];
|
|
augment super = value;
|
|
}
|
|
|
|
void injectedTopLevelMethod() {
|
|
augment super();
|
|
augment super;
|
|
augment int local;
|
|
augment;
|
|
}
|
|
|
|
augment class Class {
|
|
augment void instanceMethod() {
|
|
augment super();
|
|
}
|
|
|
|
augment void instanceMethodErrors() {
|
|
augment int local;
|
|
augment;
|
|
}
|
|
|
|
augment int get instanceProperty {
|
|
augment super++;
|
|
--augment super;
|
|
return -augment super;
|
|
}
|
|
|
|
augment void set instanceProperty(int value) {
|
|
augment super = value;
|
|
}
|
|
|
|
void injectedInstanceMethod() {
|
|
augment super();
|
|
augment super;
|
|
augment int local;
|
|
augment;
|
|
}
|
|
}
|
|
|
|
augment[KeywordToken] void[KeywordToken] topLevelMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] void[KeywordToken] topLevelMethodError[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] int[StringToken] local[StringToken];[SimpleToken]
|
|
augment[KeywordToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
|
|
augment[KeywordToken] List[StringToken]<[BeginToken]int[StringToken]>[SimpleToken] get[KeywordToken] topLevelProperty[StringToken] {[BeginToken]
|
|
return[KeywordToken] [[BeginToken]...[SimpleToken] augment[KeywordToken] super[KeywordToken],[SimpleToken] augment[KeywordToken] super[KeywordToken][[BeginToken]0[StringToken]][SimpleToken]][SimpleToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] void[KeywordToken] set[KeywordToken] topLevelProperty[StringToken]([BeginToken]List[StringToken]<[BeginToken]int[StringToken]>[SimpleToken] value[StringToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken][[BeginToken]0[StringToken]][SimpleToken] =[SimpleToken] value[StringToken][[BeginToken]1[StringToken]][SimpleToken];[SimpleToken]
|
|
augment[KeywordToken] super[KeywordToken] =[SimpleToken] value[StringToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
void[KeywordToken] injectedTopLevelMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
|
augment[KeywordToken] super[KeywordToken];[SimpleToken]
|
|
augment[KeywordToken] int[StringToken] local[StringToken];[SimpleToken]
|
|
augment[KeywordToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]
|
|
augment[KeywordToken] void[KeywordToken] instanceMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] void[KeywordToken] instanceMethodErrors[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] int[StringToken] local[StringToken];[SimpleToken]
|
|
augment[KeywordToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] int[StringToken] get[KeywordToken] instanceProperty[StringToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken]++[SimpleToken];[SimpleToken]
|
|
--[SimpleToken]augment[KeywordToken] super[KeywordToken];[SimpleToken]
|
|
return[KeywordToken] -[SimpleToken]augment[KeywordToken] super[KeywordToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
augment[KeywordToken] void[KeywordToken] set[KeywordToken] instanceProperty[StringToken]([BeginToken]int[StringToken] value[StringToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken] =[SimpleToken] value[StringToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
|
|
void[KeywordToken] injectedInstanceMethod[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
|
|
augment[KeywordToken] super[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken]
|
|
augment[KeywordToken] super[KeywordToken];[SimpleToken]
|
|
augment[KeywordToken] int[StringToken] local[StringToken];[SimpleToken]
|
|
augment[KeywordToken];[SimpleToken]
|
|
}[SimpleToken]
|
|
}[SimpleToken][SimpleToken]
|