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

Self in type definitions (self_in_typedefs) #53324

Merged
merged 5 commits into from
Aug 18, 2018

Conversation

alexreg
Copy link
Contributor

@alexreg alexreg commented Aug 14, 2018

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 14, 2018
@rust-highfive

This comment has been minimized.

src/librustc_resolve/lib.rs Outdated Show resolved Hide resolved
src/librustc_resolve/lib.rs Outdated Show resolved Hide resolved
@rust-highfive

This comment has been minimized.

@rust-highfive

This comment has been minimized.

@alexreg
Copy link
Contributor Author

alexreg commented Aug 14, 2018

Err, is tidy broken here? That line definitely isn't longer than 100 chars.

@varkor
Copy link
Member

varkor commented Aug 14, 2018

@alexreg: I'm not sure about the 100 character message, but there's an issue with the diagnostic length:

error: description for error code E0411 contains a line longer than 80 characters.

@petrochenkov petrochenkov removed their assignment Aug 14, 2018
@alexreg
Copy link
Contributor Author

alexreg commented Aug 14, 2018

@varkor Yeah, I noticed that after I posted the above, but thanks!

@rust-highfive

This comment has been minimized.

@rust-highfive

This comment has been minimized.

@rust-highfive

This comment has been minimized.

@rust-highfive

This comment has been minimized.

@alexreg
Copy link
Contributor Author

alexreg commented Aug 15, 2018

@Centril Turns out having this feature for existential type is useless, since it prevents it resolving (endless cycle). Makes sense, once you think about it!

@Centril
Copy link
Contributor

Centril commented Aug 15, 2018

@alexreg leave it out ;)

@alexreg alexreg changed the title [WIP] Self in type definitions (self_in_typedefs) Self in type definitions (self_in_typedefs) Aug 15, 2018
@alexreg
Copy link
Contributor Author

alexreg commented Aug 15, 2018

All should be in order now! Ready for a review, @eddyb.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-5.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:49:30] ....................................................................................................
[00:49:32] ....................................................................................................
[00:49:34] ....................................................................................................
[00:49:36] ....................................................................................................
[00:49:39] ................................................F..........................................i........
[00:49:45] ....................................................................................................
[00:49:48] ....................................................................................................
[00:49:50] .................................i..................................................................
[00:49:53] ....................................................................................................
---
[00:50:51] ........................i...........................................................................
[00:50:55] ....................................................................................................
[00:50:57] ....................................................................................................
 0:03:12
[00:51:01] make: *** [check] Error 1
[00:51:01] Makefile:58: recipe for target 'check' failed
0c5-7ffe353a5700 kernel: [    0.338770] Initializing cgroup subsys hugetlb
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.339666] Initializing cgroup subsys pids
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.340464] CPU: Physical Processor ID: 0
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.341095] CPU: Processor Core ID: 0
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.342479] mce: CPU supports 32 MCE banks
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.343288] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.344239] Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.347496] Freeing SMP alternatives memory: 32K
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.357172] ftrace: allocating 32185 entries in 126 pages
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.410125] smpboot: APIC(0) Converting physical 0 to logical package 0
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.411146] smpboot: Max logical packages: 2
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.412387] x2apic enabled
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.414270] Switched APIC routing to physical x2apic.
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ff020a-4cde-b0c5-7ffe353a5700 kernel: [    0.583789] cpuidle: using governor menu
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.584722] PCCT header not found.
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.585288] ACPI: bus type PCI registered
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.585892] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.587022] PCI: Using configuration type 1 for base access
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.600816] ACPI: Added _OSI(Module Device)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.601844] ACPI: Added _OSI(Processor Device)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.602704] ACPI: Added _OSI(3.0 _SCP Extensions)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.603368] ACPI: Added _OSI(Processor Aggregator Device)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.606809] ACPI: Executed 2 blocks of module-level executable AML code
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.629828] ACPI: Interpreter enabled
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.630701] ACPI: (supports S0 S3 S4 S5)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.631496] ACPI: Using IOAPIC for interrupt routing
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.632371] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.662185] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.663273] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI]
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.664258] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.665326] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.667720] PCI host bridge to bus 0000:00
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.668407] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.669571] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.670505] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.671528] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window]
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    0.672543] pci_bus 0000:00: root bus resource [bus 00-ff]
Aug 15 03:-7ffe353a5700 kernel: [    3.071263] microcode: Microcode Update Driver: v2.01 <[email protected]>, Peter Oruba
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.073041] registered taskstats version 1
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.073696] Loading compiled-in X.509 certificates
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.075052] Loaded X.509 cert 'Build time autogenerated kernel key: 56232512f0584176d25dbc659499b922e518c1c1'
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.076572] zswap: loaded using pool lzo/zbud
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.079284] Key type trusted registered
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.083421] Key type encrypted registered
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.084104] ima: No TPM chip found, activating TPM-bypass!
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.085106] evm: HMAC attrs: 0x1
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.085906]   Magic number: 14:277:361
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.086575] acpi LNXCPU:c9: hash matches
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.087469] rtc_cmos 00:00: setting system clock to 2018-08-15 03:22:00 UTC (1534303320)
Aug 15 03:22:08 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [    3.088933] BIOS EDD facilnts: INFO Created user account asari.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Creating a new user account for bogdana.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Created user account bogdana.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Creating a new user account for konstantin.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Created user account konstantin.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Creating a new user account for carmen.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [   12.011576] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [   12.014732] Bridge firewalling registered
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [   12.023290] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Created user account carmen.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Creating a new user account for maria.
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [   12.099037] Initializing XFRM netlink socket
Aug 15 03:22:09 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 google-accounts: INFO Created user account maria.
Aug 15 03:22:09 travis-job-51b04a10is-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 (DSA)
Aug 15 03:22:39 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ec2: 256 f7:7a:cd:15:6b:51:6d:29:cd:8d:a9:14:de:d6:b1:86  root@travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 (ECDSA)
Aug 15 03:22:39 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ec2: 256 a0:91:0e:3c:fb:cf:7b:25:56:52:b5:10:d9:12:40:d1  root@travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 (ED25519)
Aug 15 03:22:39 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ec2: 2048 84:e3:82:a6:79:f7:10:d0:31:1e:a1:63:06:a6:84:22  root@travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 (RSA)
Aug 15 03:22:39 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ec2: -----END SSH HOST KEY FINGERPRINTS-----
Aug 15 03:22:39 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ec2: #############################################################
Aug 15 03:23:59 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  122.373236] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.453891] device veth53089f8 entered promiscuous mode
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.453986] docker0: port 1(veth53089f8) entered forwarding state
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.453999] docker0: port 1(veth53089f8) entered forwarding state
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.454674] docker0: port 1(veth53089f8) entered disabled state
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.551816] cgroup: docker-runc (4876) created nested cgroup for controller "memory" which has incomplete hierarchy support. Nested cgroups may change behavior in the future.
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.551818] cgroup: "memory" requires setting use_hierarchy to 1 on the root
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.618377] eth0: renamed from veth56203b4
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.659265] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.660398] docker0: port 1(veth53089f8) entered forwarding state
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.660422] docker0: port 1(veth53089f8) entered forwarding state
Aug 15 03:25:03 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 kernel: [  186.660450] IPv6: ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready
Aug 15 03:25:07 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ntpd[1883]: Listen normally on 5 docker0 fe80::1 UDP 123
Aug 15 03:25:07 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ntpd[1883]: Listen normally on 6 docker0 fe80::42:dbff:fe54:cea6 UDP 123
Aug 15 03:25:07 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ntpd[1883]: Listen normally on 7 docker0 fd9a:8454:6789:13f7::1 UDP 123
Aug 15 03:25:07 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ntpd[1883]: peers refreshed
Aug 15 03:25:07 travis-job-51b04a10-020a-4cde-b0c5-7ffe353a5700 ntpd[1883]: new interface(s) found: waking up resolver

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

src/librustc_resolve/lib.rs Outdated Show resolved Hide resolved
@@ -2968,7 +2990,12 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> {
if is_self_type(path, ns) {
__diagnostic_used!(E0411);
err.code(DiagnosticId::Error("E0411".into()));
err.span_label(span, "`Self` is only available in traits and impls");
let available_in = if this.session.features_untracked().self_in_typedefs {
"impls, traits, and type definitions"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order here changed, is that intentional?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is. I had accidentally deleted it before and rewritten it the wrong way round, which broke some UI tests. :-P So this fixes it.

@eddyb
Copy link
Member

eddyb commented Aug 18, 2018

@bors r+

@bors
Copy link
Contributor

bors commented Aug 18, 2018

📌 Commit 4e7d3f5 has been approved by eddyb

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 18, 2018
@bors
Copy link
Contributor

bors commented Aug 18, 2018

⌛ Testing commit 4e7d3f5 with merge 33b923f...

bors added a commit that referenced this pull request Aug 18, 2018
`Self` in type definitions (self_in_typedefs)

This implements the [`self_in_typedefs` feature](https://github.com/rust-lang/rfcs/blob/master/text/2300-self-in-typedefs.md) ([tracking issue 49303](#49303)).

r? @eddyb

CC @Centril
@bors
Copy link
Contributor

bors commented Aug 18, 2018

☀️ Test successful - status-appveyor, status-travis
Approved by: eddyb
Pushing 33b923f to master...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants