diff --git a/packages/compiler-sfc/__tests__/compileScriptParseOnlyMode.spec.ts b/packages/compiler-sfc/__tests__/compileScriptParseOnlyMode.spec.ts
deleted file mode 100644
index 86a5a7bf00c..00000000000
--- a/packages/compiler-sfc/__tests__/compileScriptParseOnlyMode.spec.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { TextRange } from '../src/parse'
-import { compileSFCScript } from './utils'
-
-describe('compileScript parseOnly mode', () => {
- function compile(src: string) {
- return compileSFCScript(src, { parseOnly: true })
- }
-
- function getRange(src: string, range: TextRange) {
- return src.slice(range.start, range.end)
- }
-
- test('bindings', () => {
- const scriptSrc = `
- import { foo } from './x'
- `
- const scriptSetupSrc = `
- import { bar } from './x'
-
- const a = 123
- function b() {}
- class c {}
- `
- const src = `
-
-
- `
- const { ranges } = compile(src)
-
- expect(getRange(scriptSrc, ranges!.scriptBindings[0])).toBe('foo')
- expect(
- ranges!.scriptSetupBindings.map(r => getRange(scriptSetupSrc, r))
- ).toMatchObject(['bar', 'a', 'b', 'c'])
- })
-
- test('defineProps', () => {
- const src = `
- defineProps({ foo: String })
- `
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.propsRuntimeArg!)).toBe(`{ foo: String }`)
- })
-
- test('defineProps (type)', () => {
- const src = `
- interface Props { x?: number }
- defineProps()
- `
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.propsTypeArg!)).toBe(`Props`)
- })
-
- test('withDefaults', () => {
- const src = `
- interface Props { x?: number }
- withDefaults(defineProps(), { x: 1 })
- `
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.withDefaultsArg!)).toBe(`{ x: 1 }`)
- })
-
- test('defineEmits', () => {
- const src = `
- defineEmits(['foo'])
- `
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.emitsRuntimeArg!)).toBe(`['foo']`)
- })
-
- test('defineEmits (type)', () => {
- const src = `
- defineEmits<{ (e: 'x'): void }>()
- `
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.emitsTypeArg!)).toBe(`{ (e: 'x'): void }`)
- })
-
- test('no script setup block', () => {
- const src = `import { x } from './x'`
- const { ranges } = compile(``)
- expect(getRange(src, ranges!.scriptBindings[0])).toBe(`x`)
- })
-
- test('no script block', () => {
- expect(() => compile(``)).not.toThrow()
- })
-})
diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts
index 8356d717883..9d1775407c9 100644
--- a/packages/compiler-sfc/src/compileScript.ts
+++ b/packages/compiler-sfc/src/compileScript.ts
@@ -3,7 +3,6 @@ import {
BindingMetadata,
BindingTypes,
createRoot,
- locStub,
NodeTypes,
transform,
parserOptions,
@@ -12,12 +11,7 @@ import {
isFunctionType,
walkIdentifiers
} from '@vue/compiler-dom'
-import {
- ScriptSetupTextRanges,
- SFCDescriptor,
- SFCScriptBlock,
- TextRange
-} from './parse'
+import { SFCDescriptor, SFCScriptBlock } from './parse'
import { parse as _parse, ParserOptions, ParserPlugin } from '@babel/parser'
import {
babelParserDefaultPlugins,
@@ -103,28 +97,16 @@ export interface SFCScriptCompileOptions {
* options passed to `compiler-dom`.
*/
templateOptions?: Partial
- /**
- * Skip codegen and only return AST / binding / text range information.
- * Also makes the call error-tolerant.
- * Used for IDE support.
- */
- parseOnly?: boolean
}
interface ImportBinding {
isType: boolean
imported: string
source: string
- rangeNode: Node
isFromSetup: boolean
isUsedInTemplate: boolean
}
-interface VariableBinding {
- type: BindingTypes
- rangeNode: Node
-}
-
/**
* Compile `