[cfe] Add FileUriConstantExpression

This adds FileUriConstantExpression, a subclass of ConstantExpression, to support correct file offset of annotations for augmentations and patches.
The FileUriExpression is used to carry the file uri of the expression
before constant evaluation.

TEST=general/patch_annotations

Change-Id: I0dc8a0cb97dd530fd1960785d38c2d5e4883c3dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/311660
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Johnni Winther
2023-06-28 07:52:09 +00:00
committed by Commit Queue
parent cfd4200c85
commit 0c8ded72dc
120 changed files with 816 additions and 257 deletions
+2 -1
View File
@@ -18,7 +18,7 @@ namespace kernel {
// package:kernel/binary.md.
static const uint32_t kMagicProgramFile = 0x90ABCDEFu;
static const uint32_t kSupportedKernelFormatVersion = 105;
static const uint32_t kSupportedKernelFormatVersion = 106;
// Keep in sync with package:kernel/lib/binary/tag.dart
#define KERNEL_TAG_LIST(V) \
@@ -136,6 +136,7 @@ static const uint32_t kSupportedKernelFormatVersion = 105;
V(InlineType, 103) \
V(ConstantExpression, 106) \
V(FutureOrType, 107) \
V(FileUriConstantExpression, 108) \
V(InstanceGet, 118) \
V(InstanceSet, 119) \
V(InstanceInvocation, 120) \