From f15fc2f74dcb1372c5c50107828265b79fbf2716 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 4 Apr 2017 18:39:39 +0200 Subject: [PATCH] TEMPORARY: Allow running IDEA with Kotlin 1.1.1's UAST implementation --- .../openapi/extensions/impl/ExtensionPointImpl.java | 7 +++++-- .../openapi/extensions/impl/ExtensionsAreaImpl.java | 3 ++- .../openapi/components/impl/ServiceManagerImpl.java | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java index acf12edd584b..368d055f1dab 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionPointImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -269,7 +269,10 @@ public class ExtensionPointImpl implements ExtensionPoint { } catch (Exception e) { errorHappened = true; - LOG.error(e); + if (!"org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin".equals(adapter.getAssignableToClassName()) && + !"org.jetbrains.uast.java.JavaUastLanguagePlugin".equals(adapter.getAssignableToClassName())) { + LOG.error(e); + } } myExtensionAdapters.remove(adapter); } diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java index 9bc711b04228..90944fc8f7dd 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -277,6 +277,7 @@ public class ExtensionsAreaImpl implements ExtensionsArea { @NotNull PluginDescriptor descriptor, @NotNull ExtensionPoint.Kind kind) { if (hasExtensionPoint(extensionPointName)) { + if (extensionPointName.equals("org.jetbrains.uast.uastLanguagePlugin")) return; final String message = "Duplicate registration for EP: " + extensionPointName + ": original plugin " + getExtensionPoint(extensionPointName).getDescriptor().getPluginId() + ", new plugin " + descriptor.getPluginId(); diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java index 6717b1d5f6aa..dae629f81254 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java @@ -78,6 +78,11 @@ public class ServiceManagerImpl implements Disposable { } } + if ("org.jetbrains.uast.UastContext".equals(descriptor.serviceInterface) && + picoContainer.getComponentInstance(descriptor.getInterface()) != null) { + return; + } + if (!Extensions.isComponentSuitableForOs(descriptor.os)) { return; }