aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
Commit message (Collapse)AuthorAgeFilesLines
* cache chalk queriesAleksey Kladov2019-06-262-194/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a significant speedup, because chalk will call these functions several times even withing a single revision. The only significant one here is `impl_data`, but I figured it might be good to cache others just for consistency. The results I get are: Before: from scratch: 16.081457952s no change: 15.846493ms trivial change: 352.95592ms comment change: 361.998408ms const change: 457.629212ms After: from scratch: 14.910610278s no change: 14.934647ms trivial change: 85.633023ms comment change: 96.433023ms const change: 171.543296ms Seems like a nice win!
* Add commentShotaro Yamada2019-06-251-6/+8
|
* Method resolution for slicesShotaro Yamada2019-06-241-25/+36
|
* rename XSignature -> XDataAleksey Kladov2019-06-183-25/+23
|
* Add test for autoderef infinite recursionFlorian Diebold2019-06-161-0/+25
|
* Simplifications / cleanup from reviewFlorian Diebold2019-06-163-3/+4
|
* Some more cleanupFlorian Diebold2019-06-151-4/+4
|
* Check that Deref has the right number of parametersFlorian Diebold2019-06-151-2/+7
|
* Somewhat handle variables in the derefed type, and add another testFlorian Diebold2019-06-152-5/+50
|
* Implement * operation using Deref traitFlorian Diebold2019-06-151-3/+5
|
* Implement autoderef using the Deref traitFlorian Diebold2019-06-154-33/+84
| | | | - add support for other lang item targets, since we need the Deref lang item
* Add basic infrastructure for assoc type projectionFlorian Diebold2019-06-153-10/+135
|
* Add test for DerefFlorian Diebold2019-06-151-0/+29
|
* check for cancellation when executing queriesAleksey Kladov2019-06-122-2/+0
| | | | | | | Note that we can't just remove CheckCanceled trait altogether: sometimes it's useful to check for cancellation while the query is running! We do this, for example, in the name resolution fixed-point loop.
* remove inherent source implsAleksey Kladov2019-06-111-1/+1
|
* use Source for FunctionAleksey Kladov2019-06-111-1/+1
|
* remove some hacks from nameresolution for macrosAleksey Kladov2019-06-081-2/+4
|
* somewhat better nameAleksey Kladov2019-06-082-19/+22
|
* [#1083] Try block syntax: fix testsAndrey Tkachenko2019-06-061-1/+0
|
* [#1083] Try block syntaxAndrey Tkachenko2019-06-061-0/+6
|
* Fix clippy::or_fun_callAlan Du2019-06-041-1/+1
|
* Fix clippy::identity_conversionAlan Du2019-06-041-3/+3
|
* Fix clippy::into_iter_on_refAlan Du2019-06-041-1/+1
|
* Fix clippy::single_matchAlan Du2019-06-043-47/+33
|
* don't poison mutex around chalkAleksey Kladov2019-06-011-2/+3
| | | | | | | | | We use panics for cancellation, so we could trigger panic while holding the solver. std::sync::Mutex will be poisoned as a result, which and all further attempts to use solver (from other threads) will panic as well. This commit switches to parking_lot::Mutex which just unlocks on panic.
* add tests for primitive typesAleksey Kladov2019-05-303-30/+19
|
* add built-in types to scopesAleksey Kladov2019-05-301-16/+0
|
* add ModuleDef::BuiltInTypeAleksey Kladov2019-05-303-6/+45
|
* add cacellation checks to expensive queriesAleksey Kladov2019-05-291-0/+1
|
* fix syntax errors in testsAleksey Kladov2019-05-281-112/+128
|
* add union to code_modelAleksey Kladov2019-05-232-10/+21
|
* Fix crash with int vars in canonicalizationFlorian Diebold2019-05-211-1/+6
|
* Use fuel branch for ChalkFlorian Diebold2019-05-211-1/+1
| | | | This makes sure we don't take too long in trait solving.
* re-enable chalkAleksey Kladov2019-05-211-17/+16
|
* publish gen_lsp_server 0.2Aleksey Kladov2019-05-211-16/+17
|
* profile type inferenceAleksey Kladov2019-05-211-1/+3
|
* profile implements queryAleksey Kladov2019-05-211-0/+2
|
* add _query to query functionsAleksey Kladov2019-05-211-3/+3
|
* remove minor code duplicationAleksey Kladov2019-05-201-18/+14
|
* Use normal iteration instead of walk_mutEdwin Cheng2019-05-201-8/+5
|
* Add infer for generic default typeEdwin Cheng2019-05-192-13/+75
|
* Merge #1271bors[bot]2019-05-131-1/+1
|\ | | | | | | | | | | | | | | 1271: make AstId untyped r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * make AstId untypedAleksey Kladov2019-05-131-1/+1
| |
* | Increase Chalk solver max_size back to 4Florian Diebold2019-05-131-1/+1
|/ | | | | | Reducing it to 2 was just a failed attempt to see whether that would help fix some slow cases; in fact, it can create new slow cases by replacing concrete types by variables.
* Use traits from prelude for method resolutionFlorian Diebold2019-05-122-1/+30
|
* Blacklist some traits from being considered in where clausesFlorian Diebold2019-05-122-7/+34
| | | | | | | For Send/Sync/Sized, we don't handle auto traits correctly yet and because they have a lot of impls, they can easily lead to slowdowns. In the case of Fn/FnMut/FnOnce, we don't parse the special Fn notation correctly yet and don't handle closures yet, so we are very unlikely to find an impl.
* Fix impl blocks with unresolved target trait being treated as inherent implsFlorian Diebold2019-05-121-5/+7
|
* Add support for inline boundsFlorian Diebold2019-05-111-0/+33
| | | | E.g. impl<T: Clone> Foo for T.
* Handle auto traits & negative implsFlorian Diebold2019-05-111-5/+19
| | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct.
* Reduce Chalk max_size parameter, add test for slow caseFlorian Diebold2019-05-113-3/+42
|