<feed xmlns='http://www.w3.org/2005/Atom'>
<title>platform_tools_metalava, branch android10-gsi</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/'/>
<entry>
<title>Simplify constructor selection in stubs</title>
<updated>2020-08-19T09:33:45+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2019-09-13T15:11:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=88e8e620965a6ec7f7c4db6b0e01ade09c9eaa49'/>
<id>88e8e620965a6ec7f7c4db6b0e01ade09c9eaa49</id>
<content type='text'>
Constructor selection was previously done on the unfiltered constructor
list. This made the code more complex and could result in constructors
that reference excluded types being present in the generated stubs. By
selecting from the already filtered constructors the code can be
greatly simplified and the resulting stubs will not reference excludeed
types.

It does change the behavior of some of the tests:
* CoreApiTest
  * 'Hidden with package javadoc and hiding default constructor explicitly'
    Removes the /**@hide*/ comment that was copied over from the
	original source. That is because the constructor is no longer copied
	over and instead was created.
* StubsTest
  * A number of tests were affected as instead of reusing a hidden
    constructor with parameters and throws from the source it creates a
	new no args constructor.

This should have no adverse effects because in the case when a
constructor that referenced excluded types was output it could never
actually have been used because it was marked as package private. So,
it is safe to replace it with a default package private constructor
as it did previously when it could not find a suitable constructor.

Bug: 141219826
Test: ./gradlew test + m checkbuild + manual inspection of affected classes
Change-Id: I62be87d47124d135a50a4c0b98f55c9d63dc1db5
(cherry picked from commit 09094fc5e566a380b7aa1a4c3948ac66cebc0aba)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Constructor selection was previously done on the unfiltered constructor
list. This made the code more complex and could result in constructors
that reference excluded types being present in the generated stubs. By
selecting from the already filtered constructors the code can be
greatly simplified and the resulting stubs will not reference excludeed
types.

It does change the behavior of some of the tests:
* CoreApiTest
  * 'Hidden with package javadoc and hiding default constructor explicitly'
    Removes the /**@hide*/ comment that was copied over from the
	original source. That is because the constructor is no longer copied
	over and instead was created.
* StubsTest
  * A number of tests were affected as instead of reusing a hidden
    constructor with parameters and throws from the source it creates a
	new no args constructor.

This should have no adverse effects because in the case when a
constructor that referenced excluded types was output it could never
actually have been used because it was marked as package private. So,
it is safe to replace it with a default package private constructor
as it did previously when it could not find a suitable constructor.

Bug: 141219826
Test: ./gradlew test + m checkbuild + manual inspection of affected classes
Change-Id: I62be87d47124d135a50a4c0b98f55c9d63dc1db5
(cherry picked from commit 09094fc5e566a380b7aa1a4c3948ac66cebc0aba)
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve handling of visibility level</title>
<updated>2020-08-19T09:33:01+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2019-09-18T12:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=33ad17dce4aca04feeb043bab02dbb2800f1e367'/>
<id>33ad17dce4aca04feeb043bab02dbb2800f1e367</id>
<content type='text'>
Merged separate bits for each possible level (which can lead to
multiple levels being set) into a group of bits that can only specify a
single level.

Removed some unused methods: set(String), bit(String)

Did not remove the asAccessibleAs(ModifierList) method as while that is
unused it is referenced from some TODOs so I left it in.

Removed the expression "(flags or PRIVATE) != 0" as that always
evaluates to true because PRIVATE is not 0.

Test: ./gradlew test &amp;&amp; m droid
Bug: 141229417
Change-Id: I193850bd2972d07d1fc6accefdf18ee0e98751d0
(cherry picked from commit 1fb820135dfdfc385cfd65c113999b2cffe85299)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Merged separate bits for each possible level (which can lead to
multiple levels being set) into a group of bits that can only specify a
single level.

Removed some unused methods: set(String), bit(String)

Did not remove the asAccessibleAs(ModifierList) method as while that is
unused it is referenced from some TODOs so I left it in.

Removed the expression "(flags or PRIVATE) != 0" as that always
evaluates to true because PRIVATE is not 0.

Test: ./gradlew test &amp;&amp; m droid
Bug: 141229417
Change-Id: I193850bd2972d07d1fc6accefdf18ee0e98751d0
(cherry picked from commit 1fb820135dfdfc385cfd65c113999b2cffe85299)
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove isLeaf from ApiAnalyzer.addConstructors</title>
<updated>2020-08-19T09:32:27+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2019-09-18T14:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=cccb6d4c889fdd1044e68017572623dba792aabb'/>
<id>cccb6d4c889fdd1044e68017572623dba792aabb</id>
<content type='text'>
It has no effect on the behavior of the expression:
  (!isLeaf || cls.constructors().isNotEmpty())

If a class is not a leaf then it must have a constructor, either an
implicit constructor (which are added to the cls.constructors() list)
or explicit ones.

Test: ./gradlew test &amp;&amp; m checkbuild
Change-Id: I779c4ce5c2b35fef8e95c8784082b6443d2e3b1f
(cherry picked from commit 181d65e3e7d8407a5861b7b621c112562c1bcfc2)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It has no effect on the behavior of the expression:
  (!isLeaf || cls.constructors().isNotEmpty())

If a class is not a leaf then it must have a constructor, either an
implicit constructor (which are added to the cls.constructors() list)
or explicit ones.

Test: ./gradlew test &amp;&amp; m checkbuild
Change-Id: I779c4ce5c2b35fef8e95c8784082b6443d2e3b1f
(cherry picked from commit 181d65e3e7d8407a5861b7b621c112562c1bcfc2)
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove ClassItem.hasPrivateConstructor</title>
<updated>2020-08-19T09:31:52+00:00</updated>
<author>
<name>Paul Duffin</name>
<email>paulduffin@google.com</email>
</author>
<published>2019-09-17T12:47:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=1eb52983b16bc467143ba46fdd6f525660e6f811'/>
<id>1eb52983b16bc467143ba46fdd6f525660e6f811</id>
<content type='text'>
It is not needed as it is used in the following expression.

    cls.hasPrivateConstructor || cls.constructors().isNotEmpty()

In order for hasPrivateConstructor to be true the list of constructors
must be non empty so the second expression will always be true if
hasPrivateConstructor is true.

Test: ./gradlew test &amp;&amp; TH
Change-Id: I2d339b8f2a50f440cd77f5b18a2d5fae505e59a4
(cherry picked from commit 4eb0db40ac3466dca1c2a38a0cbce9b11712d7ed)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is not needed as it is used in the following expression.

    cls.hasPrivateConstructor || cls.constructors().isNotEmpty()

In order for hasPrivateConstructor to be true the list of constructors
must be non empty so the second expression will always be true if
hasPrivateConstructor is true.

Test: ./gradlew test &amp;&amp; TH
Change-Id: I2d339b8f2a50f440cd77f5b18a2d5fae505e59a4
(cherry picked from commit 4eb0db40ac3466dca1c2a38a0cbce9b11712d7ed)
</pre>
</div>
</content>
</entry>
<entry>
<title>Keep private class constructors private in stubs generation.</title>
<updated>2020-08-19T09:31:10+00:00</updated>
<author>
<name>Aurimas Liutikas</name>
<email>aurimas@google.com</email>
</author>
<published>2019-07-15T21:58:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=d3ff9816b3d2fdd9c9cb0aabab6c1198202c708e'/>
<id>d3ff9816b3d2fdd9c9cb0aabab6c1198202c708e</id>
<content type='text'>
We should not be promoting private constructors into package private
ones for stubs.

Also rename ClassItem#defaultConstructor property to stubConstructor to
make it more clear what it is.

Test: Update existing StubsTest
Change-Id: I330f1d8780162ced9fae56c74ab35ef5f9cbd780
(cherry picked from commit 6d546d8ff3307c0ff30f2b359ec2813c7763720a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should not be promoting private constructors into package private
ones for stubs.

Also rename ClassItem#defaultConstructor property to stubConstructor to
make it more clear what it is.

Test: Update existing StubsTest
Change-Id: I330f1d8780162ced9fae56c74ab35ef5f9cbd780
(cherry picked from commit 6d546d8ff3307c0ff30f2b359ec2813c7763720a)
</pre>
</div>
</content>
</entry>
<entry>
<title>Snap for 5364434 from edcafddcb54e149af8d4135a346501dde802fb30 to qt-release</title>
<updated>2019-03-10T00:14:22+00:00</updated>
<author>
<name>android-build-team Robot</name>
<email>android-build-team-robot@google.com</email>
</author>
<published>2019-03-10T00:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=5f45ec4987c8cdf2462a9211629bcfe70cb7aeee'/>
<id>5f45ec4987c8cdf2462a9211629bcfe70cb7aeee</id>
<content type='text'>
Change-Id: I3438e1f327a8f1b3b7aa7f4b6a13cd8579d4a1a9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I3438e1f327a8f1b3b7aa7f4b6a13cd8579d4a1a9
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump metalava version am: 111f727f10 am: 090a58cbeb</title>
<updated>2019-03-07T09:31:49+00:00</updated>
<author>
<name>Tor Norbye</name>
<email>tnorbye@google.com</email>
</author>
<published>2019-03-07T09:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=edcafddcb54e149af8d4135a346501dde802fb30'/>
<id>edcafddcb54e149af8d4135a346501dde802fb30</id>
<content type='text'>
am: 28cf96a921

Change-Id: I8278d22219c2159d413bcf66b10b0ca345988f49
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
am: 28cf96a921

Change-Id: I8278d22219c2159d413bcf66b10b0ca345988f49
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump metalava version am: 111f727f10</title>
<updated>2019-03-07T09:21:30+00:00</updated>
<author>
<name>Tor Norbye</name>
<email>tnorbye@google.com</email>
</author>
<published>2019-03-07T09:21:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=28cf96a9218dd0d69e91b753caee70b5bb06af21'/>
<id>28cf96a9218dd0d69e91b753caee70b5bb06af21</id>
<content type='text'>
am: 090a58cbeb

Change-Id: Ib9fb7ac850d52d6d0fd1c7ea8f17f9bd24096783
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
am: 090a58cbeb

Change-Id: Ib9fb7ac850d52d6d0fd1c7ea8f17f9bd24096783
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump metalava version</title>
<updated>2019-03-07T09:13:42+00:00</updated>
<author>
<name>Tor Norbye</name>
<email>tnorbye@google.com</email>
</author>
<published>2019-03-07T09:13:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=090a58cbebe90d2330c40fc7f5d62072360879cc'/>
<id>090a58cbebe90d2330c40fc7f5d62072360879cc</id>
<content type='text'>
am: 111f727f10

Change-Id: Ic66bb0af8500a48bcf21994c50b4dc70ab45ff7f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
am: 111f727f10

Change-Id: Ic66bb0af8500a48bcf21994c50b4dc70ab45ff7f
</pre>
</div>
</content>
</entry>
<entry>
<title>Snap for 5357520 from a0f64d2e2373f26c94dcf76743c755abd582cfd9 to qt-release</title>
<updated>2019-03-07T04:06:05+00:00</updated>
<author>
<name>android-build-team Robot</name>
<email>android-build-team-robot@google.com</email>
</author>
<published>2019-03-07T04:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/AOSP/platform_tools_metalava/commit/?id=810d01d7ded72ba187ef238bb54993b8c1c537a1'/>
<id>810d01d7ded72ba187ef238bb54993b8c1c537a1</id>
<content type='text'>
Change-Id: Iee08f1a3b87e5dd565f4ea0ec4f4d5230acb8a5b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Iee08f1a3b87e5dd565f4ea0ec4f4d5230acb8a5b
</pre>
</div>
</content>
</entry>
</feed>
