[Parser] Add parsing of function's contract either before or after type constraints

This commit is contained in:
Arsen Nagdalian
2020-07-18 22:57:23 +03:00
parent 1b57889773
commit 32a64b888e
6 changed files with 401 additions and 188 deletions
@@ -1671,10 +1671,14 @@ public class KotlinParsing extends AbstractKotlinParsing {
parseTypeRef();
}
parseFunctionContract();
boolean functionContractOccurred = parseFunctionContract();
parseTypeConstraintsGuarded(typeParameterListOccurred);
if (!functionContractOccurred) {
parseFunctionContract();
}
if (at(SEMICOLON)) {
advance(); // SEMICOLON
}
@@ -1995,10 +1999,12 @@ public class KotlinParsing extends AbstractKotlinParsing {
constraint.done(TYPE_CONSTRAINT);
}
private void parseFunctionContract() {
private boolean parseFunctionContract() {
if (at(CONTRACT_KEYWORD)) {
myExpressionParsing.parseContractDescriptionBlock();
return true;
}
return false;
}
/*