From 932259520ebaedeb2ccf4b7594bad50c700963d7 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Thu, 29 Aug 2013 10:40:28 -0700 Subject: Snapshot 1c7917945d4706cdbb32b599f81abd05c0251e32 from idea/132.27 branch of git://git.jetbrains.org/idea/community.git MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1c79179: 2013-08-29 Yann Cébron - DevKit: smart EP "implementation" highlighting/completion f3a83bc: 2013-08-29 Roman Shevchenko - IDEA-112827 (NPE in error reporter) 464a45b: 2013-08-29 Anna Kozlova - move pin button to the right side of popup (IDEA-112435) 1635be8: 2013-08-29 Yann Cébron - Dom EPs: add some tags 6bcac42: 2013-08-29 Roman Shevchenko - IDEA-112824 (suppress SVN logging for normal use) 16d0ba4: 2013-08-29 Anna Kozlova - NPE 285509c4c: 2013-08-28 Max Medvedev - IDEA-111110 Groovy: Introduce Field Refactoring doesn't suggest to choose destination class 5415af1: 2013-08-28 Yann Cébron - Merge remote-tracking branch 'origin/master' 8462f3b: 2013-08-28 Dmitry Jemerov - cleanup 2ad6100: 2013-08-28 Yann Cébron - Merge remote-tracking branch 'origin/master' 9de8bfc: 2013-08-28 Dmitry Jemerov - Merge branch 'master' of git://github.com/niktrop/intellij-community into pull92 6315415: 2013-08-28 Dmitry Jemerov - cleanup 7281b73: 2013-08-28 Dmitry Jemerov - Merge branch 'cjfm3' of git://github.com/max-kammerer/intellij-community into pull87 6e31350: 2013-08-28 Dmitry Jemerov - fix couple of issues with https://github.com/JetBrains/intellij-community/pull/94 3695aa0: 2013-08-28 Dmitry Jemerov - Merge branch 'master' of git://github.com/asedunov/intellij-community into pull94 ce2c15f: 2013-08-28 Yann Cébron - fix javadoc @see link 6794ead: 2013-08-28 Anna Kozlova - skip adverts when server doesn't accept provided info 851da00: 2013-08-28 Anna Kozlova - skip advs in tests and headless mode cddbc28: 2013-08-28 Anna Kozlova - EA-48802 - assert: JavaFileManagerBase.findClass 1eafaae: 2013-08-28 Anna Kozlova - EA-49147 - NPE: UnusedDeclarationInspection.isReadObjectMethod f1a2040: 2013-08-28 Anna Kozlova - EA-49155 - NPE: JavaChangeSignatureDialog.doCalculateSignature 2684709: 2013-08-28 Dmitry Jemerov - MalformedFormatStringInspectionTest fixed ce8088e: 2013-08-28 Evgeny Gerashchenko - Removed extra checking for duplicate annotations in one file. It is performed when reading file anyway. 9d4c7ca: 2013-08-28 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' 2fd8641: 2013-08-28 Eugene Kudelevsky - add possibility to setup lookup element for XML attribute values; IDEA-102167 layout_* attributes should go first 3b065b1: 2013-08-28 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' d8d9168: 2013-08-28 Dmitry Trofimov - Libs update. 28a95a6: 2013-08-28 Alexey Kudravtsev - compilation d4a0d69: 2013-08-28 Alexey Kudravtsev - notnull f9f8006: 2013-08-28 Alexey Kudravtsev - moved to appropriate package 4d058f8: 2013-08-28 Alexey Kudravtsev - cleanup 111301a: 2013-08-28 Alexey Kudravtsev - extra method 01e59b0: 2013-08-28 Alexey Kudravtsev - doc da966ae: 2013-08-28 Alexey Kudravtsev - cleanup 7503616: 2013-08-28 Alexey Kudravtsev - add method to javaversionservice 7d6de4f: 2013-08-28 Alexey Kudravtsev - notnull dee081f: 2013-08-27 Alexey Kudravtsev - statistics dd327c0: 2013-08-28 Dmitry Trofimov - Focus fixes. 7231931: 2013-08-28 Vladimir Krivosheev - WEB-8988 Return "open in browser" in context menu 2102255: 2013-08-28 Roman Shevchenko - app: install-over range extended for next EAPs ddad3bb: 2013-08-28 Dmitry Avdeev - IDEA-112728 Can't create new task from tasks menu in toolbar: no need to fix lost typing for Go To Task a8160c2: 2013-08-28 Dmitry Avdeev - typo 7328cbd: 2013-08-28 Dmitry Avdeev - cleanup abbdb5a: 2013-08-28 Dmitry Avdeev - cleanup a5c8503: 2013-08-28 Dmitry Avdeev - do not allow empty task name e8daf37: 2013-08-28 Dmitry Avdeev - simplified dff28d3: 2013-08-28 Dmitry Avdeev - simplified 38513a8: 2013-08-28 Dmitry Avdeev - cleanup c09dd55: 2013-08-28 Vladimir Krivosheev - VariablesGroup — avoid array copy 8f3c91f: 2013-08-28 Roman Shevchenko - java: correct character escaping in decompiler 9a19e30: 2013-08-28 Dmitry Trofimov - Fixed hiding and activating of the terminal (PY-10669). df672ba: 2013-08-28 Dmitry Trofimov - Terminal system settings refactored. 4653b54: 2013-08-28 Anna Kozlova - unknown features equality fixed 2896270: 2013-08-28 Anna Kozlova - ensure read access ccff3af: 2013-08-28 Anna Kozlova - suggest to download plugins by unknown run configurations 9c8a3d2: 2013-08-28 Konstantin Bulenkov - include os.arch and jdk build number in about 861984c: 2013-08-28 Denis Fokin - IDEA-108265. We should not do anything if an empty array is passed. a6b3441: 2013-08-28 Sergey Simonchik - EA-49063 - AIOOBE: ScriptRunnerUtil$ScriptOutput.onTextAvailable 845ee5c: 2013-08-28 Vladimir Krivosheev - value nullability 36121a2: 2013-08-28 Konstantin Kolosovsky - Merge branch 'svn1_8_new' 1515b70: 2013-08-28 Mikhail Golubev - Merge remote-tracking branch 'origin/master' 33d684e0: 2013-08-28 Mikhail Golubev - IDEA-110012 Not all Redmine Issues Available on "Open Task" (Limited to 100?) 39899b1: 2013-08-28 Bas Leijdekkers - IDEA-112782 (Change signature dialog shows unexpected 'cannot resolve symbol' message) e469928: 2013-08-28 Anna Kozlova - accept test config methods in non-test classes (IDEA-112537) b53abed: 2013-08-27 Anna Kozlova - fix typo 3074f49: 2013-08-28 Dmitry Avdeev - IDEA-112781 Open YouTrack task: Create changelist doesn't work with SVN ? 43c8897: 2013-08-27 Dmitry Avdeev - cleanup ff6217a: 2013-08-28 Kirill Likhodedov - Annotate overriding methods 8e2d0e1: 2013-08-28 Roman Shevchenko - terminal: platform's Guava should be good enough for the plugin 2055780: 2013-08-27 Roman Shevchenko - EA-49123 (do not load extensions from static initializer) 116dc30: 2013-08-27 Roman Shevchenko - EA-49235 (check proxy port) 2b4f96f: 2013-08-27 Roman Shevchenko - EA-49235 (code readability) ed03bca: 2013-08-27 Roman Shevchenko - EA-49142 (NPE, cleanup) e6053d0: 2013-08-27 Roman Shevchenko - EA-49102 (face user with printing errors) a748474: 2013-08-28 Vladimir Krivosheev - 4.1.0. update netty (now it is not patched build, https://github.com/netty/netty/pull/1762) 3c60901: 2013-08-28 Konstantin Bulenkov - better selection for mixed languages 20decc3: 2013-08-28 Konstantin Bulenkov - fix selection for files with multiple languages 878ad26: 2013-08-27 Max Medvedev - IDEA-111100 Groovy: Introduce Variable/Parameter Refactorings don't suggest to replace occurrences if applied to expressions inside code blocks 8a60662: 2013-08-27 Max Medvedev - IDEA-110981 Groovy: "Split into declaration and assignment" intention leaves unnecessary "=" if applied to closures 77912c1: 2013-08-27 Max Medvedev - IDEA-111101 Groovy: In-Place Introduce Field: Alt+I mnemonic doesn't work in the refactoring preview 088f68e: 2013-08-27 Max Medvedev - IDEA-111027 Groovy: In-Place Introduce Variable: PIEAE at GrInplaceIntroducer. on introducing a variable within one-line method/closure a2210a4: 2013-08-27 Aleksei Sedunov - Extract inheritor candidate check into separate InheritanceChecker interface f40be5e: 2013-08-27 Alexander Zolotov - Filter moduleAwareConfigurables by module cf7704f: 2013-08-26 Alexander Zolotov - WEB-6452 SASS suggests functions at the top, instead of property values 165ccf7: 2013-08-27 Konstantin Kolosovsky - IDEA-94942 Fixed diff, annotate errors in history view after rename/move 7b6396a: 2013-08-27 Dmitry Jemerov - branch number 132 e176d25: 2013-08-27 Sergey Evdokimov - IDEA-112754 Maven import: NCDFE for org/jetbrains/plugins/groovy/util/ClassInstanceCache 43c49f6: 2013-08-27 Sergey Evdokimov - IDEA-112754 Maven import: NCDFE for org/jetbrains/plugins/groovy/util/ClassInstanceCache 377dd45: 2013-08-27 Konstantin Bulenkov - fix memory leak 203fb69: 2013-08-27 Sergey Simonchik - WEB-9011 Karma plugin ignored tests 3b896f2: 2013-08-27 Sergey Evdokimov - Make project unignored when new module is created by ignored project 9ae29c6: 2013-08-27 Sergey Evdokimov - Remove maven project from project tree when user deletes module. +review CR-IC-2084 0f0f39e: 2013-08-27 Vladimir Krivosheev - cleanup, Overrides 3dddec4: 2013-08-27 Vladimir Krivosheev - cleanup a2fff55: 2013-08-27 Aleksey Pivovarov - Github: Add API function for loading Commit Comments 9bd1660: 2013-08-27 Aleksey Pivovarov - fix IndexOutOfBoundsException on inserting empty collection to empty model 46b8998: 2013-08-27 Nadya Zabrodina - exception during annotate copied file fixed 66640b2: 2013-08-27 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' c597bcc: 2013-08-27 Sergey Evdokimov - Remove maven project from project tree when user deletes module. +review CR-IC-2084 33e932a: 2013-08-27 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' 7cc9cca: 2013-08-27 Vladislav.Soroka - IDEA-79466 gradle support should generate web module configuration 42e649d: 2013-08-27 Dmitry Jemerov - better names for couple of new classes added to API 5c70eaf: 2013-08-27 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' 2e0f1fa: 2013-08-27 Dmitry Trofimov - Update lib. dcc2c4b: 2013-08-27 Dmitry Trofimov - Override isRetina. 05b716b: 2013-08-27 nik - processing dependencies in JPS: @NotNull annotations and javadoc added 6314b6e: 2013-08-27 Dmitry Trofimov - Fixed for Retina. 9d1886c: 2013-08-27 Dmitry Avdeev - navigatable xsd documentation 0f389c5: 2013-08-27 Vladimir Krivosheev - hide internal class XValuePresenterAdapter a0386eb: 2013-08-27 Mikhail Golubev - Merge remote-tracking branch 'origin/master' 53248dc: 2013-08-27 Vladimir Krivosheev - fix createPresenter d0355b3: 2013-08-27 Sergey Evdokimov - Remove maven project from project tree when user deletes module. +review CR-IC @Anton.Makeev fb48f62: 2013-08-27 Sergey Evdokimov - Optimization of MavenProjectsTree.isManagedFile() 6b123aa: 2013-08-27 nik - JPS dependencies enumerator: convenient method added d4579e1: 2013-08-27 Dmitry Avdeev - UrlPsiReference promoted 3b1feea: 2013-08-27 Dmitry Avdeev - cleanup ee18443: 2013-08-27 Dmitry Avdeev - cleanup ca2484e: 2013-08-27 Dmitry Avdeev - cleanup c9e045b: 2013-08-27 Vladimir Krivosheev - 1) methods "void setPresentation(@NonNls String name, @Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String separator, @NonNls @NotNull String value, boolean hasChildren);" and "void setPresentation(@NonNls String name, @Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String value, boolean hasChildren);" b38d58a: 2013-08-27 Konstantin Kolosovsky - IDEA-94942 Fixed treating svn client warnings as errors 8cab12c: 2013-08-27 Dmitry Jemerov - separate UI and non-UI parts of MalformedFormatStringInspection 93e3fa6: 2013-08-20 Jason Holmes - Custom "Malformed format string" inspection b9f6fde: 2013-08-27 nik - actions to mark/unmark roots in Project View refactored to support custom root types 0455e46: 2013-08-27 Aleksey Pivovarov - Github: remove useless listener 7f40613: 2013-08-27 Aleksey Pivovarov - Github: reset User on token change c8a5402: 2013-08-27 Aleksey Pivovarov - Github: change layout 89769be: 2013-08-27 Aleksey Pivovarov - Github: add test 0d8ab04: 2013-08-27 Aleksey Pivovarov - Github: comment cba103c: 2013-08-27 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' d6ca049: 2013-08-27 Anna Kozlova - allow autoPopup after custom symbols (IDEA-112571) a70c338: 2013-08-27 Konstantin Bulenkov - IDEA-110846 File Structure pop-up doesn't work properly for template languages 4896775: 2013-08-27 Konstantin Bulenkov - recent files duplicates 05835fa: 2013-08-27 Fedor Korotkov - WEB-6328 Add support for HTML5
element 2407d7b: 2013-08-27 Anna Kozlova - allow to call getValue without readAction as it was before 29cb25d: 2013-08-27 Dmitry Avdeev - fixing the leak 7d3932a: 2013-08-27 Dmitry Avdeev - IDEA-112708 Static classes in JSP class block are considered an error f6dbce2: 2013-08-26 Mikhail Golubev - IDEA-112605 Task management: can't add Generic server: NoClassDefFoundError: XPathFileType 82c1dc1: 2013-08-27 Konstantin Kolosovsky - Merge branch 'svn1_8_new' 08d46f1: 2013-08-27 Alexey Kudravtsev - highlightVisitor moves and cleanup e0fec9d: 2013-08-27 Alexey Kudravtsev - Merge remote-tracking branch 'origin/master' e9b1dfc: 2013-08-27 Anna Kozlova - dumb smart lambda completion (IDEA-112553) 6da30a4: 2013-08-26 Alexey Kudravtsev - calculate column/offset: optimisation of the no-tabs case c0990c4: 2013-08-26 Alexey Kudravtsev - race conditions? 135e250: 2013-08-26 Alexey Kudravtsev - notnull, cleanup 75b28ba: 2013-08-26 Alexey Kudravtsev - file was not rehighlighted on some changes 5647d35: 2013-08-26 Sergey Evdokimov - Make myManagedFilesPaths a Set to avoid duplication. 680dd76: 2013-08-27 Aleksey Pivovarov - Github: fix memory leak on Exception in setUp(); e3092b7: 2013-08-27 Dmitry Avdeev - IDEA-112611 Task management: DVCS: closing a task fails: "Cannot delete the branch master" d12d4fe: 2013-08-27 Anna Kozlova - logging for EA-49099 - PIEAE: PsiAnchor$StubIndexReference.getStartOffset 3cc53fe: 2013-08-27 Anna Kozlova - revert changes in api 10fbef9: 2013-08-27 Roman Shevchenko - Test data updated a5455ba: 2013-08-27 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' 8ed3ae8: 2013-08-27 Dmitry Trofimov - Updated lib. e6df583: 2013-08-27 Dmitry Trofimov - Added guava lib to terminal. 1853090: 2013-08-27 Dmitry Trofimov - Draw image Retina support. a7ebcaf: 2013-08-27 Dmitry Trofimov - Open session action moved to constructor. 5176bfa: 2013-08-26 Sergey Evdokimov - Fix maven tests 291f740: 2013-08-26 Vladimir Krivosheev - we must check if any port free too 18d4be6: 2013-08-26 Vassiliy Kudryashov - IDEA-70769 Settings panel: increase speed of scrollbars 0c76aca: 2013-08-26 Vassiliy Kudryashov - IDEA-112524 Working directory for default rake tasks is changed to $MODULE_DIR$ after project's reopening e2b7f6b: 2013-08-26 Konstantin Bulenkov - pattern dependent delay 1916142: 2013-08-26 Vladimir Krivosheev - cleanup 3da9dcd: 2013-08-26 Vladimir Krivosheev - done: custom binary request handler e02eba9: 2013-08-26 Aleksey Pivovarov - Github: do not produce dozens of notifications 8e41d59: 2013-08-26 Aleksey Pivovarov - Simplify 78c800d: 2013-08-26 Aleksey Pivovarov - Github: respect 'max' parameter 3afb19f: 2013-08-26 Maxim.Mossienko - proper versioning of stub index when persistent enumerator version changes c853e9e: 2013-08-26 Eugene Kudelevsky - IDEA-112376 add "importFilter" extension point to force using FQN when importing class 31281a9: 2013-08-26 Kirill Likhodedov - [git] Don't write empty lines to LOG.debug. 493b9fb: 2013-08-26 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' 60384ba: 2013-08-26 Dmitry Trofimov - Enable Run local terminal action for Windows. bfa8e61: 2013-08-26 Dmitry Jemerov - stupid typo fixed 04a76c3: 2013-08-26 Anna Kozlova - IDEA-112555 Bad code is green with method references on instance 8f5139d: 2013-08-26 Denis Fokin - IDEA-108265. Now user is asked whether the project should be opened in a new frame. da958ab: 2013-08-26 Natalia Ukhorskaya - Decompile chars, bytes and shorts correctly 8008709: 2013-08-26 Roman Shevchenko - java: incorrect annotation decoding fixed 9f07ea5: 2013-08-26 Roman Shevchenko - logging e07c905: 2013-08-26 Dmitry Trofimov - Merge remote-tracking branch 'origin/master' e81832d: 2013-08-26 Dmitry Trofimov - This update fixes pty on windows. e36607b: 2013-08-26 Konstantin Bulenkov - new renderer 9ea47a5: 2013-08-26 nik - source roots editors: obtain icons for content tree from extension d52dfb8: 2013-08-26 nik - constants moved 710d3ba: 2013-08-26 niktrop - Code style fixed aa8832d: 2013-08-26 Sergey Simonchik - code style: two subsequent ifs merged to reduce inner indent ed88487: 2013-08-26 Konstantin Kolosovsky - IDEA-94942 Provide detailed error messages to user instead of general ones e0df7a3: 2013-08-26 Vassiliy Kudryashov - IDEA-112524 Working directory for default rake tasks is changed to $MODULE_DIR$ after project's reopening e60a55b: 2013-08-26 nik - source roots editors refactored: root type specific UI moved to extension 928ea20: 2013-08-26 Mikhail Golubev - Merge remote-tracking branch 'origin/master' 70d526d: 2013-08-26 Anna Kozlova - guardedBy itself support (IDEA-112565) 2e23cb8: 2013-08-26 Anna Kozlova - restore bytecode viewer for java classes 89dffc9: 2013-08-26 Anna Kozlova - cal property name: accept without any other checks non-letter prefixes (IDEA-112585) bab044f: 2013-08-26 Vladimir Krivosheev - restore Alarm.cancelRequest dd817dc: 2013-08-26 Sergey Simonchik - simplification 7046dc4: 2013-08-26 niktrop - Some refactoring for reusing GenerateEquals UI in scala plugin 44e4219: 2013-08-26 Sergey Evdokimov - IDEA-112529 Maven: code completion could work in file path value with property references 867be29: 2013-08-26 Denis Fokin - Jumplist libraries changes. This is a release version of dll with eliminated MSVCRT dependencies. 7b0029d: 2013-08-26 Anton Makeev - CIDR: language tests in windows +review CR-OC @micha 9bef3a2: 2013-08-26 Konstantin Kolosovsky - IDEA-94942 Updated cleanup behavior after previous command failed 8447776: 2013-08-26 Mikhail Golubev - Remove SelectorBasedResponseHandler#getSelectorFileType, delegate to #getResponseType instead. Add missing @NotNull annotation, update doc comments. d7ecb44: 2013-08-26 Anna Kozlova - treat classes with before/after methods as test classes for bad declared exceptions (IDEA-112537) 4be2bcf: 2013-08-26 Anna Kozlova - restore suggestion to remove 'abstract' when method has body c57c308: 2013-08-26 Anna Kozlova - local can be final inside lambda body (IDEA-112630) b8170a6: 2013-08-26 Vladimir Krivosheev - isValuesCustomSorted, add or not SortValuesAction (alphabetically sort) TODO: this action should be moved to "Variables" as gear action b56b744: 2013-08-26 Mikhail Golubev - Merge remote-tracking branch 'origin/master' ba7e194: 2013-08-23 Mikhail Golubev - Migrate Assembla to new GenericRepository dd0885d: 2013-08-23 Mikhail Golubev - Refactor TemplateVariable aa94a3c: 2013-08-23 Mikhail Golubev - Add several tests of date parsing 0e7e61e: 2013-08-23 Mikhail Golubev - Reflective PsiElements creation in JqlParserDefinition a5f3011: 2013-08-26 Konstantin Kolosovsky - IDEA-94942 Short refactoring (removed duplication) 01cd38b: 2013-08-26 Sergey Simonchik - unnecessary line removed 7c34a2a: 2013-08-26 Dmitry Avdeev - IDEA-60895 No completion for enumerated and boolean values of xml tags 8b83a30: 2013-08-26 Vladislav.Soroka - gradle: cosmetic UI fix 8ee6a76: 2013-08-26 Roman Shevchenko - Convenient debug logging cde5373: 2013-08-26 Dmitry Avdeev - IDEA-60895 No completion for enumerated and boolean values of xml tags 75d9b47: 2013-08-24 Max Medvedev - IDEA-112621 Groovy: Remove explicit type declaration intention d1c29fb: 2013-08-23 Max Medvedev - separate visit methods for all types of classes, enums, interfaces, annotation types, and anonymous classes 5eca3d0: 2013-08-23 Max Medvedev - Byte code viewer shows byte code for groovy scripts c96d27f: 2013-08-23 Max Medvedev - Convert anonymous class to closure: don't insert 'as Runnable' if groovy version is at least 2.2 7e993a0: 2013-08-23 Max Medvedev - IDEA-112560 process only applicable mixins to a ref c33dc4a: 2013-08-26 Roman Shevchenko - platform: unified loading of system libraries (done right) d492a6f: 2013-08-25 Roman Shevchenko - logging 2f2b546: 2013-08-25 Roman Shevchenko - IDEA-112462 (allow plugins to extend lib search path) 2a39bf2: 2013-08-25 Maxim.Mossienko - restart lexer from 0 offset when searching from start a0858dbf: 2013-08-25 Maxim.Mossienko - 20% more compact compiler caches (-50M for IDEA project) 5ce3373: 2013-08-25 Maxim.Mossienko - IDEA-111918 Find: comments / string literals only: just 1 entry is found in each comment or literal 68ffc65: 2013-08-25 Maxim.Mossienko - faster contol + shift + N / control + N by default eb67af1: 2013-08-24 Vassiliy Kudryashov - IDEA-107413 Cannot drag'n'drop more than one item in Changes View d5ed7b5: 2013-08-24 nik - store properties of source folder in JPS element b3dd357: 2013-08-24 nik - typo 5b8b1ff: 2013-08-24 Kirill Likhodedov - Merge remote-tracking branch 'origin/master' 0dd284a: 2013-08-24 Kirill Likhodedov - Better assertion error in the DefaultLogger 3146c0b: 2013-08-23 Bas Leijdekkers - foreach can also initialize field 6356a11: 2013-08-23 Konstantin Bulenkov - completely refacrored 6ad3452: 2013-08-23 Anna Kozlova - show conflict on invert boolean and method references (IDEA-112572) 4726276: 2013-08-23 Anna Kozlova - extract method from lambda body: accept parameters of parent method (IDEA-112570) 16a5e32: 2013-08-23 Gregory.Shrago - EditorEx: permanent header API edc3497: 2013-08-23 Konstantin Kolosovsky - IDEA-94942 Content retrieval from svn refactored to ClientFactory model 0f40312: 2013-08-23 Mikhail Golubev - Change JqlQuery methods, JqlTerminalClause should extend JqlClause c335f2b: 2013-08-23 Mikhail Golubev - IDEA-111811 Task management: JIRA: JQL: code completion suggests nothing after closing parenthesis 6e6972a: 2013-08-23 Konstantin Kolosovsky - IDEA-94942 Annotate action e9d5412: 2013-08-23 Mikhail Golubev - Update description of NATIVE_SEARCH feature in TaskRepository 3c948a8: 2013-08-22 Konstantin Kolosovsky - IDEA-94942 Code cleanup - unused parameters removed 64706df: 2013-08-22 Konstantin Kolosovsky - IDEA-112184 0e41cad: 2013-08-22 Konstantin Kolosovsky - IDEA-94942 Simple property client to fix SvnMergeProvider.isBinary implementation 8091bb0: 2013-08-22 Konstantin Kolosovsky - IDEA-94942 Implemented file conflicts resolving Updated "svn info" result parsing 040f405: 2013-08-21 Konstantin Kolosovsky - IDEA-94942 SvnBindClient - unsupported methods removed cef0440: 2013-08-21 Konstantin Kolosovsky - IDEA-94942 "bindSvn" module classes moved to "svn4idea" SvnBindClient unsupported methods will be removed in next commit (to track change like "rename" instead of "delete" + "add" to preserve history) 6c36a93: 2013-08-20 Konstantin Kolosovsky - IDEA-112184 Added logging to detect authentication issues 928c01e: 2013-08-07 Konstantin Kolosovsky - IDEA-94942 - Basic svn 1.8 test support d880599: 2013-08-20 Konstantin Kolosovsky - IDEA-94942 Small text fixes Ignoring tests for old/not used functionality 71384c1: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Copy and move actions a5f7e7c: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Delete action e197c08: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Fixed authentication for svn protocol c28c127: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Short add, revert commands refactoring e06a346: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Revert action Fixed status command for single file Fixed status result parsing for normal (non-modified versioned) file 0f66f9d: 2013-08-19 Konstantin Kolosovsky - IDEA-94942 Logging and comments for some commands c928fe5: 2013-08-16 Konstantin Kolosovsky - IDEA-94942 Force command line client usage if working copy of svn 1.8 format detected d6e4e38: 2013-08-16 Konstantin Kolosovsky - IDEA-94942 Fixed "add" action output parsing for binary files 1236be5: 2013-08-15 Konstantin Kolosovsky - IDEA-94942 Small refactoring and fixes after review e05b576: 2013-08-15 Konstantin Kolosovsky - IDEA-94942 "Add" action for files and directories ccf6085: 2013-08-15 Konstantin Kolosovsky - IDEA-94942 "Subversion" -> "Show History" for files and folders aba7390: 2013-08-14 Konstantin Kolosovsky - IDEA-94942 Add command refactored 555d597: 2013-08-14 Konstantin Kolosovsky - IDEA-94942 Fixing status, info commands to use correct arguments b083f31: 2013-08-14 Konstantin Kolosovsky - IDEA-94942 Diff provider (without revision properties) Small command refactoring f657dc8: 2013-08-13 Konstantin Kolosovsky - IDEA-94942 Authentication updates Authentication for remote status command Result parsing for remote info command 2 way SSL support (could be issues with ordinary password entering after 2 way SSL) 2785122: 2013-07-29 Konstantin Kolosovsky - IDEA-94942 initial svn 1.8 support with already existing command line functionality 857bfd5: 2013-08-12 max-kammerer - Update CoreJavaFileManagerTest.java 13539bc: 2013-08-09 Mikhael Bogdanov - CoreJavaFileManager.findClass: properly resolve $ in inner class names Change-Id: Ica3d3d647183983bcd88ce2fb3450deb86343cdb --- .../completion/smartType/InLambdaPosition-out.java | 3 + .../completion/smartType/InLambdaPosition.java | 3 + .../lambda/methodRef/ExprReceiver.java | 15 +++ .../quickFix/modifier/after37.java | 8 ++ .../quickFix/modifier/before37.java | 8 ++ .../afterFieldPrefixCoincidence1.java | 7 ++ .../beforeFieldPrefixCoincidence1.java | 4 + .../testData/inspection/guarded/itself.java | 19 ++++ .../localCanBeFinal/LambdaBody/expected.xml | 16 +++ .../localCanBeFinal/LambdaBody/src/Junk.java | 10 ++ .../testData/psi/cls/mirror/Annotations.txt | 9 ++ .../testData/psi/cls/mirror/Booleans.txt | 18 ---- .../testData/psi/cls/mirror/Primitives.txt | 30 ++++++ .../psi/cls/mirror/pkg/Annotations$A1.class | Bin 206 -> 206 bytes .../psi/cls/mirror/pkg/Annotations$A2.class | Bin 278 -> 278 bytes .../psi/cls/mirror/pkg/Annotations$A3.class | Bin 356 -> 356 bytes .../psi/cls/mirror/pkg/Annotations$A4.class | Bin 256 -> 256 bytes .../psi/cls/mirror/pkg/Annotations$A5.class | Bin 0 -> 390 bytes .../mirror/pkg/Annotations$IndeterminateAnno.class | Bin 442 -> 442 bytes .../testData/psi/cls/mirror/pkg/Annotations.class | Bin 786 -> 912 bytes .../testData/psi/cls/mirror/pkg/BooleanAnno.class | Bin 165 -> 167 bytes .../testData/psi/cls/mirror/pkg/Booleans.class | Bin 449 -> 0 bytes .../testData/psi/cls/mirror/pkg/ByteAnno.class | Bin 0 -> 164 bytes .../testData/psi/cls/mirror/pkg/CharAnno.class | Bin 0 -> 164 bytes .../testData/psi/cls/mirror/pkg/IntAnno.class | Bin 0 -> 163 bytes .../testData/psi/cls/mirror/pkg/LongAnno.class | Bin 0 -> 164 bytes .../testData/psi/cls/mirror/pkg/Primitives.class | Bin 0 -> 793 bytes .../testData/psi/cls/mirror/pkg/ShortAnno.class | Bin 0 -> 165 bytes .../psi/cls/mirror/src/pkg/Annotations.java | 7 ++ .../testData/psi/cls/mirror/src/pkg/Booleans.java | 13 --- .../psi/cls/mirror/src/pkg/Primitives.java | 42 ++++++++ .../testData/psi/cls/stubBuilder/Nullable.txt | 4 +- .../refactoring/extractMethod/FromLambdaBody1.java | 22 ++++ .../extractMethod/FromLambdaBody1_after.java | 26 +++++ .../refactoring/invertBoolean/methodRefs.java | 14 +++ .../codeInsight/GenerateConstructorTest.java | 7 +- .../completion/JavaAutoPopupTest.groovy | 16 ++- .../completion/SmartType18CompletionTest.java | 6 +- .../daemon/lambda/MethodRefHighlightingTest.java | 1 + .../FieldAccessedNotGuardedInspectionTest.java | 48 +++++++++ .../codeInspection/LocalCanBeFinalTest.java | 21 ++++ .../testSrc/com/intellij/find/FindManagerTest.java | 112 +++++++++++++++++++++ .../com/intellij/psi/ClsMirrorBuildingTest.java | 2 +- .../com/intellij/psi/CoreJavaFileManagerTest.java | 101 ++++++++++++++++++- .../intellij/refactoring/ExtractMethodTest.java | 4 + .../intellij/refactoring/InvertBooleanTest.java | 9 ++ .../intellij/roots/ManagingContentRootsTest.java | 2 +- 47 files changed, 566 insertions(+), 41 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition-out.java create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ExprReceiver.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/after37.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/before37.java create mode 100644 java/java-tests/testData/codeInsight/generateConstructor/afterFieldPrefixCoincidence1.java create mode 100644 java/java-tests/testData/codeInsight/generateConstructor/beforeFieldPrefixCoincidence1.java create mode 100644 java/java-tests/testData/inspection/guarded/itself.java create mode 100644 java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml create mode 100644 java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java delete mode 100644 java/java-tests/testData/psi/cls/mirror/Booleans.txt create mode 100644 java/java-tests/testData/psi/cls/mirror/Primitives.txt create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A5.class delete mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/Booleans.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/ByteAnno.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/CharAnno.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/IntAnno.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/LongAnno.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/Primitives.class create mode 100644 java/java-tests/testData/psi/cls/mirror/pkg/ShortAnno.class delete mode 100644 java/java-tests/testData/psi/cls/mirror/src/pkg/Booleans.java create mode 100644 java/java-tests/testData/psi/cls/mirror/src/pkg/Primitives.java create mode 100644 java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1.java create mode 100644 java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1_after.java create mode 100644 java/java-tests/testData/refactoring/invertBoolean/methodRefs.java create mode 100644 java/java-tests/testSrc/com/intellij/codeInspection/FieldAccessedNotGuardedInspectionTest.java (limited to 'java/java-tests') diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition-out.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition-out.java new file mode 100644 index 000000000000..8b6864c5e474 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition-out.java @@ -0,0 +1,3 @@ +class Test { + Runnable r = () -> +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition.java b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition.java new file mode 100644 index 000000000000..8bda0afcc1d6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/smartType/InLambdaPosition.java @@ -0,0 +1,3 @@ +class Test { + Runnable r = +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ExprReceiver.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ExprReceiver.java new file mode 100644 index 000000000000..f3bc8d4b8a6c --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ExprReceiver.java @@ -0,0 +1,15 @@ +class ThreadExample { + interface Function { + + R apply(T t); + } + { + A a = new A(); + Function foo = a::foo; + } + + static class A { + public String foo() { return "a"; } + } +} + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/after37.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/after37.java new file mode 100644 index 000000000000..97dcfd58b281 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/after37.java @@ -0,0 +1,8 @@ +// "Make 'a' not abstract" "true" +import java.io.*; + +abstract class A { + void a() { + } +} + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/before37.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/before37.java new file mode 100644 index 000000000000..6be31221292f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/modifier/before37.java @@ -0,0 +1,8 @@ +// "Make 'a' not abstract" "true" +import java.io.*; + +abstract class A { + abstract void a() { + } +} + diff --git a/java/java-tests/testData/codeInsight/generateConstructor/afterFieldPrefixCoincidence1.java b/java/java-tests/testData/codeInsight/generateConstructor/afterFieldPrefixCoincidence1.java new file mode 100644 index 000000000000..29be0de779ed --- /dev/null +++ b/java/java-tests/testData/codeInsight/generateConstructor/afterFieldPrefixCoincidence1.java @@ -0,0 +1,7 @@ +class Test { + private int _foo; + + Test(int foo) { + _foo = foo; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/generateConstructor/beforeFieldPrefixCoincidence1.java b/java/java-tests/testData/codeInsight/generateConstructor/beforeFieldPrefixCoincidence1.java new file mode 100644 index 000000000000..8acd4dc129fd --- /dev/null +++ b/java/java-tests/testData/codeInsight/generateConstructor/beforeFieldPrefixCoincidence1.java @@ -0,0 +1,4 @@ +class Test { + private int _foo; + +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/guarded/itself.java b/java/java-tests/testData/inspection/guarded/itself.java new file mode 100644 index 000000000000..35b784585086 --- /dev/null +++ b/java/java-tests/testData/inspection/guarded/itself.java @@ -0,0 +1,19 @@ +import net.jcip.annotations.GuardedBy; + +import java.lang.String; + +class A { + + @GuardedBy("itself") + private String _foo; + + public String getFoo() { + synchronized (_foo) { + return _foo; + } + } + + public void setFoo(String foo) { + _foo = foo; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml new file mode 100644 index 000000000000..1da1935ad438 --- /dev/null +++ b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml @@ -0,0 +1,16 @@ + + + + Junk.java + 4 + Local variable or parameter can be final + Variable <code>i</code> can have <code>final</code> modifier + + + Junk.java + 3 + Local variable or parameter can be final + Variable <code>r</code> can have <code>final</code> modifier + + + diff --git a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java new file mode 100644 index 000000000000..f89a1e2f4786 --- /dev/null +++ b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java @@ -0,0 +1,10 @@ +public final class Junk { + public void sillyMethod() { + Runnable r = () -> { + int i = 0; + System.out.println(i); + }; + } +} + + diff --git a/java/java-tests/testData/psi/cls/mirror/Annotations.txt b/java/java-tests/testData/psi/cls/mirror/Annotations.txt index 9bbe384da735..58f2792d88f3 100644 --- a/java/java-tests/testData/psi/cls/mirror/Annotations.txt +++ b/java/java-tests/testData/psi/cls/mirror/Annotations.txt @@ -25,6 +25,9 @@ abstract class Annotations { @pkg.Annotations.A4(ids = {42, 84}) abstract void m4b(); + @pkg.Annotations.A5(b = true, value = java.lang.Integer.class) + abstract void m5(); + static @interface IndeterminateAnno { float f1() default -1.0f / 0.0; @@ -39,6 +42,12 @@ abstract class Annotations { double d3() default 1.0 / 0.0; } + static @interface A5 { + boolean b() default false; + + java.lang.Class value() default java.lang.Integer.class; + } + static @interface A4 { int[] ids() default {}; } diff --git a/java/java-tests/testData/psi/cls/mirror/Booleans.txt b/java/java-tests/testData/psi/cls/mirror/Booleans.txt deleted file mode 100644 index 8def7d921ba3..000000000000 --- a/java/java-tests/testData/psi/cls/mirror/Booleans.txt +++ /dev/null @@ -1,18 +0,0 @@ - - // IntelliJ API Decompiler stub source generated from a class file - // Implementation of methods is not available - -package pkg; - -class Booleans { - public static final boolean TRUE = true; - public static final boolean FALSE = false; - - Booleans() { /* compiled code */ } - - @pkg.BooleanAnno(true) - public static boolean TRUE() { /* compiled code */ } - - @pkg.BooleanAnno(false) - public static boolean FALSE() { /* compiled code */ } -} \ No newline at end of file diff --git a/java/java-tests/testData/psi/cls/mirror/Primitives.txt b/java/java-tests/testData/psi/cls/mirror/Primitives.txt new file mode 100644 index 000000000000..4eb6750d0451 --- /dev/null +++ b/java/java-tests/testData/psi/cls/mirror/Primitives.txt @@ -0,0 +1,30 @@ + + // IntelliJ API Decompiler stub source generated from a class file + // Implementation of methods is not available + +package pkg; + +class Primitives { + public static final boolean TRUE = true; + public static final boolean FALSE = false; + public static final byte BYTE = 1; + public static final char CHAR = '\''; + public static final short SHORT = 42; + public static final int INT = 42; + public static final long LONG = 42L; + + Primitives() { /* compiled code */ } + + @pkg.BooleanAnno(true) + public static boolean TRUE() { /* compiled code */ } + + @pkg.BooleanAnno(false) + public static boolean FALSE() { /* compiled code */ } + + @pkg.ByteAnno(1) + @pkg.CharAnno('\\') + @pkg.ShortAnno(42) + @pkg.IntAnno(42) + @pkg.LongAnno(42L) + public static void m() { /* compiled code */ } +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A1.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A1.class index 61209608ab7e..00c4747c6521 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A1.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A1.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A2.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A2.class index 8d94afe68543..96bda0c34281 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A2.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A2.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A3.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A3.class index 630cfd964d18..c23cb7cbb8b3 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A3.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A3.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A4.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A4.class index 040a84c05353..e00c95b04881 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A4.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A4.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A5.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A5.class new file mode 100644 index 000000000000..b85d9d0abc49 Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$A5.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$IndeterminateAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$IndeterminateAnno.class index d77b499c1f59..101bbd26c396 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$IndeterminateAnno.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations$IndeterminateAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations.class b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations.class index 03f1f52f42b8..a5293f04639b 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Annotations.class and b/java/java-tests/testData/psi/cls/mirror/pkg/Annotations.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/BooleanAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/BooleanAnno.class index 64ba86fc5932..118a4c4df8ca 100644 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/BooleanAnno.class and b/java/java-tests/testData/psi/cls/mirror/pkg/BooleanAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Booleans.class b/java/java-tests/testData/psi/cls/mirror/pkg/Booleans.class deleted file mode 100644 index 1a71ca06f3c4..000000000000 Binary files a/java/java-tests/testData/psi/cls/mirror/pkg/Booleans.class and /dev/null differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/ByteAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/ByteAnno.class new file mode 100644 index 000000000000..6250428694f7 Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/ByteAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/CharAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/CharAnno.class new file mode 100644 index 000000000000..17e8b6729b29 Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/CharAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/IntAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/IntAnno.class new file mode 100644 index 000000000000..e3e7eed220b0 Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/IntAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/LongAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/LongAnno.class new file mode 100644 index 000000000000..63147056a558 Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/LongAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/Primitives.class b/java/java-tests/testData/psi/cls/mirror/pkg/Primitives.class new file mode 100644 index 000000000000..1e2d9f0a17ff Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/Primitives.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/pkg/ShortAnno.class b/java/java-tests/testData/psi/cls/mirror/pkg/ShortAnno.class new file mode 100644 index 000000000000..e5583b1cca2e Binary files /dev/null and b/java/java-tests/testData/psi/cls/mirror/pkg/ShortAnno.class differ diff --git a/java/java-tests/testData/psi/cls/mirror/src/pkg/Annotations.java b/java/java-tests/testData/psi/cls/mirror/src/pkg/Annotations.java index 5aeda680f6dd..dafd4dce2770 100644 --- a/java/java-tests/testData/psi/cls/mirror/src/pkg/Annotations.java +++ b/java/java-tests/testData/psi/cls/mirror/src/pkg/Annotations.java @@ -16,6 +16,11 @@ abstract class Annotations { int[] ids() default { }; } + @interface A5 { + boolean b() default false; + Class value() default Integer.class; + } + @A1 abstract void m1(); @A2() abstract void m2a(); @@ -26,6 +31,8 @@ abstract class Annotations { @A4 abstract void m4a(); @A4(ids = {42, 84}) abstract void m4b(); + @A5(b = true, value = Integer.class) abstract void m5(); + @interface IndeterminateAnno { float f1() default Float.NEGATIVE_INFINITY; float f2() default Float.NaN; diff --git a/java/java-tests/testData/psi/cls/mirror/src/pkg/Booleans.java b/java/java-tests/testData/psi/cls/mirror/src/pkg/Booleans.java deleted file mode 100644 index 495e1ace68a3..000000000000 --- a/java/java-tests/testData/psi/cls/mirror/src/pkg/Booleans.java +++ /dev/null @@ -1,13 +0,0 @@ -package pkg; - -class Booleans { - public static final boolean TRUE = true; - public static final boolean FALSE = false; - - @BooleanAnno(true) public static boolean TRUE() { return TRUE; } - @BooleanAnno(false) public static boolean FALSE() { return FALSE; } -} - -@interface BooleanAnno { - boolean value(); -} \ No newline at end of file diff --git a/java/java-tests/testData/psi/cls/mirror/src/pkg/Primitives.java b/java/java-tests/testData/psi/cls/mirror/src/pkg/Primitives.java new file mode 100644 index 000000000000..4ffcf4ae3634 --- /dev/null +++ b/java/java-tests/testData/psi/cls/mirror/src/pkg/Primitives.java @@ -0,0 +1,42 @@ +package pkg; + +class Primitives { + public static final boolean TRUE = true; + public static final boolean FALSE = false; + + @BooleanAnno(true) public static boolean TRUE() { return TRUE; } + @BooleanAnno(false) public static boolean FALSE() { return FALSE; } + + public static final byte BYTE = 1; + public static final char CHAR = '\''; + public static final short SHORT = 42; + public static final int INT = 42; + public static final long LONG = 42L; + + @ByteAnno(1) @CharAnno('\\') @ShortAnno(42) @IntAnno(42) @LongAnno(42L) + public static void m() { } +} + +@interface BooleanAnno { + boolean value(); +} + +@interface ByteAnno { + byte value(); +} + +@interface CharAnno { + char value(); +} + +@interface ShortAnno { + short value(); +} + +@interface IntAnno { + int value(); +} + +@interface LongAnno { + long value(); +} diff --git a/java/java-tests/testData/psi/cls/stubBuilder/Nullable.txt b/java/java-tests/testData/psi/cls/stubBuilder/Nullable.txt index 277fe1497cf9..5f492a770b1b 100644 --- a/java/java-tests/testData/psi/cls/stubBuilder/Nullable.txt +++ b/java/java-tests/testData/psi/cls/stubBuilder/Nullable.txt @@ -2,8 +2,8 @@ PsiJavaFileStub [org.jetbrains.annotations] PsiClassStub[interface annotation name=Nullable fqn=org.jetbrains.annotations.Nullable] PsiModifierListStub[mask=1025] PsiAnnotationStub[@java.lang.annotation.Documented] - PsiAnnotationStub[@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS)] - PsiAnnotationStub[@java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD,java.lang.annotation.ElementType.PARAMETER,java.lang.annotation.ElementType.LOCAL_VARIABLE})] + PsiAnnotationStub[@java.lang.annotation.Retention(value=java.lang.annotation.RetentionPolicy.CLASS)] + PsiAnnotationStub[@java.lang.annotation.Target(value={java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD,java.lang.annotation.ElementType.PARAMETER,java.lang.annotation.ElementType.LOCAL_VARIABLE})] PsiTypeParameterListStub PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[IMPLEMENTS_LIST:] diff --git a/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1.java b/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1.java new file mode 100644 index 000000000000..fcb14a849657 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1.java @@ -0,0 +1,22 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Test { + public void foo(int ii) { + Runnable r = () -> { + System.out.println(ii); + }; + } +} diff --git a/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1_after.java b/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1_after.java new file mode 100644 index 000000000000..6debfdee24db --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/FromLambdaBody1_after.java @@ -0,0 +1,26 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class Test { + public void foo(int ii) { + Runnable r = () -> { + newMethod(ii); + }; + } + + private void newMethod(int ii) { + System.out.println(ii); + } +} diff --git a/java/java-tests/testData/refactoring/invertBoolean/methodRefs.java b/java/java-tests/testData/refactoring/invertBoolean/methodRefs.java new file mode 100644 index 000000000000..b7477fc316ef --- /dev/null +++ b/java/java-tests/testData/refactoring/invertBoolean/methodRefs.java @@ -0,0 +1,14 @@ +abstract class A{ + static boolean isBool() { + return false; + } + + + interface I { + boolean b(); + } + + { + I i = A::isBool; + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/GenerateConstructorTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/GenerateConstructorTest.java index 3fb5b7c848f4..5ef9e70a8093 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/GenerateConstructorTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/GenerateConstructorTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,6 +55,11 @@ public class GenerateConstructorTest extends LightCodeInsightTestCase { doTest(); } + public void testFieldPrefixCoincidence1() throws Exception { + CodeStyleSettingsManager.getInstance(getProject()).getCurrentSettings().FIELD_NAME_PREFIX = "_"; + doTest(); + } + private void doTest() throws Exception { doTest(false); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy index 669070815bce..d626cbaf6080 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,6 +83,20 @@ class JavaAutoPopupTest extends CompletionAutoPopupTestCase { assert lookup.focused } + public void testAfterDblColon() { + myFixture.configureByText("a.java", """ + class Foo { + void foo() { + Runnable:: + } + } + """) + type('r') + def les = myFixture.lookupElementStrings + assert 'run' in les + assert lookup.focused + } + def assertContains(String... items) { myFixture.assertPreferredCompletionItems(0, items) } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType18CompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType18CompletionTest.java index f8ea1ba949bc..c386bd3c0f7a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType18CompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType18CompletionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -66,6 +66,10 @@ public class SmartType18CompletionTest extends LightFixtureCompletionTestCase { doTest(); } + public void testInLambdaPosition() throws Exception { + doTest(); + } + private void doTest() { configureByFile("/" + getTestName(false) + ".java"); assertNotNull(myItems); diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java index 064b2c39c6bc..a1016d7332cf 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MethodRefHighlightingTest.java @@ -78,6 +78,7 @@ public class MethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { public void testAbstractMethod() { doTest(); } public void testMethodRefAcceptance() { doTest(); } public void testVarargsMethodRef() { doTest(); } + public void testExprReceiver() { doTest(); } public void testTypeParameterWithExtendsList() throws Exception { doTest(); diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/FieldAccessedNotGuardedInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/FieldAccessedNotGuardedInspectionTest.java new file mode 100644 index 000000000000..88fd4ce21e21 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/codeInspection/FieldAccessedNotGuardedInspectionTest.java @@ -0,0 +1,48 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intellij.codeInspection; + +import com.intellij.JavaTestUtil; +import com.intellij.codeInspection.concurrencyAnnotations.FieldAccessNotGuardedInspection; +import com.intellij.openapi.application.PluginPathManager; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import org.jetbrains.annotations.NotNull; + +public class FieldAccessedNotGuardedInspectionTest extends LightCodeInsightFixtureTestCase { + public void testItself() throws Exception { + myFixture.addClass("package net.jcip.annotations;\n" + + "@java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD})\n" + + "@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)\n" + + "public @interface GuardedBy {\n" + + " java.lang.String value();\n" + + "}"); + myFixture.testHighlighting(true, false, false, getTestName(true) + ".java"); + } + + + @Override + protected void setUp() throws Exception { + super.setUp(); + myFixture.enableInspections(new FieldAccessNotGuardedInspection()); + } + + @NotNull + @Override + protected String getTestDataPath() { + return JavaTestUtil.getJavaTestDataPath() + "/inspection/guarded"; + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/LocalCanBeFinalTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/LocalCanBeFinalTest.java index c8e5ecf6fa1c..7dfa608fc142 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/LocalCanBeFinalTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/LocalCanBeFinalTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.codeInspection; import com.intellij.JavaTestUtil; @@ -102,4 +117,10 @@ public class LocalCanBeFinalTest extends InspectionTestCase { myTool.REPORT_VARIABLES = true; doTest(); } + + public void testLambdaBody() throws Exception { + myTool.REPORT_PARAMETERS = true; + myTool.REPORT_VARIABLES = true; + doTest(); + } } diff --git a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java index 65092f24eb99..e579fbb49ca4 100644 --- a/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/find/FindManagerTest.java @@ -32,6 +32,7 @@ import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.LocalSearchScope; import com.intellij.testFramework.IdeaTestUtil; +import com.intellij.testFramework.LightVirtualFile; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.fixtures.TempDirTestFixture; @@ -434,5 +435,116 @@ public class FindManagerTest extends DaemonAnalyzerTestCase { } } + public void testFindInCommentsAndLiterals() throws Exception{ + FindManager findManager = FindManager.getInstance(myProject); + + FindModel findModel = new FindModel(); + findModel.setStringToFind("done"); + findModel.setWholeWordsOnly(false); + findModel.setFromCursor(false); + findModel.setGlobal(true); + findModel.setMultipleFiles(false); + findModel.setProjectScope(true); + + String text = "\"done done done\" /* done done done */"; + + runFindInCommentsAndLiterals(findManager, findModel, text); + + findModel.setRegularExpressions(true); + runFindInCommentsAndLiterals(findManager, findModel, text); + } + + private static void runFindInCommentsAndLiterals(FindManager findManager, FindModel findModel, String text) { + runFindInCommentsAndLiterals(findManager, findModel, text, "java"); + } + + private static void runFindInCommentsAndLiterals(FindManager findManager, + FindModel findModel, + String text, + String ext) { + findModel.setInStringLiteralsOnly(true); + findModel.setInCommentsOnly(false); + runFindForwardAndBackward(findManager, findModel, text, ext); + + findModel.setInStringLiteralsOnly(false); + findModel.setInCommentsOnly(true); + runFindForwardAndBackward(findManager, findModel, text, ext); + } + + private static void runFindForwardAndBackward(FindManager findManager, FindModel findModel, String text) { + runFindForwardAndBackward(findManager, findModel, text, "java"); + } + + private static void runFindForwardAndBackward(FindManager findManager, FindModel findModel, String text, String ext) { + findModel.setForward(true); + LightVirtualFile file = new LightVirtualFile("A."+ext, text); + int prevousOffset; + + FindResult findResult = findManager.findString(text, 0, findModel, file); + assertTrue(findResult.isStringFound()); + prevousOffset = findResult.getStartOffset(); + + findResult = findManager.findString(text, findResult.getEndOffset(), findModel, file); + assertTrue(findResult.isStringFound()); + assertTrue(findResult.getStartOffset() > prevousOffset); + prevousOffset = findResult.getStartOffset(); + + findResult = findManager.findString(text, findResult.getEndOffset(), findModel, file); + assertTrue(findResult.isStringFound()); + assertTrue(findResult.getStartOffset() > prevousOffset); + + findModel.setForward(false); + + findResult = findManager.findString(text, text.length(), findModel, file); + assertTrue(findResult.isStringFound()); + prevousOffset = findResult.getStartOffset(); + + findResult = findManager.findString(text, prevousOffset, findModel, file); + assertTrue(findResult.isStringFound()); + assertTrue(prevousOffset > findResult.getStartOffset() ); + + prevousOffset = findResult.getStartOffset(); + + findResult = findManager.findString(text, prevousOffset, findModel, file); + assertTrue(findResult.isStringFound()); + assertTrue(prevousOffset > findResult.getStartOffset() ); + } + + public void testFindInJavaDocs() throws Exception{ + FindManager findManager = FindManager.getInstance(myProject); + + FindModel findModel = new FindModel(); + findModel.setStringToFind("done"); + findModel.setWholeWordsOnly(false); + findModel.setFromCursor(false); + findModel.setGlobal(true); + findModel.setMultipleFiles(false); + findModel.setProjectScope(true); + + String text = "/** done done done */"; + findModel.setInCommentsOnly(true); + runFindForwardAndBackward(findManager, findModel, text); + + findModel.setRegularExpressions(true); + runFindForwardAndBackward(findManager, findModel, text); + } + + public void testFindInUserFileType() throws Exception{ + FindManager findManager = FindManager.getInstance(myProject); + + FindModel findModel = new FindModel(); + findModel.setStringToFind("done"); + findModel.setWholeWordsOnly(false); + findModel.setFromCursor(false); + findModel.setGlobal(true); + findModel.setMultipleFiles(false); + findModel.setProjectScope(true); + + String text = "\"done done\"; 'done'; // done\n" + + "/* done\n" + + "done */"; + + runFindInCommentsAndLiterals(findManager, findModel, text, "cs"); + } } diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java index 0217607f1793..a7deee87bada 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ClsMirrorBuildingTest.java @@ -40,7 +40,7 @@ public class ClsMirrorBuildingTest extends LightIdeaTestCase { public void testMethodReceiver() { doTest(); } public void testPackageInfo() { doTest("package-info"); } public void testEA40568() { doTest(); } - public void testBooleans() { doTest(); } + public void testPrimitives() { doTest(); } public void testClassRefs() { doTest(); } public void testEA46236() { doTest("ValuedEnum"); } diff --git a/java/java-tests/testSrc/com/intellij/psi/CoreJavaFileManagerTest.java b/java/java-tests/testSrc/com/intellij/psi/CoreJavaFileManagerTest.java index 1cd630ccc2db..5c12affa5e72 100644 --- a/java/java-tests/testSrc/com/intellij/psi/CoreJavaFileManagerTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/CoreJavaFileManagerTest.java @@ -22,26 +22,35 @@ import com.intellij.psi.search.GlobalSearchScope; import com.intellij.testFramework.PsiTestCase; import com.intellij.testFramework.PsiTestUtil; +import java.util.LinkedList; +import java.util.Queue; + public class CoreJavaFileManagerTest extends PsiTestCase { - public void testNotNullInnerClass() throws Exception { + private VirtualFile prepareClasses(String clazzName, String clazzData) throws Exception { VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete); VirtualFile pkg = root.createChildDirectory(this, "foo"); PsiDirectory dir = myPsiManager.findDirectory(pkg); assertNotNull(dir); + dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText(clazzName + ".java", JavaFileType.INSTANCE, clazzData)); + return root; + } + + public void testNotNullInnerClass() throws Exception { String text = "package foo;\n\n" + "public class Nested {\n" + "public class InnerGeneral {}\n" + - "public class Inner$ {}\n" + + "public class Inner$ {" + + "}\n" + "\n" + "public Inner$ inner() {\n" + " return new Inner$();\n" + "}\n" + "\n" + "}"; - PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("Nested.java", JavaFileType.INSTANCE, text)); + VirtualFile root = prepareClasses("Nested", text); GlobalSearchScope scope = GlobalSearchScope.allScope(getProject()); CoreJavaFileManager manager = new CoreJavaFileManager(myPsiManager); manager.addToClasspath(root); @@ -65,4 +74,90 @@ public class CoreJavaFileManagerTest extends PsiTestCase { assertNull(clazzInner$Wrong3); } + + public void testNotNullInnerClass2() throws Exception { + String text = "package foo;\n\n" + + "public class Nested {\n" + + + "public class Inner {" + + " public class XInner{}" + + " public class XInner${}" + + "}\n" + + "public class Inner$ {" + + " public class XInner{}" + + " public class XInner${}" + + "}\n" + + "\n" + + "}"; + + VirtualFile root = prepareClasses("Nested", text); + GlobalSearchScope scope = GlobalSearchScope.allScope(getProject()); + CoreJavaFileManager manager = new CoreJavaFileManager(myPsiManager); + manager.addToClasspath(root); + + PsiClass clazzInner = manager.findClass("foo.Nested.Inner", scope); + assertNotNull(clazzInner); + + PsiClass clazzXInner = manager.findClass("foo.Nested.Inner.XInner", scope); + assertNotNull(clazzXInner); + + PsiClass clazzXInner$ = manager.findClass("foo.Nested.Inner.XInner$", scope); + assertNotNull(clazzXInner$); + + PsiClass clazz$XInner = manager.findClass("foo.Nested.Inner$.XInner", scope); + assertNotNull(clazz$XInner); + + PsiClass clazz$XInner$ = manager.findClass("foo.Nested.Inner$.XInner$", scope); + assertNotNull(clazz$XInner$); + } + + + public void testNotNullInnerClass3() throws Exception { + String text = "package foo;\n\n" + + "public class NestedX {\n" + + + "public class XX {" + + " public class XXX{" + + " public class XXXX{ }" + + " public class XXXX${ }" + + " }" + + " public class XXX${" + + " public class XXXX{ }" + + " public class XXXX${ }" + + " }" + + "}\n" + + "public class XX$ {" + + " public class XXX{" + + " public class XXXX{ }" + + " public class XXXX${ }" + + " }" + + " public class XXX${" + + " public class XXXX{ }" + + " public class XXXX${ }" + + " }" + + "}\n" + + "\n" + + "}"; + + VirtualFile root = prepareClasses("NestedX", text); + GlobalSearchScope scope = GlobalSearchScope.allScope(getProject()); + CoreJavaFileManager manager = new CoreJavaFileManager(myPsiManager); + manager.addToClasspath(root); + + Queue queue = new LinkedList(); + queue.add("foo.NestedX"); + + while(!queue.isEmpty()) { + String head = queue.remove(); + PsiClass clazzInner = manager.findClass(head, scope); + assertNotNull(head, clazzInner); + String lastSegment = head.substring(head.lastIndexOf('.')); + String xs = lastSegment.substring(lastSegment.indexOf("X")).replace("$", ""); + if (xs.length() < 4) { + queue.add(head + "." + xs + "X"); + queue.add(head + "." + xs + "X$"); + } + } + } + } diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java index b56646516390..07002255014a 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java @@ -547,6 +547,10 @@ public class ExtractMethodTest extends LightCodeInsightTestCase { doTest(); } + public void testFromLambdaBody1() throws Exception { + doTest(); + } + public void testOneLineLambda() throws Exception { doTest(); } diff --git a/java/java-tests/testSrc/com/intellij/refactoring/InvertBooleanTest.java b/java/java-tests/testSrc/com/intellij/refactoring/InvertBooleanTest.java index 236ac1a82ee5..175577041eb9 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/InvertBooleanTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/InvertBooleanTest.java @@ -30,6 +30,15 @@ public class InvertBooleanTest extends LightRefactoringTestCase { public void testInnerClasses() throws Exception {doTest();} public void testAnonymousClasses() throws Exception {doTest();} + public void testMethodRefs() throws Exception { + try { + doTest(); + fail("Conflict expected."); + } + catch (BaseRefactoringProcessor.ConflictsInTestsException e) { + assertEquals("Method is used in method reference expression", e.getMessage()); + } + } private void doTest() throws Exception { configureByFile(TEST_ROOT + getTestName(true) + ".java"); diff --git a/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java b/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java index b0ed71e38192..d6468e316429 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ManagingContentRootsTest.java @@ -83,7 +83,7 @@ public class ManagingContentRootsTest extends IdeaTestCase { assertEquals(root, findContentEntry(url).getFile()); } - public void testGettingMofifiableModelCorrectlySetsRootModelForContentEntries() throws Exception { + public void testGettingModifiableModelCorrectlySetsRootModelForContentEntries() { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { -- cgit v1.2.3