Add test for field initializers

This commit is contained in:
Chris Smowton
2021-08-24 14:02:53 +01:00
parent c8d98ae649
commit 5a2dfda09e
7 changed files with 58 additions and 0 deletions

View File

@@ -5,3 +5,7 @@
| fields/FieldTest.java:5:9:5:39 | Object obj, ...; | 1/2 | fields/FieldTest.java:5:35:5:38 | obj2 |
| fields/FieldTest.java:6:9:6:58 | List<> l, ...; | 0/2 | fields/FieldTest.java:6:54:6:54 | l |
| fields/FieldTest.java:6:9:6:58 | List<> l, ...; | 1/2 | fields/FieldTest.java:6:57:6:57 | m |
| fields/FieldTest.java:7:9:7:18 | int x, ...; | 0/1 | fields/FieldTest.java:7:13:7:13 | x |
| fields/FieldTest.java:8:9:8:22 | int y, ...; | 0/1 | fields/FieldTest.java:8:13:8:13 | y |
| fields/FieldTest.java:12:9:12:25 | int z, ...; | 0/1 | fields/FieldTest.java:12:20:12:20 | z |
| fields/FieldTest.java:13:9:13:29 | int w, ...; | 0/1 | fields/FieldTest.java:13:20:13:20 | w |

View File

@@ -1,3 +1,7 @@
| List<> l, ...; | 6 | 9 | 6 | 58 |
| Object obj, ...; | 5 | 9 | 5 | 39 |
| float ff, ...; | 4 | 9 | 4 | 32 |
| int w, ...; | 13 | 9 | 13 | 29 |
| int x, ...; | 7 | 9 | 7 | 18 |
| int y, ...; | 8 | 9 | 8 | 22 |
| int z, ...; | 12 | 9 | 12 | 25 |

View File

@@ -0,0 +1,6 @@
| fields/FieldTest.java:4:19:4:19 | g | fields/FieldTest.java:4:23:4:26 | 2.3f |
| fields/FieldTest.java:5:23:5:25 | obj | fields/FieldTest.java:5:29:5:32 | null |
| fields/FieldTest.java:7:13:7:13 | x | fields/FieldTest.java:7:17:7:17 | 0 |
| fields/FieldTest.java:8:13:8:13 | y | fields/FieldTest.java:8:17:8:21 | ...=... |
| fields/FieldTest.java:12:20:12:20 | z | fields/FieldTest.java:12:24:12:24 | 0 |
| fields/FieldTest.java:13:20:13:20 | w | fields/FieldTest.java:13:24:13:28 | ...=... |

View File

@@ -0,0 +1,4 @@
import java
from Field f
select f, f.getInitializer()

View File

@@ -5,3 +5,7 @@
| fields/FieldTest.java:5:35:5:38 | obj2 | 5 | 35 | 5 | 38 |
| fields/FieldTest.java:6:54:6:54 | l | 6 | 54 | 6 | 54 |
| fields/FieldTest.java:6:57:6:57 | m | 6 | 57 | 6 | 57 |
| fields/FieldTest.java:7:13:7:13 | x | 7 | 13 | 7 | 13 |
| fields/FieldTest.java:8:13:8:13 | y | 8 | 13 | 8 | 13 |
| fields/FieldTest.java:12:20:12:20 | z | 12 | 20 | 12 | 20 |
| fields/FieldTest.java:13:20:13:20 | w | 13 | 20 | 13 | 20 |

View File

@@ -12,3 +12,29 @@ fields/FieldTest.java:
# 6| 1: [Annotation] SuppressWarnings
# 6| 1: [StringLiteral] "rawtypes"
# 6| -1: [TypeAccess] List<>
# 7| 7: [FieldDeclaration] int x, ...;
# 7| -1: [TypeAccess] int
# 7| 0: [IntegerLiteral] 0
# 8| 8: [FieldDeclaration] int y, ...;
# 8| -1: [TypeAccess] int
# 8| 0: [AssignExpr] ...=...
# 8| 0: [VarAccess] x
# 8| 1: [IntegerLiteral] 1
# 9| 9: [BlockStmt] { ... }
# 10| 0: [ExprStmt] <Expr>;
# 10| 0: [AssignExpr] ...=...
# 10| 0: [VarAccess] x
# 10| 1: [IntegerLiteral] 2
# 12| 10: [FieldDeclaration] int z, ...;
# 12| -1: [TypeAccess] int
# 12| 0: [IntegerLiteral] 0
# 13| 11: [FieldDeclaration] int w, ...;
# 13| -1: [TypeAccess] int
# 13| 0: [AssignExpr] ...=...
# 13| 0: [VarAccess] z
# 13| 1: [IntegerLiteral] 1
# 14| 12: [BlockStmt] { ... }
# 15| 0: [ExprStmt] <Expr>;
# 15| 0: [AssignExpr] ...=...
# 15| 0: [VarAccess] z
# 15| 1: [IntegerLiteral] 2

View File

@@ -4,4 +4,14 @@ public class FieldTest {
float ff, g = 2.3f, hhh;
static Object obj = null, obj2;
@SuppressWarnings("rawtypes") java.util.List l, m;
int x = 0;
int y = x = 1;
{
x = 2; // Shouldn't show up as an initializer
}
static int z = 0;
static int w = z = 1;
static {
z = 2; // Shouldn't show up as an initializer
}
}