mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 00:08:39 +09:00
Rename "MozMap" to "record" in our IDL parser and IDL files
This commit is contained in:
parent
f953e2ad26
commit
d9eeac26ef
8 changed files with 83 additions and 78 deletions
|
|
@ -1867,7 +1867,7 @@ class IDLDictionary(IDLObjectWithScope):
|
|||
|
||||
if (memberType.nullable() or
|
||||
memberType.isSequence() or
|
||||
memberType.isMozMap()):
|
||||
memberType.isRecord()):
|
||||
return typeContainsDictionary(memberType.inner, dictionary)
|
||||
|
||||
if memberType.isDictionary():
|
||||
|
|
@ -1988,7 +1988,7 @@ class IDLType(IDLObject):
|
|||
'callback',
|
||||
'union',
|
||||
'sequence',
|
||||
'mozmap'
|
||||
'record'
|
||||
)
|
||||
|
||||
def __init__(self, location, name):
|
||||
|
|
@ -2038,7 +2038,7 @@ class IDLType(IDLObject):
|
|||
def isSequence(self):
|
||||
return False
|
||||
|
||||
def isMozMap(self):
|
||||
def isRecord(self):
|
||||
return False
|
||||
|
||||
def isArrayBuffer(self):
|
||||
|
|
@ -2263,8 +2263,8 @@ class IDLNullableType(IDLParameterizedType):
|
|||
def isSequence(self):
|
||||
return self.inner.isSequence()
|
||||
|
||||
def isMozMap(self):
|
||||
return self.inner.isMozMap()
|
||||
def isRecord(self):
|
||||
return self.inner.isRecord()
|
||||
|
||||
def isArrayBuffer(self):
|
||||
return self.inner.isArrayBuffer()
|
||||
|
|
@ -2399,34 +2399,38 @@ class IDLSequenceType(IDLParameterizedType):
|
|||
return (other.isPrimitive() or other.isString() or other.isEnum() or
|
||||
other.isDate() or other.isInterface() or
|
||||
other.isDictionary() or
|
||||
other.isCallback() or other.isMozMap())
|
||||
other.isCallback() or other.isRecord())
|
||||
|
||||
|
||||
class IDLMozMapType(IDLParameterizedType):
|
||||
def __init__(self, location, parameterType):
|
||||
assert not parameterType.isVoid()
|
||||
class IDLRecordType(IDLParameterizedType):
|
||||
def __init__(self, location, keyType, valueType):
|
||||
assert keyType.isString()
|
||||
assert keyType.isComplete()
|
||||
assert not valueType.isVoid()
|
||||
|
||||
IDLParameterizedType.__init__(self, location, valueType.name, valueType)
|
||||
self.keyType = keyType
|
||||
|
||||
IDLParameterizedType.__init__(self, location, parameterType.name, parameterType)
|
||||
# Need to set self.name up front if our inner type is already complete,
|
||||
# since in that case our .complete() won't be called.
|
||||
if self.inner.isComplete():
|
||||
self.name = self.inner.name + "MozMap"
|
||||
self.name = self.keyType.name + self.inner.name + "Record"
|
||||
|
||||
def __eq__(self, other):
|
||||
return isinstance(other, IDLMozMapType) and self.inner == other.inner
|
||||
return isinstance(other, IDLRecordType) and self.inner == other.inner
|
||||
|
||||
def __str__(self):
|
||||
return self.inner.__str__() + "MozMap"
|
||||
return self.keyType.__str__() + self.inner.__str__() + "Record"
|
||||
|
||||
def isMozMap(self):
|
||||
def isRecord(self):
|
||||
return True
|
||||
|
||||
def tag(self):
|
||||
return IDLType.Tags.mozmap
|
||||
return IDLType.Tags.record
|
||||
|
||||
def complete(self, scope):
|
||||
self.inner = self.inner.complete(scope)
|
||||
self.name = self.inner.name + "MozMap"
|
||||
self.name = self.keyType.name + self.inner.name + "Record"
|
||||
return self
|
||||
|
||||
def unroll(self):
|
||||
|
|
@ -2616,8 +2620,8 @@ class IDLTypedefType(IDLType):
|
|||
def isSequence(self):
|
||||
return self.inner.isSequence()
|
||||
|
||||
def isMozMap(self):
|
||||
return self.inner.isMozMap()
|
||||
def isRecord(self):
|
||||
return self.inner.isRecord()
|
||||
|
||||
def isDictionary(self):
|
||||
return self.inner.isDictionary()
|
||||
|
|
@ -2800,7 +2804,7 @@ class IDLWrapperType(IDLType):
|
|||
if self.isEnum():
|
||||
return (other.isPrimitive() or other.isInterface() or other.isObject() or
|
||||
other.isCallback() or other.isDictionary() or
|
||||
other.isSequence() or other.isMozMap() or other.isDate())
|
||||
other.isSequence() or other.isRecord() or other.isDate())
|
||||
if self.isDictionary() and other.nullable():
|
||||
return False
|
||||
if (other.isPrimitive() or other.isString() or other.isEnum() or
|
||||
|
|
@ -2822,7 +2826,7 @@ class IDLWrapperType(IDLType):
|
|||
(self.isNonCallbackInterface() or
|
||||
other.isNonCallbackInterface()))
|
||||
if (other.isDictionary() or other.isCallback() or
|
||||
other.isMozMap()):
|
||||
other.isRecord()):
|
||||
return self.isNonCallbackInterface()
|
||||
|
||||
# Not much else |other| can be
|
||||
|
|
@ -3032,17 +3036,17 @@ class IDLBuiltinType(IDLType):
|
|||
return (other.isNumeric() or other.isString() or other.isEnum() or
|
||||
other.isInterface() or other.isObject() or
|
||||
other.isCallback() or other.isDictionary() or
|
||||
other.isSequence() or other.isMozMap() or other.isDate())
|
||||
other.isSequence() or other.isRecord() or other.isDate())
|
||||
if self.isNumeric():
|
||||
return (other.isBoolean() or other.isString() or other.isEnum() or
|
||||
other.isInterface() or other.isObject() or
|
||||
other.isCallback() or other.isDictionary() or
|
||||
other.isSequence() or other.isMozMap() or other.isDate())
|
||||
other.isSequence() or other.isRecord() or other.isDate())
|
||||
if self.isString():
|
||||
return (other.isPrimitive() or other.isInterface() or
|
||||
other.isObject() or
|
||||
other.isCallback() or other.isDictionary() or
|
||||
other.isSequence() or other.isMozMap() or other.isDate())
|
||||
other.isSequence() or other.isRecord() or other.isDate())
|
||||
if self.isAny():
|
||||
# Can't tell "any" apart from anything
|
||||
return False
|
||||
|
|
@ -3052,7 +3056,7 @@ class IDLBuiltinType(IDLType):
|
|||
return (other.isPrimitive() or other.isString() or other.isEnum() or
|
||||
other.isInterface() or other.isCallback() or
|
||||
other.isDictionary() or other.isSequence() or
|
||||
other.isMozMap())
|
||||
other.isRecord())
|
||||
if self.isVoid():
|
||||
return not other.isVoid()
|
||||
# Not much else we could be!
|
||||
|
|
@ -3060,7 +3064,7 @@ class IDLBuiltinType(IDLType):
|
|||
# Like interfaces, but we know we're not a callback
|
||||
return (other.isPrimitive() or other.isString() or other.isEnum() or
|
||||
other.isCallback() or other.isDictionary() or
|
||||
other.isSequence() or other.isMozMap() or other.isDate() or
|
||||
other.isSequence() or other.isRecord() or other.isDate() or
|
||||
(other.isInterface() and (
|
||||
# ArrayBuffer is distinguishable from everything
|
||||
# that's not an ArrayBuffer or a callback interface
|
||||
|
|
@ -3845,8 +3849,8 @@ class IDLConst(IDLInterfaceMember):
|
|||
if type.isDictionary():
|
||||
raise WebIDLError("A constant cannot be of a dictionary type",
|
||||
[self.location])
|
||||
if type.isMozMap():
|
||||
raise WebIDLError("A constant cannot be of a MozMap type",
|
||||
if type.isRecord():
|
||||
raise WebIDLError("A constant cannot be of a record type",
|
||||
[self.location])
|
||||
self.type = type
|
||||
self.value = value
|
||||
|
|
@ -3959,8 +3963,8 @@ class IDLAttribute(IDLInterfaceMember):
|
|||
if self.type.isSequence() and not self.getExtendedAttribute("Cached"):
|
||||
raise WebIDLError("A non-cached attribute cannot be of a sequence "
|
||||
"type", [self.location])
|
||||
if self.type.isMozMap() and not self.getExtendedAttribute("Cached"):
|
||||
raise WebIDLError("A non-cached attribute cannot be of a MozMap "
|
||||
if self.type.isRecord() and not self.getExtendedAttribute("Cached"):
|
||||
raise WebIDLError("A non-cached attribute cannot be of a record "
|
||||
"type", [self.location])
|
||||
if self.type.isUnion():
|
||||
for f in self.type.unroll().flatMemberTypes:
|
||||
|
|
@ -3976,11 +3980,11 @@ class IDLAttribute(IDLInterfaceMember):
|
|||
"one of its member types's member "
|
||||
"types, and so on) is a sequence "
|
||||
"type", [self.location, f.location])
|
||||
if f.isMozMap():
|
||||
if f.isRecord():
|
||||
raise WebIDLError("An attribute cannot be of a union "
|
||||
"type if one of its member types (or "
|
||||
"one of its member types's member "
|
||||
"types, and so on) is a MozMap "
|
||||
"types, and so on) is a record "
|
||||
"type", [self.location, f.location])
|
||||
if not self.type.isInterface() and self.getExtendedAttribute("PutForwards"):
|
||||
raise WebIDLError("An attribute with [PutForwards] must have an "
|
||||
|
|
@ -3994,7 +3998,7 @@ class IDLAttribute(IDLInterfaceMember):
|
|||
def typeContainsChromeOnlyDictionaryMember(type):
|
||||
if (type.nullable() or
|
||||
type.isSequence() or
|
||||
type.isMozMap()):
|
||||
type.isRecord()):
|
||||
return typeContainsChromeOnlyDictionaryMember(type.inner)
|
||||
|
||||
if type.isUnion():
|
||||
|
|
@ -4040,10 +4044,10 @@ class IDLAttribute(IDLInterfaceMember):
|
|||
[self.location, location])
|
||||
if self.getExtendedAttribute("Frozen"):
|
||||
if (not self.type.isSequence() and not self.type.isDictionary() and
|
||||
not self.type.isMozMap()):
|
||||
not self.type.isRecord()):
|
||||
raise WebIDLError("[Frozen] is only allowed on "
|
||||
"sequence-valued, dictionary-valued, and "
|
||||
"MozMap-valued attributes",
|
||||
"record-valued attributes",
|
||||
[self.location])
|
||||
if not self.type.unroll().isExposedInAllOf(self.exposureSet):
|
||||
raise WebIDLError("Attribute returns a type that is not exposed "
|
||||
|
|
@ -5152,7 +5156,7 @@ class Tokenizer(object):
|
|||
"Promise": "PROMISE",
|
||||
"required": "REQUIRED",
|
||||
"sequence": "SEQUENCE",
|
||||
"MozMap": "MOZMAP",
|
||||
"record": "RECORD",
|
||||
"short": "SHORT",
|
||||
"unsigned": "UNSIGNED",
|
||||
"void": "VOID",
|
||||
|
|
@ -6281,7 +6285,7 @@ class Parser(Tokenizer):
|
|||
| OCTET
|
||||
| OPTIONAL
|
||||
| SEQUENCE
|
||||
| MOZMAP
|
||||
| RECORD
|
||||
| SETTER
|
||||
| SHORT
|
||||
| STATIC
|
||||
|
|
@ -6402,13 +6406,14 @@ class Parser(Tokenizer):
|
|||
type = IDLUnresolvedType(self.getLocation(p, 1), promiseIdent, p[3])
|
||||
p[0] = self.handleNullable(type, p[5])
|
||||
|
||||
def p_NonAnyTypeMozMapType(self, p):
|
||||
def p_NonAnyTypeRecordType(self, p):
|
||||
"""
|
||||
NonAnyType : MOZMAP LT Type GT Null
|
||||
NonAnyType : RECORD LT StringType COMMA Type GT Null
|
||||
"""
|
||||
innerType = p[3]
|
||||
type = IDLMozMapType(self.getLocation(p, 1), innerType)
|
||||
p[0] = self.handleNullable(type, p[5])
|
||||
keyType = p[3]
|
||||
valueType = p[5]
|
||||
type = IDLRecordType(self.getLocation(p, 1), keyType, valueType)
|
||||
p[0] = self.handleNullable(type, p[7])
|
||||
|
||||
def p_NonAnyTypeScopedName(self, p):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue