Skip to content

Commit 02e7aa7

Browse files
committed
---
yaml --- r: 263069 b: refs/heads/main c: 4769c45 h: refs/heads/main i: 263067: 050181e
1 parent 19d07cb commit 02e7aa7

File tree

5 files changed

+25
-97
lines changed

5 files changed

+25
-97
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1994,4 +1994,4 @@ refs/tags/2.14.0-96.0.dev: 1eee24e50fc3028754d9a8e98852b949c04da4e4
19941994
refs/tags/2.14.0-97.0.dev: ba9c1636e87fbdcc02b8bc4a584455c32f8378b4
19951995
refs/tags/2.14.0-98.0.dev: f2d370c93582bbf4da42b5dd4c906d6145b01ea9
19961996
refs/tags/2.14.0-99.0.dev: e722f62b48fb382534efc1f20735def68848006f
1997-
refs/heads/main: 7b15fb759d2803a3c5c0d908f418f05cb982b991
1997+
refs/heads/main: 4769c45988ced1913de712d019b3e5e87c4295c3

trunk/compiler/java/com/google/dart/compiler/resolver/CompileTimeConstantAnalyzer.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.google.dart.compiler.ast.DartBooleanLiteral;
1616
import com.google.dart.compiler.ast.DartCase;
1717
import com.google.dart.compiler.ast.DartClass;
18+
import com.google.dart.compiler.ast.DartConditional;
1819
import com.google.dart.compiler.ast.DartDeclaration;
1920
import com.google.dart.compiler.ast.DartDoubleLiteral;
2021
import com.google.dart.compiler.ast.DartExpression;
@@ -279,9 +280,8 @@ && checkNumberBooleanOrStringType(rhs, rhsType)) {
279280
checkMathExpression(x, lhs, rhs, lhsType, rhsType);
280281
break;
281282
case TRUNC:
282-
reportExceptionIfZeroLiteral(x, rhs);
283-
// pass-through
284283
case MOD:
284+
reportExceptionIfZeroLiteral(x, rhs);
285285
if (checkNumber(lhs, lhsType) && checkNumber(rhs, rhsType)) {
286286
rememberInferredType(x, intType);
287287
}
@@ -340,6 +340,12 @@ public Void visitDoubleLiteral(DartDoubleLiteral x) {
340340
rememberInferredType(x, doubleType);
341341
return null;
342342
}
343+
344+
@Override
345+
public Void visitConditional(DartConditional node) {
346+
expectedConstant(node);
347+
return null;
348+
}
343349

344350
@Override
345351
public Void visitField(DartField x) {

trunk/compiler/javatests/com/google/dart/compiler/resolver/CompileTimeConstantTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@
1515
*/
1616
public class CompileTimeConstantTest extends ResolverTestCase {
1717

18+
public void test_conditionalExpression() {
19+
resolveAndTestCtConstExpectErrors(
20+
Joiner.on("\n").join(
21+
"// filler filler filler filler filler filler filler filler filler filler",
22+
"class Object {}",
23+
"const v = true ? 1 : 2;",
24+
""),
25+
errEx(ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION, 3, 11, 12));
26+
}
27+
1828
public void test_nonConstArg() {
1929
resolveAndTestCtConstExpectErrors(
2030
Joiner.on("\n").join(
@@ -23,7 +33,7 @@ public void test_nonConstArg() {
2333
"main() {",
2434
" var a = const A(new A(null));",
2535
"}"),
26-
errEx(ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION, 4, 19, 11));
36+
errEx(ResolverErrorCode.EXPECTED_CONSTANT_EXPRESSION, 4, 19, 11));
2737
}
2838

2939
/**

trunk/compiler/javatests/com/google/dart/compiler/type/TypeAnalyzerCompilerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1327,14 +1327,16 @@ public void test_identicalFunction() throws Exception {
13271327
assertErrors(libraryResult.getErrors());
13281328
}
13291329

1330-
public void test_constantEvaluationException() throws Exception {
1330+
public void test_constantEvaluationException_divZero() throws Exception {
13311331
AnalyzeLibraryResult libraryResult = analyzeLibrary(
13321332
"// filler filler filler filler filler filler filler filler filler filler",
1333-
"const C = 1 ~/ 0;",
1333+
"const C1 = 1 ~/ 0;",
1334+
"const C2 = 1 % 0;",
13341335
"");
13351336
assertErrors(
13361337
libraryResult.getErrors(),
1337-
errEx(ResolverErrorCode.CONSTANTS_EVALUATION_EXCEPTION, 2, 11, 6));
1338+
errEx(ResolverErrorCode.CONSTANTS_EVALUATION_EXCEPTION, 2, 12, 6),
1339+
errEx(ResolverErrorCode.CONSTANTS_EVALUATION_EXCEPTION, 3, 12, 5));
13381340
}
13391341

13401342
/**

trunk/tests/co19/co19-compiler.status

Lines changed: 0 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -69,57 +69,13 @@ Language/13_Libraries_and_Scripts/1_Imports_A02_t18: Fail, OK
6969
Language/13_Libraries_and_Scripts/1_Imports_A02_t19: Fail, OK
7070

7171

72-
Language/03_Overview/2_Privacy_A01_t08: pass # http://dartbug.com/5179
73-
Language/03_Overview/2_Privacy_A01_t11: pass # http://dartbug.com/5179
74-
Language/03_Overview/2_Privacy_A01_t18: pass # http://dartbug.com/5179
75-
Language/06_Functions/3_Type_of_a_Function_A01_t01: pass # http://dartbug.com/5179
76-
Language/06_Functions/4_External_Functions_A01_t01: pass # http://dartbug.com/5179
77-
Language/07_Classes/10_Superinterfaces_A07_t01: pass # http://dartbug.com/5179
78-
Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A01_t02: pass # http://dartbug.com/5179
79-
Language/11_Expressions/05_Strings/1_String_Interpolation_A03_t02: pass # http://dartbug.com/5179
80-
Language/11_Expressions/05_Strings/1_String_Interpolation_A04_t02: pass # http://dartbug.com/5179
81-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t03: pass # http://dartbug.com/5179
82-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t04: pass # http://dartbug.com/5179
83-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t05: pass # http://dartbug.com/5179
84-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t07: pass # http://dartbug.com/5179
85-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A02_t01: pass # http://dartbug.com/5179
86-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A03_t01: pass # http://dartbug.com/5179
87-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A05_t02: pass # http://dartbug.com/5179
88-
Language/11_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t07: pass # http://dartbug.com/5179
89-
Language/11_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A08_t01: pass # http://dartbug.com/5179
90-
Language/11_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A02_t02: pass # http://dartbug.com/5179
91-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t02: pass # http://dartbug.com/5179
92-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t03: pass # http://dartbug.com/5179
93-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t07: pass # http://dartbug.com/5179
94-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t08: pass # http://dartbug.com/5179
95-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A05_t01: pass # http://dartbug.com/5179
96-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A06_t02: pass # http://dartbug.com/5179
97-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t04: pass # http://dartbug.com/5179
98-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t02: pass # http://dartbug.com/5179
99-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t03: pass # http://dartbug.com/5179
100-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t01: pass # http://dartbug.com/5179
101-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t02: pass # http://dartbug.com/5179
102-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A07_t01: pass # http://dartbug.com/5179
103-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A08_t02: pass # http://dartbug.com/5179
104-
Language/11_Expressions/30_Identifier_Reference_A04_t05: pass # http://dartbug.com/5179
105-
Language/11_Expressions/30_Identifier_Reference_A04_t07: pass # http://dartbug.com/5179
106-
Language/11_Expressions/30_Identifier_Reference_A05_t06: pass # http://dartbug.com/5179
107-
Language/13_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t01: pass # http://dartbug.com/5179
108-
10972
# co19 issue 298
11073
Language/13_Libraries_and_Scripts/1_Imports_A02_t16: Fail, OK
11174
Language/13_Libraries_and_Scripts/1_Imports_A02_t17: Fail, OK
11275

11376
Language/13_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t04: Fail, OK # contains syntax error
11477
Language/06_Functions/2_Formal_Parameters/2_Optional_Formals_A03_t02: Fail, OK # deprecated parameter syntax
11578

116-
# The following tests use NoSuchMethodException instead of NoSuchMethodError.
117-
Language/06_Functions/4_External_Functions_A01_t01: Fail, OK # co19 issue 195
118-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t07: Fail, OK # co19 issue 195
119-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t08: Fail, OK # co19 issue 195
120-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A05_t02: Fail, OK # co19 issue 195
121-
Language/13_Libraries_and_Scripts/13_Libraries_and_Scripts_A05_t01: Fail, OK # co19 issue 195
122-
12379
Language/03_Overview/1_Scoping_A02_t28: Fail # language change 1031
12480
Language/07_Classes/6_Constructors/1_Generative_Constructors_A15_t07: Fail # Issue 3323
12581
Language/07_Classes/6_Constructors/3_Constant_Constructors_A05_t01: Fail # Issue 2477
@@ -133,52 +89,6 @@ Language/11_Expressions/22_Equality_A01_t19: Fail # language change 3368
13389
Language/11_Expressions/22_Equality_A01_t20: Fail # language change 3368
13490
Language/11_Expressions/22_Equality_A02_t03: Fail, OK # co19 issue 169
13591

136-
# The following tests use hashCode() (function) instead of hashCode (getter).
137-
# co19 issue 273
138-
LibTest/isolate/SendPort/hashCode_A01_t01: Pass, OK
139-
LibTest/core/String/hashCode_A01_t01: Pass, OK
140-
LibTest/core/int/hashCode_A01_t01: Pass, OK
141-
142-
Language/06_Functions/3_Type_of_a_Function_A01_t01: Fail, OK
143-
Language/11_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A05_t07: Fail, OK
144-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t02: Fail, OK
145-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A06_t02: Fail, OK
146-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A07_t01: Fail, OK
147-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A05_t01: Fail, OK
148-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A03_t03: Fail, OK
149-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t02: Fail, OK
150-
Language/11_Expressions/15_Method_Invocation/1_Ordinary_Invocation_A08_t01: Fail, OK
151-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t01: Fail, OK
152-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A08_t02: Fail, OK
153-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A06_t02: Fail, OK
154-
Language/11_Expressions/15_Method_Invocation/2_Cascaded_Invocation_A02_t02: Fail, OK
155-
Language/11_Expressions/15_Method_Invocation/3_Static_Invocation_A04_t03: Fail, OK
156-
Language/11_Expressions/15_Method_Invocation/4_Super_Invocation_A02_t04: Fail, OK
157-
Language/11_Expressions/22_Equality_A01_t19: Fail, OK
158-
Language/11_Expressions/01_Constants_A17_t03: Fail, OK
159-
Language/11_Expressions/05_Strings/1_String_Interpolation_A04_t02: Fail, OK
160-
Language/11_Expressions/05_Strings/1_String_Interpolation_A03_t02: Fail, OK
161-
Language/11_Expressions/22_Equality_A01_t20: Fail, OK
162-
Language/11_Expressions/30_Identifier_Reference_A04_t07: Fail, OK
163-
Language/11_Expressions/30_Identifier_Reference_A04_t05: Fail, OK
164-
Language/11_Expressions/01_Constants_A16_t02: Fail, OK
165-
Language/11_Expressions/30_Identifier_Reference_A05_t06: Fail, OK
166-
Language/11_Expressions/01_Constants_A15_t16: Fail, OK
167-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t04: Fail, OK
168-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t07: Fail, OK
169-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t03: Fail, OK
170-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A03_t01: Fail, OK
171-
Language/11_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A02_t01: Fail, OK
172-
Language/11_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t05: Fail, OK
173-
Language/11_Expressions/01_Constants_A16_t03: Fail, OK
174-
Language/11_Expressions/01_Constants_A16_t01: Fail, OK
175-
Language/07_Classes/6_Constructors/3_Constant_Constructors_A05_t02: Fail, OK
176-
Language/07_Classes/6_Constructors/3_Constant_Constructors_A05_t03: Fail, OK
177-
Language/07_Classes/6_Constructors/3_Constant_Constructors_A05_t01: Fail, OK
178-
Language/03_Overview/2_Privacy_A01_t11: Fail, OK
179-
Language/03_Overview/1_Scoping_A02_t28: Fail, OK
180-
Language/03_Overview/2_Privacy_A01_t18: Fail, OK
181-
Language/03_Overview/2_Privacy_A01_t08: Fail, OK
18292

18393
[ $runtime == drt && ($compiler == none || $compiler == frog) ]
18494
*: Skip

0 commit comments

Comments
 (0)