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

Ignore incompleteCode flag #1630

Merged
merged 8 commits into from
Dec 1, 2019
135 changes: 78 additions & 57 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,145 +2,147 @@

## Table of Contents

* [v11.4.0](#v1140)
* [v11.5.0](#v1150)
* [Enhancements](#enhancements)
* [v11.3.0](#v1130)
* [v11.4.0](#v1140)
* [Enhancements](#enhancements-1)
* [v11.3.0](#v1130)
* [Enhancements](#enhancements-2)
* [Bug Fixes](#bug-fixes)
* [v11.2.0](#v1120)
* [Enhancements](#enhancements-2)
* [Enhancements](#enhancements-3)
* [Bug Fixes](#bug-fixes-1)
* [v11.1.0](#v1110)
* [Enhancements](#enhancements-3)
* [Enhancements](#enhancements-4)
* [Bug Fixes](#bug-fixes-2)
* [v11.0.1](#v1101)
* [Bug Fixes](#bug-fixes-3)
* [v11.0.0](#v1100)
* [Enhancements](#enhancements-4)
* [Enhancements](#enhancements-5)
* [Bug Fixes](#bug-fixes-4)
* [Incompatible Changes](#incompatible-changes)
* [v10.6.0](#v1060)
* [Enhancements](#enhancements-5)
* [Enhancements](#enhancements-6)
* [Bug Fixes](#bug-fixes-5)
* [v10.5.1](#v1051)
* [Bug Fixes](#bug-fixes-6)
* [v10.5.0](#v1050)
* [Enhancements](#enhancements-6)
* [Enhancements](#enhancements-7)
* [Bug Fixes](#bug-fixes-7)
* [v10.4.0](#v1040)
* [Enhancements](#enhancements-7)
* [Enhancements](#enhancements-8)
* [Bug Fixes](#bug-fixes-8)
* [v10.3.0](#v1030)
* [Enhancements](#enhancements-8)
* [Enhancements](#enhancements-9)
* [Bug Fixes](#bug-fixes-9)
* [v10.2.0](#v1020)
* [Enhancements](#enhancements-9)
* [Enhancements](#enhancements-10)
* [Bug Fixes](#bug-fixes-10)
* [v10.1.0](#v1010)
* [Enhancements](#enhancements-10)
* [Enhancements](#enhancements-11)
* [Bug Fixes](#bug-fixes-11)
* [v10.0.1](#v1001)
* [Bug Fixes](#bug-fixes-12)
* [v10.0.0](#v1000)
* [Enhancements](#enhancements-11)
* [Enhancements](#enhancements-12)
* [Bug Fixes](#bug-fixes-13)
* [Incompatible Changes](#incompatible-changes-1)
* [v9.0.0](#v900)
* [Enhancements](#enhancements-12)
* [Enhancements](#enhancements-13)
* [Bug Fixes](#bug-fixes-14)
* [Incompatible Changs](#incompatible-changs)
* [v8.1.0](#v810)
* [Enhancements](#enhancements-13)
* [Enhancements](#enhancements-14)
* [Bug Fixes](#bug-fixes-15)
* [v8.0.0](#v800)
* [Enhancements](#enhancements-14)
* [Enhancements](#enhancements-15)
* [Bug Fixes](#bug-fixes-16)
* [Incompatible Changes](#incompatible-changes-2)
* [v7.5.0](#v750)
* [Enhancements](#enhancements-15)
* [Enhancements](#enhancements-16)
* [Bug Fixes](#bug-fixes-17)
* [v7.4.0](#v740)
* [Enhancements](#enhancements-16)
* [Enhancements](#enhancements-17)
* [Bug Fixes](#bug-fixes-18)
* [v7.3.0](#v730)
* [Enhancements](#enhancements-17)
* [Enhancements](#enhancements-18)
* [Bug Fixes](#bug-fixes-19)
* [v7.2.1](#v721)
* [Bug Fixes](#bug-fixes-20)
* [v7.2.0](#v720)
* [Enhancements](#enhancements-18)
* [Enhancements](#enhancements-19)
* [Bug Fixes](#bug-fixes-21)
* [v7.1.0](#v710)
* [Enhancements](#enhancements-19)
* [Enhancements](#enhancements-20)
* [Bug Fixes](#bug-fixes-22)
* [v7.0.0](#v700)
* [Enhancements](#enhancements-20)
* [Enhancements](#enhancements-21)
* [Bug Fixes](#bug-fixes-23)
* [Incompatible Changes](#incompatible-changes-3)
* [v6.7.0](#v670)
* [Enhancements](#enhancements-21)
* [Enhancements](#enhancements-22)
* [Bug Fixes](#bug-fixes-24)
* [v6.6.0](#v660)
* [Enhancements](#enhancements-22)
* [Enhancements](#enhancements-23)
* [Bug Fixes](#bug-fixes-25)
* [v6.5.1](#v651)
* [Bug Fixes](#bug-fixes-26)
* [v6.5.0](#v650)
* [Enhancements](#enhancements-23)
* [Enhancements](#enhancements-24)
* [Bug Fixes](#bug-fixes-27)
* [v6.4.0](#v640)
* [Enhancements](#enhancements-24)
* [Enhancements](#enhancements-25)
* [Bug Fixes](#bug-fixes-28)
* [v6.3.0](#v630)
* [Enhancements](#enhancements-25)
* [Enhancements](#enhancements-26)
* [Bug Fixes](#bug-fixes-29)
* [v6.2.0](#v620)
* [Enhancements](#enhancements-26)
* [Enhancements](#enhancements-27)
* [Bug Fixes](#bug-fixes-30)
* [v6.1.1](#v611)
* [Bug Fixes](#bug-fixes-31)
* [v6.1.0](#v610)
* [Enhancements](#enhancements-27)
* [Enhancements](#enhancements-28)
* [Bug Fixes](#bug-fixes-32)
* [v6.0.0](#v600)
* [Enhancements](#enhancements-28)
* [Enhancements](#enhancements-29)
* [Bug Fixes](#bug-fixes-33)
* [Incompatible Changes](#incompatible-changes-4)
* [v5.1.0](#v510)
* [Enhancements](#enhancements-29)
* [Enhancements](#enhancements-30)
* [Bug Fixes](#bug-fixes-34)
* [v5.0.0](#v500)
* [Enhancements](#enhancements-30)
* [Enhancements](#enhancements-31)
* [Bug Fixes](#bug-fixes-35)
* [Incompatible Changes](#incompatible-changes-5)
* [v4.7.0](#v470)
* [Enhancements](#enhancements-31)
* [Enhancements](#enhancements-32)
* [Bug Fixes](#bug-fixes-36)
* [v4.6.0](#v460)
* [Enhancements](#enhancements-32)
* [Enhancements](#enhancements-33)
* [Bug Fixes](#bug-fixes-37)
* [v4.5.0](#v450)
* [Enhancements](#enhancements-33)
* [v4.4.0](#v440)
* [Enhancements](#enhancements-34)
* [v4.4.0](#v440)
* [Enhancements](#enhancements-35)
* [Bug Fixes](#bug-fixes-38)
* [v4.3.0](#v430)
* [Enhancements](#enhancements-35)
* [Enhancements](#enhancements-36)
* [Bug Fixes](#bug-fixes-39)
* [v4.2.0](#v420)
* [Enhancements](#enhancements-36)
* [Enhancements](#enhancements-37)
* [Bug Fixes](#bug-fixes-40)
* [v4.1.0](#v410)
* [Enhancements](#enhancements-37)
* [Enhancements](#enhancements-38)
* [Bug Fixes](#bug-fixes-41)
* [v4.0.0](#v400)
* [Enhancements](#enhancements-38)
* [Enhancements](#enhancements-39)
* [Bug Fixes](#bug-fixes-42)
* [Incompatible Changes](#incompatible-changes-6)
* [v3.0.1](#v301)
* [Bug Fixes](#bug-fixes-43)
* [v3.0.0](#v300)
* [Enhancements](#enhancements-39)
* [Enhancements](#enhancements-40)
* [Bug Fixes](#bug-fixes-44)
* [Incompatible Changes](#incompatible-changes-7)
* [v2.2.0](#v220)
Expand All @@ -150,59 +152,78 @@
* [Enhancement](#enhancement-1)
* [Bug Fixes](#bug-fixes-46)
* [v2.0.0](#v200)
* [Enhancements](#enhancements-40)
* [Enhancements](#enhancements-41)
* [Bug Fixes](#bug-fixes-47)
* [Incompatible Changes](#incompatible-changes-8)
* [v1.2.1](#v121)
* [Enhancements](#enhancements-41)
* [Enhancements](#enhancements-42)
* [Bug Fixes](#bug-fixes-48)
* [v1.2.0](#v120)
* [Enhancements](#enhancements-42)
* [Enhancements](#enhancements-43)
* [Bug Fixes](#bug-fixes-49)
* [v1.1.0](#v110)
* [Enhancements](#enhancements-43)
* [v1.0.0](#v100)
* [Enhancements](#enhancements-44)
* [v1.0.0](#v100)
* [Enhancements](#enhancements-45)
* [Bug Fixes](#bug-fixes-50)
* [Incompatible Fixes](#incompatible-fixes)
* [v0.3.5](#v035)
* [Enhancements](#enhancements-45)
* [Enhancements](#enhancements-46)
* [Bug Fixes](#bug-fixes-51)
* [v0.3.4](#v034)
* [Enhancements](#enhancements-46)
* [v0.3.3](#v033)
* [Enhancements](#enhancements-47)
* [v0.3.3](#v033)
* [Enhancements](#enhancements-48)
* [v0.3.2](#v032)
* [Bug Fixes](#bug-fixes-52)
* [v0.3.1](#v031)
* [Enhancements](#enhancements-48)
* [v0.3.0](#v030)
* [Enhancements](#enhancements-49)
* [v0.3.0](#v030)
* [Enhancements](#enhancements-50)
* [Incompatible Changes](#incompatible-changes-9)
* [v0.2.1](#v021)
* [Enhancements](#enhancements-50)
* [Enhancements](#enhancements-51)
* [Bug Fixes](#bug-fixes-53)
* [v0.2.0](#v020)
* [Enhancements](#enhancements-51)
* [Enhancements](#enhancements-52)
* [Incompatible Changes](#incompatible-changes-10)
* [v0.1.4](#v014)
* [Enhancements](#enhancements-52)
* [Enhancements](#enhancements-53)
* [Bug Fixes](#bug-fixes-54)
* [v0.1.3](#v013)
* [Bug Fixes](#bug-fixes-55)
* [v0.1.2](#v012)
* [Enhancements](#enhancements-53)
* [Enhancements](#enhancements-54)
* [v0.1.1](#v011)
* [Bug Fixes](#bug-fixes-56)
* [v0.1.0](#v010)
* [Enhancements](#enhancements-54)
* [Enhancements](#enhancements-55)
* [Bug Fixes](#bug-fixes-57)
* [v0.0.3](#v003)
* [Enhancements](#enhancements-55)
* [v0.0.2](#v002)
* [Enhancements](#enhancements-56)
* [v0.0.2](#v002)
* [Enhancements](#enhancements-57)
* [Bug Fixes](#bug-fixes-58)

## v11.5.0
### Enhancements
* [#1630](https://github.com/KronicDeth/intellij-elixir/pull/1630) - [@KronicDeth](https://github.com/KronicDeth)
* Ignore the `incompleteCode` flag and instead always use the criteria used when `incompleteCode` was set.

| name prefix | exact name | ResolveResult | valid |
|-------------|------------|---------------|-------|
| ❌ | N/A | ❌ | N/A |
| ✅ | ❌ | ✅ | ❌ |
| ✅ | ✅ | ✅ | ✅ |

This extends #1617 to more cases.
* Qualified calls (`Process.flag(...)`, etc)
* Type specs (`@spec foo(...)`)
* Aliases (`alias Foo...`)
* Module Attributes (`@attribute`)
* Variables (`foo`)
* `Protocol` reserved module attributes (`@protocol` and `@for`)

## v11.4.0
### Enhancements
* [#1617](https://github.com/KronicDeth/intellij-elixir/pull/1617) - [@KronicDeth](https://github.com/KronicDeth)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# https://www.jetbrains.com/intellij-repository/releases
# https://www.jetbrains.com/intellij-repository/snapshots

baseVersion = 11.4.0
baseVersion = 11.5.0
ideaVersion = 2019.2.2
javaVersion = 1.8
javaTargetVersion = 1.8
Expand Down
55 changes: 55 additions & 0 deletions resources/META-INF/changelog.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,60 @@
<html>
<body>
<h1>v11.5.0</h1>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>
<p>
Ignore the <code>incompleteCode</code> flag and instead always use the criteria used when
<code>incompleteCode</code> was set.
</p>
<table>
<thead>
<tr>
<th>name prefix</th>
<th>exact name</th>
<th>ResolveResult</th>
<th>valid</th>
</tr>
</thead>
<tbody>
<tr>
<td>❌</td>
<td>N/A</td>
<td>❌</td>
<td>N/A</td>
</tr>
<tr>
<td>✅</td>
<td>❌</td>
<td>✅</td>
<td>❌</td>
</tr>
<tr>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
</tbody>
</table>
<p>
This extends <a href="https://github.com/KronicDeth/intellij-elixir/pull/1617">#1617</a> to more cases.
</p>
<ul>
<li>Qualified calls (<code>Process.flag(...)</code>, etc)</li>
<li>Type specs (<code>@spec foo(...)</code>)</li>
<li>Aliases (<code>alias Foo...</code>)</li>
<li>Module Attributes (<code>@attribute</code>)</li>
<li>Variables (<code>foo</code>)</li>
<li><code>Protocol</code> reserved module attributes (<code>@protocol</code> and <code>@for</code>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1>v11.4.0</h1>
<ul>
<li>
Expand Down
20 changes: 0 additions & 20 deletions src/org/elixir_lang/psi/Modular.kt
Original file line number Diff line number Diff line change
Expand Up @@ -75,24 +75,4 @@ object Modular {
} ?:
AccumulatorContinue(acc, true)
}

@JvmStatic
inline fun <R> callDefinitionClauseCallFoldWhile(
modular: Call,
functionName: Name,
resolvedFinalArity: Arity,
initial: R,
foldWhile: (Call, String, IntRange, R) -> AccumulatorContinue<R>
): AccumulatorContinue<R> =
callDefinitionClauseCallFoldWhile(
modular,
functionName,
initial
) { callDefinitionClauseCall, name, arityRange, acc ->
if (arityRange.contains(resolvedFinalArity)) {
foldWhile(callDefinitionClauseCall, name, arityRange, acc)
} else {
AccumulatorContinue(acc, true)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,11 @@ private constructor(private val name: String,
nameArityRange(element)?.let { nameArityRange ->
val name = nameArityRange.name

if (name == this.name) {
if (name.startsWith(this.name)) {
val arityInterval = ArityInterval.arityInterval(nameArityRange, state)
val validResult = resolvedFinalArity in arityInterval
val validResult = (resolvedFinalArity in arityInterval) && name == this.name

addToResolveResults(element, validResult, state)
} else if (incompleteCode && name.startsWith(this.name)) {
addToResolveResults(element, false, state)
} else {
null
}
Expand Down