Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature renamed to extension type #2142

Closed
eernstg opened this issue Jul 20, 2023 · 8 comments
Closed

Feature renamed to extension type #2142

eernstg opened this issue Jul 20, 2023 · 8 comments
Assignees
Labels
type-enhancement A request for a change that isn't a bug

Comments

@eernstg
Copy link
Member

eernstg commented Jul 20, 2023

The language team just committed to the rename: The 'inline class' feature has been renamed as the 'extension type' feature. I think it would be helpful for everybody to have one or more PRs performing renaming of directories, test names, @description sections, etc.

The only exception is the experiment flag: This flag will go away as soon as the feature has been released, so it might as well stay the same.

@sgrekhov sgrekhov self-assigned this Jul 20, 2023
@sgrekhov sgrekhov added the type-enhancement A request for a change that isn't a bug label Jul 20, 2023
@eernstg
Copy link
Member Author

eernstg commented Jul 20, 2023

Some properties of extension types are different from the corresponding properties of inline classes, so we'll need some additional PRs about the expected behavior.

In particular, there is no instance variable declaration, and the representation name and type are specified as (<type> <identifier>) in the declaration header (the meaning of which is the same as final <type> <identifier>; in the declaration body plus a constructor that does this.<identifier> to initialize it).

Another new thing: It is allowed for an extension type to declare that it implements .... T .... for some T that aren't extension types.

But let's look into that later on, for now we just need to stop expecting an error for things like extension type E(int i) implements int {}.

@eernstg
Copy link
Member Author

eernstg commented Jul 25, 2023

Just confirmed with @johnniwinther: The flag that enables the extension type feature will be inline-class, so that particular bit escapes the rename. Other than that, the phrase 'inline class' and terms like 'inline-class' should not occur anywhere.

sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 25, 2023
eernstg pushed a commit that referenced this issue Jul 25, 2023
Add syntax tests for extension type declarations.
@eernstg
Copy link
Member Author

eernstg commented Jul 25, 2023

Perhaps this could be done in two steps, such that the diffs will be informative: First move all affected tests from /inline-classes/ to /extension-types/ (I probably got the directory name somewhat wrong, but the idea should be clear), and then change the tests to use the new syntax. Or vice versa, whatever is most convenient.

If we do both things in the same PR then I'm afraid it's going to look like deleting a bunch of libraries and adding a bunch of different libraries, with no connection between the two.

@sgrekhov
Copy link
Contributor

Why do we need a connection between obsolete inline classes tests and the new extension types ones? Why not to simply have new tests first, and then delete the old ones? Otherwise there will be mess with renaming, large diffs etc

@eernstg
Copy link
Member Author

eernstg commented Jul 25, 2023

I thought the "move then edit" approach would yield the smallest diffs:

If there is no connection then the diff will be 2 times everything (one for delete old library, one for add new library, no connection), and it would be necessary to start from scratch with every test. It's very easy to skip over the 'delete file' changes, but this is still 1 times everything.

But with "move then edit" we'd only need to consider the changes in every test. So there would be lots of situations where something like inline class V { is changed to extension type V(int i) {, and a couple of lines are deleted below that (an instance variable and a constructor), and the rest of the declaration would presumably be unchanged. Similarly, lots of usages (call sites, type declarations) could remain unchanged.

@sgrekhov
Copy link
Contributor

Ok, I understand your idea. Ok, let's try to do the next PR this way, but I suggest "edit then move". Some tests needs to be deleted, some added, some reordered. So, first, "edit" that is changing an exising tests and adding new ones, then "move". That is moving, renaming, reordering and deleting unnecessary tests

@eernstg
Copy link
Member Author

eernstg commented Jul 25, 2023

Sounds good, thanks!

sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 26, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 28, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 28, 2023
eernstg pushed a commit that referenced this issue Jul 28, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 28, 2023
eernstg pushed a commit that referenced this issue Jul 28, 2023
…on type tests (#2154)

Change dynamic semantics member invocation tests to be extension type tests
copybara-service bot pushed a commit to dart-lang/sdk that referenced this issue Jul 31, 2023
2023-07-28 sgrekhov22@gmail.com dart-lang/co19#2142. Fix typo (dart-lang/co19#2155)
2023-07-26 sgrekhov22@gmail.com dart-lang/co19#2149. Fix new errors due to changes with the constant evaluator (dart-lang/co19#2152)
2023-07-26 sgrekhov22@gmail.com dart-lang/co19#2145. Add more tests for Variable (dart-lang/co19#2146)
2023-07-25 sgrekhov22@gmail.com dart-lang/co19#2142. Add syntax tests (dart-lang/co19#2148)

Change-Id: I6ee222b74fc092d93a1b76d35d89a008a97056be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316590
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: William Hesse <whesse@google.com>
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 31, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Jul 31, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 1, 2023
chloestefantsova pushed a commit that referenced this issue Aug 2, 2023
… tests. Part 1 (#2157)

* #2142. Change static analysis inline class tests to be extension type tests. Part 1

* #2142. Change static analysis inline class tests to be extension type tests. Part 1, more tests

* Implement review recommendations
chloestefantsova pushed a commit that referenced this issue Aug 2, 2023
…sts. Part 2 (#2161)

* #2142. Turn static analysis inline classes tests to extension type tests. Part 2

* Turn static analysis inline classes tests to extension type tests. Final part

* Implement review recommendations

* Replace forgotten `inline class`
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 2, 2023
copybara-service bot pushed a commit to dart-lang/sdk that referenced this issue Aug 4, 2023
2023-08-03 sgrekhov22@gmail.com dart-lang/co19#2142. Rename and move static analysis extension type tests (dart-lang/co19#2164)
2023-08-03 sgrekhov22@gmail.com dart-lang/co19#2142. Add more static analysis inline class tests (dart-lang/co19#2163)
2023-08-02 sgrekhov22@gmail.com dart-lang/co19#2142. Turn static analysis inline classes tests to extension type tests. Part 2 (dart-lang/co19#2161)
2023-08-02 sgrekhov22@gmail.com dart-lang/co19#2142. Move dynamic semantics member invocation tests to Extension-types folder (dart-lang/co19#2156)
2023-08-02 sgrekhov22@gmail.com dart-lang/co19#2142. Change static analysis inline class tests to be extension type tests. Part 1 (dart-lang/co19#2157)
2023-08-01 49699333+dependabot[bot]@users.noreply.github.com Bump actions/setup-java from 3.11.0 to 3.12.0 (dart-lang/co19#2160)
2023-07-28 sgrekhov22@gmail.com dart-lang/co19#2142. Change dynamic semantics member invocation tests to be extension type tests (dart-lang/co19#2154)

Change-Id: Icfb257200f9922971390c96bf8fb51093c4becfe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318060
Reviewed-by: Alexander Thomas <athom@google.com>
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 7, 2023
chloestefantsova pushed a commit that referenced this issue Aug 8, 2023
* #2142. Add more static analysis tests

* Fix static_analysis_extension_types_A02_t01.dart test
eernstg pushed a commit that referenced this issue Aug 9, 2023
… type tests (#2150)

Change static analysis member invocation tests to be extension type tests.
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 10, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 10, 2023
eernstg pushed a commit that referenced this issue Aug 10, 2023
…#2170)

Change composing inline class tests to be extension type tests
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 11, 2023
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 11, 2023
eernstg pushed a commit that referenced this issue Aug 11, 2023
Rename and move tests to Extension type dir. Add missing brace end in a test.
eernstg pushed a commit that referenced this issue Aug 11, 2023
…s dir (#2187)

Move static analysis member invocation tests to Extension types dir
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 15, 2023
copybara-service bot pushed a commit to dart-lang/sdk that referenced this issue Aug 16, 2023
2023-08-16 sgrekhov22@gmail.com Fixes dart-lang/co19#2211. Fix roll failures (dart-lang/co19#2212)
2023-08-16 sgrekhov22@gmail.com dart-lang/co19#2142. Add more dynamic semantics and member invocation tests (dart-lang/co19#2210)
2023-08-15 sgrekhov22@gmail.com dart-lang/co19#2142. Delete obsolete Inline-classes tests (dart-lang/co19#2209)
2023-08-14 sgrekhov22@gmail.com dart-lang/co19#2207. Fix roll failures (dart-lang/co19#2208)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2195. Fix typos and a runtime error in static_analysis_member_invocation_A07_t01.dart (dart-lang/co19#2204)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2196. Expect additional error in syntax_A04_t01.dart (dart-lang/co19#2205)
2023-08-14 sgrekhov22@gmail.com dart-lang/co19#2142. Move and rename dynamic semantics extension type tests (dart-lang/co19#2206)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2190. Fix representation dependency in static_analysis_extension_types_A19_t01.dart (dart-lang/co19#2198)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2194. Fix typo in static_analysis_extension_types_A21_t06.dart (dart-lang/co19#2203)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2191. Fix typos in static_analysis_extension_types_A21_t01.dart (dart-lang/co19#2199)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#2189. Fix typos in extension types tests (dart-lang/co19#2200)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#21892. Fix typo in static_analysis_extension_types_A21_t02.dart (dart-lang/co19#2201)
2023-08-14 sgrekhov22@gmail.com Fixes dart-lang/co19#21892. Fix typo in static_analysis_extension_types_A21_t05.dart (dart-lang/co19#2202)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2172. Fix error expectations in static_analysis_extension_types_A02_t02.dart (dart-lang/co19#2180)
2023-08-11 sgrekhov22@gmail.com dart-lang/co19#2142. Change dynamic semantics inline class tests to be extension type tests (dart-lang/co19#2188)
2023-08-11 sgrekhov22@gmail.com dart-lang/co19#2142. Move static analysis member invocation tests to Extension types dir (dart-lang/co19#2187)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2174. Add missing import (dart-lang/co19#2182)
2023-08-11 sgrekhov22@gmail.com dart-lang/co19#2142. Rename and move tests to Extension type dir (dart-lang/co19#2186)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2175. Fix tests that check extension types implementing enumerated types (dart-lang/co19#2183)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2176. Fix unintended error in static_analysis_extension_types_A11_t01.dart (dart-lang/co19#2184)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2177. Fix typo in static_analysis_extension_types_A16_t05.dart (dart-lang/co19#2185)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2173. Fix tests checking use of await for extension types (dart-lang/co19#2181)
2023-08-11 sgrekhov22@gmail.com Fixes dart-lang/co19#2171. Fix typos, adjust error expectations (dart-lang/co19#2179)
2023-08-10 sgrekhov22@gmail.com dart-lang/co19#2142. Change composing inline class tests to be extension type tests (dart-lang/co19#2170)
2023-08-10 sgrekhov22@gmail.com Fixes dart-lang/co19#2167. Fix typo in static_analysis_extension_types_A17_t01.dart (dart-lang/co19#2168)
2023-08-10 sgrekhov22@gmail.com Fixes dart-lang/co19#2139. Add generator functions element type tests (dart-lang/co19#2153)
2023-08-09 sgrekhov22@gmail.com dart-lang/co19#2142. Change static analysis member invocation tests to be extension type tests (dart-lang/co19#2150)
2023-08-08 sgrekhov22@gmail.com dart-lang/co19#2142. Add more static analysis of extension types tests (dart-lang/co19#2166)
2023-08-08 sgrekhov22@gmail.com dart-lang/co19#2142. Add more static analysis tests (dart-lang/co19#2165)

Change-Id: Ib1f0a9a1f2615b9f9783b1d7fa1b60c4d6c0389c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321140
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
sgrekhov added a commit to sgrekhov/co19 that referenced this issue Aug 17, 2023
eernstg pushed a commit that referenced this issue Aug 18, 2023
Add Subtyping tests for extension types. Also remove trailing whitespaces (which changes almost every generated file).
@sgrekhov
Copy link
Contributor

All inline classes tests transformed to extension type tests. Go on with extension type tests as part of #1400

copybara-service bot pushed a commit to dart-lang/sdk that referenced this issue Aug 25, 2023
2023-08-25 sgrekhov22@gmail.com Fixes dart-lang/co19#2236. Expect a secondary error for CFE in syntax_A08_t03.dart (dart-lang/co19#2237)
2023-08-24 sgrekhov22@gmail.com dart-lang/co19#2232. Fix secondary errors in not_a_constant_in_superclass_t02.dart (dart-lang/co19#2233)
2023-08-24 sgrekhov22@gmail.com Fixes dart-lang/co19#2230. Fix roll failures (dart-lang/co19#2231)
2023-08-23 sgrekhov22@gmail.com Fixes dart-lang/co19#2228. Fix syntax error in static_analysis_extension_types_A10_t08.dart (dart-lang/co19#2229)
2023-08-23 sgrekhov22@gmail.com dart-lang/co19#1400. Extension types subtyping tests. Resolve name conflict, add missing tests (dart-lang/co19#2227)
2023-08-23 sgrekhov22@gmail.com dart-lang/co19#1400. Add tests for external members, covariant parameters, nullable supertypes (dart-lang/co19#2225)
2023-08-23 sgrekhov22@gmail.com dart-lang/co19#2217. Add tests for calculating of the least upper bound for extension types (dart-lang/co19#2223)
2023-08-22 sgrekhov22@gmail.com Fixes dart-lang/co19#2224. Remove excessive error expectation for CFE (dart-lang/co19#2226)
2023-08-21 sgrekhov22@gmail.com Fixes dart-lang/co19#2221. Replace inline classes by extension types (dart-lang/co19#2222)
2023-08-21 sgrekhov22@gmail.com Fixes dart-lang/co19#2219. Replace `inline class` by `extension type` in test description (dart-lang/co19#2220)
2023-08-18 sgrekhov22@gmail.com dart-lang/co19#2142. Add Subtyping tests for extension types (dart-lang/co19#2215)
2023-08-18 sgrekhov22@gmail.com Fixes dart-lang/co19#2216. Add test for extension type abstract members (dart-lang/co19#2218)
2023-08-17 sgrekhov22@gmail.com Fixes dart-lang/co19#2213. Fix stack trace comparison (dart-lang/co19#2214)

Change-Id: I009f43878130f934fc6c2eea3368f9763c94e7a5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/322660
Reviewed-by: Alexander Thomas <athom@google.com>
sgrekhov added a commit to sgrekhov/co19 that referenced this issue May 7, 2024
eernstg pushed a commit that referenced this issue May 7, 2024
…ame conflict (#2642)

Add tests checking type parameter vs representation variable name conflict
copybara-service bot pushed a commit to dart-lang/sdk that referenced this issue May 13, 2024
2024-05-10 sgrekhov22@gmail.com dart-lang/co19#2641. Experimental flag renamed (dart-lang/co19#2655)
2024-05-10 sgrekhov22@gmail.com dart-lang/co19#2641. Add more test cases to the existing wildcard tests (dart-lang/co19#2654)
2024-05-10 sgrekhov22@gmail.com dart-lang/co19#2643. Remove some of 2.6 libraries, update/remove tests using them (dart-lang/co19#2650)
2024-05-08 sgrekhov22@gmail.com dart-lang/co19#2643. Remove more legacy tests from LanguageFeatures/nnbd/weak/overriding (dart-lang/co19#2648)
2024-05-08 sgrekhov22@gmail.com dart-lang/co19#2643. Remove tests checking exports from 2.6 libraries (dart-lang/co19#2651)
2024-05-08 sgrekhov22@gmail.com dart-lang/co19#2643. Remove legacy types from subtyping tests (dart-lang/co19#2652)
2024-05-08 sgrekhov22@gmail.com dart-lang/co19#2641. Add experimental flag to wildcards tests (dart-lang/co19#2653)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2643. Remove more legacy tests from LanguageFeatures/nnbd/weak/overriding (dart-lang/co19#2647)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2643. Remove legacy tests from LanguageFeatures/Generic-functions-as-type-args (dart-lang/co19#2645)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2631. Add tests checking access to local declaration named `_` (dart-lang/co19#2639)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2643. Remove legacy tests from TypeSystem/type-normalization (dart-lang/co19#2646)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2643. Remove override checking tests in case a legacy class extending an opted-in class (dart-lang/co19#2644)
2024-05-07 sgrekhov22@gmail.com Fixes dart-lang/co19#2638. Add extension methods test for type aliases (dart-lang/co19#2640)
2024-05-07 sgrekhov22@gmail.com dart-lang/co19#2142. Add tests checking type parameter vs representation variable name conflict (dart-lang/co19#2642)
2024-05-03 devoncarew@google.com blast_repo fixes (dart-lang/co19#2637)

Change-Id: I3f9f18065b555634b621100bdc375b40a75539cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365821
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-enhancement A request for a change that isn't a bug
Projects
None yet
Development

No branches or pull requests

2 participants