зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1335000 - return type& for copy assignment operator. r=peterv
MozReview-Commit-ID: 7kHt2l30ZP6 --HG-- extra : rebase_source : 3ef1cb0583238d9508153f4ddbbd402930f70706
This commit is contained in:
Родитель
b9fcaa1663
Коммит
b877576a5c
|
@ -10234,10 +10234,13 @@ class CGUnionStruct(CGThing):
|
||||||
visibility="public",
|
visibility="public",
|
||||||
explicit=True,
|
explicit=True,
|
||||||
body="*this = aOther;\n"))
|
body="*this = aOther;\n"))
|
||||||
|
op_body = CGList([])
|
||||||
|
op_body.append(CGSwitch("aOther.mType", assignmentCases))
|
||||||
|
op_body.append(CGGeneric("return *this;\n"))
|
||||||
methods.append(ClassMethod(
|
methods.append(ClassMethod(
|
||||||
"operator=", "void",
|
"operator=", "%s&" % selfName,
|
||||||
[Argument("const %s&" % selfName, "aOther")],
|
[Argument("const %s&" % selfName, "aOther")],
|
||||||
body=CGSwitch("aOther.mType", assignmentCases).define()))
|
body=op_body.define()))
|
||||||
disallowCopyConstruction = False
|
disallowCopyConstruction = False
|
||||||
else:
|
else:
|
||||||
disallowCopyConstruction = True
|
disallowCopyConstruction = True
|
||||||
|
@ -10872,7 +10875,7 @@ class CGClass(CGThing):
|
||||||
def declare(self, cgClass):
|
def declare(self, cgClass):
|
||||||
name = cgClass.getNameString()
|
name = cgClass.getNameString()
|
||||||
return ("%s(const %s&) = delete;\n"
|
return ("%s(const %s&) = delete;\n"
|
||||||
"void operator=(const %s&) = delete;\n" % (name, name, name))
|
"%s& operator=(const %s&) = delete;\n" % (name, name, name, name))
|
||||||
|
|
||||||
disallowedCopyConstructors = [DisallowedCopyConstructor()]
|
disallowedCopyConstructors = [DisallowedCopyConstructor()]
|
||||||
else:
|
else:
|
||||||
|
@ -12993,8 +12996,9 @@ class CGDictionary(CGThing):
|
||||||
memberAssign = CGGeneric(
|
memberAssign = CGGeneric(
|
||||||
"%s = aOther.%s;\n" % (memberName, memberName))
|
"%s = aOther.%s;\n" % (memberName, memberName))
|
||||||
body.append(memberAssign)
|
body.append(memberAssign)
|
||||||
|
body.append(CGGeneric("return *this;\n"))
|
||||||
return ClassMethod(
|
return ClassMethod(
|
||||||
"operator=", "void",
|
"operator=", "%s&" % self.makeClassName(self.dictionary),
|
||||||
[Argument("const %s&" % self.makeClassName(self.dictionary),
|
[Argument("const %s&" % self.makeClassName(self.dictionary),
|
||||||
"aOther")],
|
"aOther")],
|
||||||
body=body.define())
|
body=body.define())
|
||||||
|
|
Загрузка…
Ссылка в новой задаче