Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Unified Diff: pkg/compiler/lib/src/js_backend/native_data.dart

Issue 2898403002: Use failedAt in more places (Closed)
Patch Set: merge; address comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/native_data.dart
diff --git a/pkg/compiler/lib/src/js_backend/native_data.dart b/pkg/compiler/lib/src/js_backend/native_data.dart
index 0ad4565e6a93b4f820a0300ad29816ddd9bd62e6..3ff11c375d7dbc9bbc93e10d8828d373d1bb8663 100644
--- a/pkg/compiler/lib/src/js_backend/native_data.dart
+++ b/pkg/compiler/lib/src/js_backend/native_data.dart
@@ -173,11 +173,12 @@ class NativeBasicDataBuilderImpl implements NativeBasicDataBuilder {
// compiler copies pre-processed elements into a new compiler through
// [Compiler.onLibraryScanned] and thereby causes multiple calls to this
// method.
- assert(invariant(
- cls,
+ assert(
nativeClassTagInfo[cls] == null ||
nativeClassTagInfo[cls].text == tagText,
- message: "Native tag info set inconsistently on $cls: "
+ failedAt(
+ cls,
+ "Native tag info set inconsistently on $cls: "
"Existing tag info '${nativeClassTagInfo[cls]}', "
"new tag info '$tagText'."));
nativeClassTagInfo[cls] = new NativeClassTag(tagText);
@@ -295,9 +296,11 @@ class NativeDataBuilderImpl implements NativeDataBuilder {
// TODO(johnniwinther): Avoid setting this more than once. The enqueuer
// might enqueue [element] several times (before processing it) and computes
// name on each call to `internalAddToWorkList`.
- assert(invariant(element,
+ assert(
nativeMemberName[element] == null || nativeMemberName[element] == name,
- message: "Native member name set inconsistently on $element: "
+ failedAt(
+ element,
+ "Native member name set inconsistently on $element: "
"Existing name '${nativeMemberName[element]}', "
"new name '$name'."));
nativeMemberName[element] = name;
@@ -320,8 +323,9 @@ class NativeDataBuilderImpl implements NativeDataBuilder {
/// Sets the explicit js interop [name] for the library [element].
void setJsInteropLibraryName(LibraryEntity element, String name) {
- assert(invariant(element, _nativeBasicData.isJsInteropLibrary(element),
- message:
+ assert(
+ _nativeBasicData.isJsInteropLibrary(element),
+ failedAt(element,
'Library $element is not js interop but given a js interop name.'));
jsInteropLibraryNames[element] = name;
}
@@ -333,8 +337,9 @@ class NativeDataBuilderImpl implements NativeDataBuilder {
/// Sets the explicit js interop [name] for the class [element].
void setJsInteropClassName(ClassEntity element, String name) {
- assert(invariant(element, _nativeBasicData.isJsInteropClass(element),
- message:
+ assert(
+ _nativeBasicData.isJsInteropClass(element),
+ failedAt(element,
'Class $element is not js interop but given a js interop name.'));
jsInteropClassNames[element] = name;
}
@@ -346,8 +351,9 @@ class NativeDataBuilderImpl implements NativeDataBuilder {
/// Sets the explicit js interop [name] for the member [element].
void setJsInteropMemberName(MemberEntity element, String name) {
- assert(invariant(element, jsInteropMemberNames.containsKey(element),
- message:
+ assert(
+ jsInteropMemberNames.containsKey(element),
+ failedAt(element,
'Member $element is not js interop but given a js interop name.'));
jsInteropMemberNames[element] = name;
}
@@ -518,9 +524,10 @@ class NativeDataImpl implements NativeData {
String _jsMemberNameHelper(MemberEntity element) {
String jsInteropName = jsInteropMemberNames[element];
- assert(invariant(element,
+ assert(
!(jsInteropMemberNames.containsKey(element) && jsInteropName == null),
- message:
+ failedAt(
+ element,
'Member $element is js interop but js interop name has not yet '
'been computed.'));
if (jsInteropName != null && jsInteropName.isNotEmpty) {
@@ -562,24 +569,30 @@ class NativeDataImpl implements NativeData {
/// Returns the [NativeBehavior] for calling the native [method].
NativeBehavior getNativeMethodBehavior(FunctionEntity method) {
- assert(invariant(method, nativeMethodBehavior.containsKey(method),
- message: "No native method behavior has been computed for $method."));
+ assert(
+ nativeMethodBehavior.containsKey(method),
+ failedAt(method,
+ "No native method behavior has been computed for $method."));
return nativeMethodBehavior[method];
}
/// Returns the [NativeBehavior] for reading from the native [field].
NativeBehavior getNativeFieldLoadBehavior(FieldEntity field) {
- assert(invariant(field, nativeFieldLoadBehavior.containsKey(field),
- message: "No native field load behavior has been "
+ assert(
+ nativeFieldLoadBehavior.containsKey(field),
+ failedAt(
+ field,
+ "No native field load behavior has been "
"computed for $field."));
return nativeFieldLoadBehavior[field];
}
/// Returns the [NativeBehavior] for writing to the native [field].
NativeBehavior getNativeFieldStoreBehavior(FieldEntity field) {
- assert(invariant(field, nativeFieldStoreBehavior.containsKey(field),
- message: "No native field store behavior has been "
- "computed for $field."));
+ assert(
+ nativeFieldStoreBehavior.containsKey(field),
+ failedAt(field,
+ "No native field store behavior has been computed for $field."));
return nativeFieldStoreBehavior[field];
}
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer_names.dart ('k') | pkg/compiler/lib/src/js_backend/patch_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698