Commit Graph

367 Commits

Author SHA1 Message Date
Konstantin Shcheglov 41b3e0abcc Make 'content' required in ResourceProviderMixin.newFile()
Change-Id: Id697b0736b95a913c31247a66425027852f1ddc5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236800
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-14 17:31:48 +00:00
Konstantin Shcheglov 6de7ea7432 Don't remove overlays immediately, wait for the next watch event.
Change-Id: Ie3352bf70010de88874aea122d83a5533a00a1ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/235740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-14 17:21:28 +00:00
Konstantin Shcheglov 5fa65048c1 Use file_paths.pubspecYaml instead of 'pubspec.yaml' literal.
WDYT ?

Change-Id: I6677b2237e0558c74bb11073dcfb44d7b672323f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-10 19:03:55 +00:00
Konstantin Shcheglov 1531030b42 Stop using newDotPackagesFile() in analysis_server/.
Change-Id: Iaa4e8657ee1d5f115ab62177570aa662494b9d9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-09 23:56:15 +00:00
Konstantin Shcheglov 1693908268 Apply file changes between (not during) other operations.
This would be a breaking change, so for now it is disabled, but
the method `applyPendingFileChanges()` can be added, and the clients
will call it to be ready for the switching the flag.

Only clients that call methods like `changeFile` have to await applying
the file changes. Other clients can continue using synchronous
`currentSession`.

Change-Id: I0f8d4cc874f485776f611790f6c80fd7e07c8051
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236041
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-09 18:16:45 +00:00
Danny Tuppeny da5670c677 [analysis_server] Fix end locations of navigation regions for code sample links
Fixes https://github.com/Dart-Code/Dart-Code/issues/3867.

Change-Id: Icdfc93c1b03fdd4c40e3ea4563045d993cb50c32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236221
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-03-09 16:40:25 +00:00
Konstantin Shcheglov 601b5379a8 Tests for hover and enums.
Change-Id: I633d6aaf8e0ff425aeb4b461677d6aaff187f85f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234911
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-03-02 23:36:31 +00:00
Konstantin Shcheglov 2b9656a23e Tests analysis.occurrences for enums.
Change-Id: Ifd229093ab51ca2d93d9b6191fd1273b41a2de8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234448
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-26 00:16:12 +00:00
Konstantin Shcheglov 309941c101 Implement analysis.implemented for enums.
Change-Id: I166703b652eb341f18d4b9442acdfc341cd20170
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234446
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-25 23:34:32 +00:00
Konstantin Shcheglov a3cf4c1e0f Implement analysis.overrides for enums.
Change-Id: Ie84219ad88c2601dea974d20892c3fedb3065f00
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234445
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-25 22:35:32 +00:00
Konstantin Shcheglov 9ddd23109b Add more navigation tests for enums.
Change-Id: I1f037163ae8f2e06f1dca27f855c2440d79f9269
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234287
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-02-24 21:21:13 +00:00
Konstantin Shcheglov ffe69d8786 Test occurrences notification for super-formal parameters.
Bug: https://github.com/dart-lang/sdk/issues/48281
Change-Id: I137bf5976b9db9c0c511411abaed08fa59542d2b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234223
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-24 16:22:03 +00:00
Konstantin Shcheglov 96464ceb3a Test for navigation when named arguments anywhere.
Change-Id: I0ad0e8501b7f8297750b0767a61ba9039859b2a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233643
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-19 02:12:33 +00:00
Konstantin Shcheglov 24839d6123 Test for occurrences with named arguments anywhere.
Change-Id: I5f93602d7286d0437b7c27ee8c0145fe80b2901f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233645
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-19 02:12:30 +00:00
Konstantin Shcheglov d637f3591d Test for semantic highlighting with named arguments anywhere.
Change-Id: I44badd1284cc512615dfae727b9d674fee193812
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233647
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-19 01:56:29 +00:00
Konstantin Shcheglov b62949ea1d Semantic highlighting for enums.
Change-Id: Ib3e4aceec56b6bdd28b38a317c4c3981db87b7d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-11 18:50:57 +00:00
Konstantin Shcheglov d5269652d8 Remove 'index' from enum classes.
Change-Id: I7632aced8cde06c449e694c028d0e7fb2d3312df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232426
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-11 17:35:17 +00:00
Konstantin Shcheglov f204bf5ead Navigation for enum constants.
Change-Id: I47c420d29b857dc57d14854255c62e4db5458179
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232223
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-02-09 21:40:19 +00:00
Konstantin Shcheglov 540c053ca8 Add HighlightRegionType.EXTENSION
Change-Id: I375df19b8ee5f6570fcc7d440b9d71b148bcef73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230020
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-01-26 16:11:59 +00:00
Konstantin Shcheglov 06e9046e34 Issue 48074. Display inherited default value for super-parameters.
Bug: https://github.com/dart-lang/sdk/issues/48074
Change-Id: I964141c9b2a1ccf4a2d08d6bfff7675aa6df9d5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-01-25 01:54:27 +00:00
Konstantin Shcheglov 1b447a1335 Navigation support for super-formal parameters.
Change-Id: I8070b303ea4d7bce45afe63668f9ec85686dd1b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-01-18 17:53:25 +00:00
Konstantin Shcheglov a8c63a8773 Semantic highlighting for super-formal parameters.
Change-Id: Ib3a663c9bec7909451c082bcc8943df08339a35f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228380
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-01-17 00:11:24 +00:00
Danny Tuppeny 650b9627b7 [analysis_server] Rebuild analysis contexts if changes occur between creation and watchers being ready
See https://github.com/Dart-Code/Dart-Code/issues/3438.

Change-Id: I3ca038d8c878b118a465b6f230c62912d63990eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222763
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-01-15 00:18:41 +00:00
Sam Rawlins 44ecf4524d DAS: Remove unused createAnalysisOptionsFile
Change-Id: I03a452d6b93d2d25e1da9cabc1c120ebe468562d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216501
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-10-13 01:52:25 +00:00
Konstantin Shcheglov 7862bb6863 Test for getHover() and constructor/function references.
Change-Id: Ibe0d812815e087e04933526841614f535a86d2f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-10-06 18:52:23 +00:00
Konstantin Shcheglov 9826867fd0 Remove the macro prototype.
Our understanding improved, and out approach changed significantly.
So, this existing implementation is different enough to be not
very useful anymore. And it gets in my way while doing other changes.

Change-Id: If31c20a0a6f86c01a58d16390a989f77962396b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-09-27 23:07:53 +00:00
Konstantin Shcheglov 06f0ecb8e8 Add more HighlightRegionType.xyz_TEAR_OFF
Change-Id: I357d621439c68b77545bdd01719310c60684e1f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212602
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-09-07 18:31:03 +00:00
Konstantin Shcheglov 1957af707c Use CONSTRUCTOR_TEAR_OFF for ConstructorReference highlighting.
Change-Id: Iee9731ef6e273ae89bc5328d6941aa8ddd530562
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212488
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-09-07 16:08:02 +00:00
Konstantin Shcheglov d0935c2c85 Tests for FunctionReference in navigation.
Change-Id: I677197f6a27c3d20589fe612c4f5c84c5c5e2637
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212485
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-09-03 20:14:49 +00:00
Konstantin Shcheglov f67d4b368c Update navigation notification to support ConstructorReference.
Change-Id: I815941304f8dd131998f5ae527f21077ce5324df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212482
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-09-03 18:53:57 +00:00
Danny Tuppeny 88a41363bc [analyzer] Support generic type aliases in available declarations
Fixes https://github.com/dart-lang/sdk/issues/46409.

Change-Id: I16fe47f52254956e58cb5f034c49e1d8fa4c22c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/204403
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-08-31 17:35:04 +00:00
Konstantin Shcheglov 892b902d11 Improve macro code formatting.
Change-Id: I3c9f1ddaf6b5562a10b767c2f5d7297a5ed655e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210421
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-08-17 20:23:42 +00:00
Konstantin Shcheglov fd2a3cdc3a Support navigation to macro-generated elements.
We use previously added `CompilationUnitElementImpl.macroGeneratedContent`
to access the current combined content.

In order to make this work with current IntelliJ plugin, without
adding new protocols, we store the generated code into a new file,
and locations for macro-generated elements are in this file.

Locations for elements that are not macro-generated are still
in the source file.

We use `ElementLocationProvider` to separate writing to the file
system, and do this only in DAS.

Change-Id: Ib156c67b0bf1f3474eb06584e76aa532abd597d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-08-17 16:14:02 +00:00
Danny Tuppeny 0de7e86c2a [analysis_server] User outer-most matching node in getNavigation to fix constructor navigation
Fixes https://github.com/dart-lang/sdk/issues/46725.

Change-Id: Ib4f3ec5fe776ad694a7ce7019591a73aab2c4257
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208647
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-08-05 15:59:50 +00:00
Brian Wilkerson 69dd787ff0 Cleanup invalid declarations of main, part 1
The purpose of this CL is to clean up test code that references `main`
in a way that will be invalid when the tests are converted to analyze
the test code under null safety by default. This is the first of three
such CLs.

In all three I only touched test files that contained an invalid use of
`main`, but in any file I touched I removed any use of `main` where the
name of the function/method was not critical to the test.

Change-Id: Ib753302a4c3ffc7eb5f248e9c6000e80dc77fca9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205062
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-28 18:13:24 +00:00
Danny Tuppeny f4b4882f48 [analysis_server] Add highlights/semantic token support for conditional imports/exports
Fixes https://github.com/Dart-Code/Dart-Code/issues/3395.

Change-Id: Ic5b9adbb4f92e5fd59c6f09dddd1e0b1b827d5c0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-15 16:29:12 +00:00
Danny Tuppeny d75becf4ac [analysis_server] Enable multiline element descriptions for all hovers
Change-Id: I5521cb09172b5eee639a4d3e9e21eb5871d6a86f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202971
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-13 15:50:32 +00:00
Konstantin Shcheglov 810c34a076 Use Element.nonSynthetic, fix enum constant navigation.
Change-Id: Id48a89d3d4f000e4a9b6b9022ce7158f6630d9d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-06-10 18:27:20 +00:00
Konstantin Shcheglov fe35fdd2c5 Use newAnalysisOptionsYamlFile() where possible.
Change-Id: I4b550cac941b6686738722cbcd3d04dfaabe5cdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203081
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-06-09 23:57:29 +00:00
Konstantin Shcheglov faa0528eef Use newDotPackagesFile() where possible.
Change-Id: I74fc911e7da7ebfb9e1341791258d8c9a40d7324
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203020
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-06-09 18:07:12 +00:00
Devon Carew 1acb443145 [analyzer] cleanup references to the .analysis_options file
Change-Id: I08f491b06925a420069019b77177839e8310843c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202868
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-06-09 15:52:31 +00:00
Danny Tuppeny eb2836872a [analyzer] Check conditional directive URIs are within the requested range
Change-Id: Icec5f864484a67dc3a64ace06704d8266d88c12b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202772
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-08 20:32:09 +00:00
Brian Wilkerson 18446a6560 References to synthetic fields in enums should navigate to the declaration of the enum
Closes: https://github.com/dart-lang/sdk/issues/46253
Change-Id: Id38f63cb8e32c22d4fe70a5aba675c7c0067bbd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202560
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-06-04 23:14:07 +00:00
Brian Wilkerson 54fc28ec25 Migrate remaining unblocked tests
Change-Id: I30e3c22db7df6e78be88125f20eea2dce054f446
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195860
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-19 15:57:38 +00:00
Brian Wilkerson 02d50e7ebf Migrate several test classes
Change-Id: I7477d5c42a8c2f953c51aca7ab6fff8b6fc930f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195840
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-19 00:38:19 +00:00
Konstantin Shcheglov 68edc773dc Check in getHover() that the result is valid.
Change-Id: I7f97c2ba57500dc540631d678e1bf6aa8a785e65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195044
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-04-12 22:09:46 +00:00
Konstantin Shcheglov a8590a287e Remove WithNonFunctionTypeAliasesMixin from analysis_server tests, enabled by default, update tests.
https://dart-review.googlesource.com/c/sdk/+/192948 was landed.

Change-Id: If5c175af47c9b324d6ca06597a4ebc3e3541cf85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193962
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 05:19:42 +00:00
Konstantin Shcheglov e97f1bdbf0 Switch analysis_server to language 2.12, so null safety, but opt-out files.
This should allow doing partial migration, specifically protocol files,
which are imported by other libraries, but are a small library cycle
that does not import much outside of it.

Change-Id: I904c05d6d5b444ee9a9dbd1f7ada12aabdcc5165
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193583
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-30 23:39:37 +00:00
Konstantin Shcheglov 114d7b980a Migrate analyzer_plugin package to null safety
Bug: https://github.com/dart-lang/sdk/issues/45236
Change-Id: I01175a2b2b1eb3ce6cdf30ade794d8186c6e8ead
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191622
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-30 00:29:37 +00:00
Konstantin Shcheglov 92130a010e Tests for DAS services and generic annotations.
Change-Id: I063c78ae778366e60bb0d4aca55c4e7fd70f3d52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193091
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-25 23:38:24 +00:00